snn_krs
Members-
Постов
568 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Блоги
Весь контент snn_krs
-
Посмотрите описание EXTI. Прерывание от часов ( будильника ) приходят на 17 линию EXTI. Соответственно надо разрешать прерывание в регистре EXTI_IMR.
-
Это совсем не то. Сначало надо включить Backup Domain в регистре PWR_CR установить бит DBP.
-
В файле stm32f4xx_rtc.c в самом начале подробно описана последовательность запуска часов. Сначала надо разрешить доступ к Backup Domain ##### Backup Domain Access ##### =================================================================== [..] After reset, the backup domain (RTC registers, RTC backup data registers and backup SRAM) is protected against possible unwanted write accesses. [..] To enable access to the RTC Domain and RTC registers, proceed as follows: (+) Enable the Power Controller (PWR) APB1 interface clock using the RCC_APB1PeriphClockCmd() function. (+) Enable access to RTC domain using the PWR_BackupAccessCmd() function. (+) Select the RTC clock source using the RCC_RTCCLKConfig() function. (+) Enable RTC Clock using the RCC_RTCCLKCmd() function.
-
Переменная уже есть это rxd[]. switch( rxd[ 0 ] ) { case 'A': { ...; break; } case 'Z': { ...; break; } default: { ...; } } rxd[ 0 ] - первый принятый символ, rxd[ 0 ] - второй и так далее
-
XTAL1 подключается если у вас тактирование от внешнего генератора. Не подключайте. На PE0 - MOSI на PE1 - MISO
-
Интересно какой даташит вы читали ? Вот правильное подключение.
-
Я давно на STM перешел, поэтому по программатору ниче6го не скажу. В STM32 ST-LINK Utility есть проверка как файла так и МК. Вверху для файла внизу для считанного из МК. Поисчите в программаторе, тоже должна быть проверка. В проверке этих значений не будет. В моем случае я возьму число 0x005AD865 поменяю у него знак на - и запишу это в конец файла как у вас по адресу 0x0007FFF0. В результате контрольная сумма всей помяти будет == 0.
-
В программаторах обычно при чтении МС показывается контрольная сумма. При открытии файла, тоже показавается контрольная сумма. В конце файла по адресу 7FF00 записано число, обычно это число дописывают после записи микросхемы и оно дополняет CRC до нуля. Программа просто просто складывает все байты памяти и если не 0 значит ошибка CRC. Какой контроллер стоит в аппарате ? Похоже 16 битный. Кстати символы не 10 х 6, а 12 х 7. Разделители между строками и символами. А знакогенератор похоже будет 16 х 12. По 24 байта на символ.
-
Поставьте другое значение поменьше. При 255 вы не увидете на индикаторе ничего, значения будут меняться каждые 1.2 мс. Поставьте например TCNT0=10;
-
Откройте файл wdt.h и посмотрите, там после определения WDTO_4S и WDTO_8S есть список чипов для которых эти определения действуют. Atmega8a в этом списке нет.
-
Правильное замечание, дополнительного кода не создает, но значительно проще. По коду не заметил ошибок, надо проверять в отладчике, там все регистры видны и установленные биты.
-
Возможно вы забыли включит тактирование DMA или включили после инициализации. Проверил на F411 команды проходят. Выложите код инициализации DMA.
-
Я уже исправил на 0x40026004 это регистр DMA_HISR. Сам запутался это регистр статуса.
-
Похоже вы разрешаете не то прерывание. По моему правильнее будет. Тоже ошибся надо *(uint32_t*)( 0x400260A0 ) |= 0x10; // прерывание по флагу *(uint32_t*)( 0x40026004 ) |= 0x200000; // прерывание канала 6
-
Было аналогичное поведение, если в цикле while (true) {} нет кода. Вставьте пару команд.
-
Попробуйте убрать таймер 0 вообще, а в прерывании от таймера 2 мигато светодиодом. В даташите в разделе System Clock and Clock Options написано если CKOPT запрограммирован внешние конденсаторы не нужны. Вам нужно по 36 пФ поставить есле не меняете фьюзы.
-
Если есть 5 кОм переменник, поставьте его и при техже напряжениях сравните значения.
- 8 951 ответ
-
1
-
- Микроконтроллер
- МК
-
(и ещё 2 )
C тегом:
-
Какой номинал у переменного резистора ? Поставьте другой и сделайте теже измерения.
- 8 951 ответ
-
- Микроконтроллер
- МК
-
(и ещё 2 )
C тегом:
-
Если прошивка слетела, ничего работать не будет. Все МК имеют защиту от чтения, поэтому считать с другого МК у вас не получится. Посмотрите цепь запитки всех светодиодов, возможно просто обрыв.
-
Возможно вы не правильно проверяете. Посмотрите ассемблерный код. У меня получилось так: #pragma O0 ;;;539 delay_200ns_72(); 00005e f7fffffe BL delay_200ns_72 #pragma O3 00005e bf00 NOP 000060 bf00 NOP 000062 bf00 NOP ;;;538 ;;;539 delay_200ns_72(); ;;;540 Тоесть при о0 идет вызов функции, а при о3 - оптимизация - вызова функции нет, вставлены 3 NOPa.
-
По включению и сбросу регистры устанавливаются в значения по сбросу. Например: 8.3.1 Clock control r gister (RCC_CR) Address offset: 0x00 Reset value: 0x0000 XX83 where X is undefined. Из этого видно, что запускается HSI генератор и т.п. Тоесть можно определить большинство параметров при включении МК.
-
То что вы показали это проверка PLL. /* Wait till HSE is ready and if Time out is reached exit */ do { HSEStatus = RCC->CR & RCC_CR_HSERDY; StartUpCounter++; } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); ... if (HSEStatus == (uint32_t)0x01) { ... /* Wait till HSE is used as system clock source */ while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x04) { } } else { /* If HSE fails to start-up, the application will have wrong clock configuration. User can add here some code to deal with this error */ } Если HSE генератор не запустился, то по while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); переключения на работу от HSE не будет и МК будет работать от HSI без PLL.
-
От какого генератора работать выбирает программист, а не отладчик. В файле system_stm32f10x.c есть такой блок { /* If HSE fails to start-up, the application will have wrong clock configuration. User can add here some code to deal with this error */ } тоесть если внешний генератор не запустился, вы сами можете выбрать на каком работать или зажечь красный светодиод и остановить МК.