Jump to content

    

ViKo

Модераторы
  • Content Count

    12178
  • Joined

Everything posted by ViKo


  1. Делайте второй параметр под первым. И заносите в него нужную часть текста.
  2. В stm32l051xx.h описаны источники прерываний: /*!< Interrupt Number Definition */ typedef enum { /****** Cortex-M0 Processor Exceptions Numbers ******************************************************/ NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt */ HardFault_IRQn = -13, /*!< 3 Cortex-M0+ Hard Fault Interrupt */ SVC_IRQn = -5, /*!< 11 Cortex-M0+ SV Call Interrupt */ PendSV_IRQn = -2, /*!< 14 Cortex-M0+ Pend SV Interrupt */ SysTick_IRQn = -1, /*!< 15 Cortex-M0+ System Tick Interrupt */ /****** STM32L-0 specific Interrupt Numbers *********************************************************/ WWDG_IRQn = 0, /*!< Window WatchDog Interrupt */ PVD_IRQn = 1, /*!< PVD through EXTI Line detect Interrupt */ RTC_IRQn = 2, /*!< RTC through EXTI Line Interrupt */ FLASH_IRQn = 3, /*!< FLASH Interrupt */ RCC_IRQn = 4, /*!< RCC Interrupt */ EXTI0_1_IRQn = 5, /*!< EXTI Line 0 and 1 Interrupts */ EXTI2_3_IRQn = 6, /*!< EXTI Line 2 and 3 Interrupts */ EXTI4_15_IRQn = 7, /*!< EXTI Line 4 to 15 Interrupts */ DMA1_Channel1_IRQn = 9, /*!< DMA1 Channel 1 Interrupt */ DMA1_Channel2_3_IRQn = 10, /*!< DMA1 Channel 2 and Channel 3 Interrupts */ DMA1_Channel4_5_6_7_IRQn = 11, /*!< DMA1 Channel 4, Channel 5, Channel 6 and Channel 7 Interrupts */ ADC1_COMP_IRQn = 12, /*!< ADC1, COMP1 and COMP2 Interrupts */ LPTIM1_IRQn = 13, /*!< LPTIM1 Interrupt */ TIM2_IRQn = 15, /*!< TIM2 Interrupt */ TIM6_IRQn = 17, /*!< TIM6 Interrupt */ TIM21_IRQn = 20, /*!< TIM21 Interrupt */ TIM22_IRQn = 22, /*!< TIM22 Interrupt */ I2C1_IRQn = 23, /*!< I2C1 Interrupt */ I2C2_IRQn = 24, /*!< I2C2 Interrupt */ SPI1_IRQn = 25, /*!< SPI1 Interrupt */ SPI2_IRQn = 26, /*!< SPI2 Interrupt */ USART1_IRQn = 27, /*!< USART1 Interrupt */ USART2_IRQn = 28, /*!< USART2 Interrupt */ LPUART1_IRQn = 29, /*!< LPUART1 Interrupt */ } IRQn_Type; Я правильно понимаю, что в регистрах NVIC -- ISER, ICER, ISPR, ICPR каждый источник занимает место согласно его номеру. То есть LPUART1_IRQn это бит 29. И т.п. Но где это написано, в каком документе? И в core_cm0plus.h нет конкретных имён.
  3. 31 kHz подаёте на 16-разрядный таймер, и уменьшив слегка к-т деления вместо 2^16, подгоняете выход под 2 с.
  4. map я задаю. К вопросу не относится. Про UART тоже ничего не находится. Для STM32F103 симулировалось много чего. Уже не помню. А для всего или почти всего остального не симулируется, похоже. Это удивляет.
  5. Хочу симулировать приём в USART, подключенный к GPIO PA3. Написал сигнал-функцию с учетом всех ограничений. Но при загрузке даёт ошибку на имя PA3. Как доступиться к выводу? DIR VTREG ничего, похожего на порты, не выдаёт.
  6. Нагрузить параллельно чем-то минимальным, при чём запускается.
  7. Если вопрос был про то, как namespace использовать, так, вроде, достаточно.
  8. Паузами между передачами тоже можно улучшить распознавание. ASCII символы - набор ограниченный. Словить что-то ошибочное, да из допустимых - тоже непросто.
  9. Да. Потому что из единиц -- только стопы. ) FF с дополнением до нечётного тоже годится. Потому что из нулей - только старт.
  10. Выше вы писали про два стопа и паритет. Я для такой ситуации вам и ответил. А так можно много кодов найти, которые сдвинутые тоже будут попадать под правильную интерпретацию УАРТом.
  11. Да, для EF и BF будет совпадать. Выше вы писали про DF.
  12. Диаграммы разные, не совпадают.
  13. Я диаграммы нарисовал. При двух стопах они разные.
  14. Старт, четность, стоп - эти биты тоже помогают определить неправильную интерпретацию данных.
  15. означает, что вы не задали ему никакого анализа. Как, например, .tran в предыдущем ответе.
  16. У меня (точнее, у того, что мне дали) связь по SPI была к flash памяти. На частоте 20 МГц работала, а на 50 МГц не работала. Хотел даже на замену делать переходную платку с другим преобразователем. Но нашлось другое решение - другая память на другой шине. С глаз долой.
  17. Я где-то писал, наверное... Тоже обнаружил удивительное поведение таких трансляторов TXB0106, когда тактовая частота SPI ломалась до безобразия. И вот сейчас подумал, а не было ли то возбуждением, а осциллограф показывал стробоскопическую картинку? В общем, советую семь раз отмерить...
  18. Я пишу в параметрах компонента Marking Code, тогда и на плате легко определить. Еще задумал коды номиналов резисторов тоже задавать, тех, что по EIA-96 методу маркирования.
  19. https://go-radio.ru/supressor.html Обходятся без резисторов. Главное, чтобы импульс высокого напряжения не был длительным.
  20. Уже не хочу. Но, я думаю, всё бы сохранилось в *.hex файле. По адресу EEPROM лежали бы нужные данные. А алгоритм программирования EEPROM я задал в настройках Keil.
  21. Проверю. Но проще спросить, может, кто-то уже проверил. В EEPROM нет half-page. Я так понимаю, это для флэш есть буфер на 16 слов.
  22. Читая RM0377 раздел 3.6.1 Operation priority and evolution, а также глядя в пример A.3.5 Write to data EEPROM code example, прихожу к выводу, что при записи массива слов в EEPROM не нужно проверять окончание записи каждого слова, а можно слать подряд. Мало того, просто приравниваю целевую структуру в EEPROM исходной, и процессор сам притормозит на время записи слова, потом начнет писать следующее, и т.д. Ну, понятно, перед этим нужно разрешить доступ к EEPROM. Так ли это?
  23. А вот, чтобы EEPROM описать, и подключить алгоритм программирования в Keil. И он автоматом запрограммирует свою EEPROM? Надо только в SystemInit инициализировать EEPROM. Правильно?