Перейти к содержанию

snn_krs

Members
  • Постов

    568
  • Зарегистрирован

  • Посещение

Весь контент snn_krs

  1. Посмотрите описание EXTI. Прерывание от часов ( будильника ) приходят на 17 линию EXTI. Соответственно надо разрешать прерывание в регистре EXTI_IMR.
  2. Это совсем не то. Сначало надо включить Backup Domain в регистре PWR_CR установить бит DBP.
  3. В файле 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.
  4. Переменная уже есть это rxd[]. switch( rxd[ 0 ] ) { case 'A': { ...; break; } case 'Z': { ...; break; } default: { ...; } } rxd[ 0 ] - первый принятый символ, rxd[ 0 ] - второй и так далее
  5. XTAL1 подключается если у вас тактирование от внешнего генератора. Не подключайте. На PE0 - MOSI на PE1 - MISO
  6. Интересно какой даташит вы читали ? Вот правильное подключение.
  7. Я давно на STM перешел, поэтому по программатору ниче6го не скажу. В STM32 ST-LINK Utility есть проверка как файла так и МК. Вверху для файла внизу для считанного из МК. Поисчите в программаторе, тоже должна быть проверка. В проверке этих значений не будет. В моем случае я возьму число 0x005AD865 поменяю у него знак на - и запишу это в конец файла как у вас по адресу 0x0007FFF0. В результате контрольная сумма всей помяти будет == 0.
  8. В программаторах обычно при чтении МС показывается контрольная сумма. При открытии файла, тоже показавается контрольная сумма. В конце файла по адресу 7FF00 записано число, обычно это число дописывают после записи микросхемы и оно дополняет CRC до нуля. Программа просто просто складывает все байты памяти и если не 0 значит ошибка CRC. Какой контроллер стоит в аппарате ? Похоже 16 битный. Кстати символы не 10 х 6, а 12 х 7. Разделители между строками и символами. А знакогенератор похоже будет 16 х 12. По 24 байта на символ.
  9. Для начала измените в 0-й микросхеме один или несколько байт в конце с адреса 007Е580 ( пустые 0-е значения) и запишите ( лучше не портить оригинальные МС, на старых компах ставили такую память ). Если не запустится, значит есть проверка контрольной суммы памяти. Прийдется самому вычислять.
  10. Поставьте другое значение поменьше. При 255 вы не увидете на индикаторе ничего, значения будут меняться каждые 1.2 мс. Поставьте например TCNT0=10;
  11. Откройте файл wdt.h и посмотрите, там после определения WDTO_4S и WDTO_8S есть список чипов для которых эти определения действуют. Atmega8a в этом списке нет.
  12. Правильное замечание, дополнительного кода не создает, но значительно проще. По коду не заметил ошибок, надо проверять в отладчике, там все регистры видны и установленные биты.
  13. Возможно вы забыли включит тактирование DMA или включили после инициализации. Проверил на F411 команды проходят. Выложите код инициализации DMA.
  14. Я уже исправил на 0x40026004 это регистр DMA_HISR. Сам запутался это регистр статуса.
  15. Похоже вы разрешаете не то прерывание. По моему правильнее будет. Тоже ошибся надо *(uint32_t*)( 0x400260A0 ) |= 0x10; // прерывание по флагу *(uint32_t*)( 0x40026004 ) |= 0x200000; // прерывание канала 6
  16. Было аналогичное поведение, если в цикле while (true) {} нет кода. Вставьте пару команд.
  17. Попробуйте убрать таймер 0 вообще, а в прерывании от таймера 2 мигато светодиодом. В даташите в разделе System Clock and Clock Options написано если CKOPT запрограммирован внешние конденсаторы не нужны. Вам нужно по 36 пФ поставить есле не меняете фьюзы.
  18. Если есть 5 кОм переменник, поставьте его и при техже напряжениях сравните значения.
  19. Какой номинал у переменного резистора ? Поставьте другой и сделайте теже измерения.
  20. snn_krs

    I2C STM32F0

    Для I2C1 надо GPIO_PinAFConfig( GPIOA, GPIO_PinSource9, GPIO_AF_4 ); идля 10 пина тоже.
  21. Если прошивка слетела, ничего работать не будет. Все МК имеют защиту от чтения, поэтому считать с другого МК у вас не получится. Посмотрите цепь запитки всех светодиодов, возможно просто обрыв.
  22. Возможно вы не правильно проверяете. Посмотрите ассемблерный код. У меня получилось так: #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.
  23. snn_krs

    DEBUG без кварца

    По включению и сбросу регистры устанавливаются в значения по сбросу. Например: 8.3.1 Clock control r gister (RCC_CR) Address offset: 0x00 Reset value: 0x0000 XX83 where X is undefined. Из этого видно, что запускается HSI генератор и т.п. Тоесть можно определить большинство параметров при включении МК.
  24. snn_krs

    DEBUG без кварца

    То что вы показали это проверка 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.
  25. snn_krs

    DEBUG без кварца

    От какого генератора работать выбирает программист, а не отладчик. В файле 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 */ } тоесть если внешний генератор не запустился, вы сами можете выбрать на каком работать или зажечь красный светодиод и остановить МК.
×
×
  • Создать...