STM32 microcontroller learning summary

Author: zhddq
Published on: 2025-02-21
Category: Industry News

Системные шины AHB разделены на APB1 (36 МГц) и APB2 (72 МГц), из которых 2 > 1 означает, что APB2 подключен к высокоскоростным устройствам

2.STM32f10x. h = reg52. h (с базовым определением битовой операции), другой - STM32f10x ref.h, который конкретно контролирует конфигурацию периферийных устройств, то есть роль файла заголовка коммутатора

HSE Osc (Высокоскоростной внешний генератор) - это высокоскоростной внешний кристаллический генератор, который обычно работает на 8 МГц, в то время как HSI RC (Высокоскоростной внутренний RC) работает на 8 МГц

LSE Osc (низкоскоростной внешний генератор) представляет собой низкоскоростной внешний кристаллический генератор, обычно с частотой 32.768 кГц, в то время как LSI RC (низкоскоростной внутренний RC) представляет собой низкоскоростной внутренний кристаллический генератор, обычно около 40 кГц.

Источник часов SYSCLK имеет три источника: HSI RC, HSE OSC, PLL

a508e000-0067-11ef-a297-92fbcf53809c.png

6.MCO [2: 0] может обеспечить четыре различных сигнала синхронизации часов, PA8

Порт GPIO, по - видимому, имеет два обратных последовательных диода, используемых в качестве фиксирующих диодов. Соответствующая статья: Как использовать диоды в микроконтроллере для достижения различных выходов напряжения?

a522cd26-0067-11ef-a297-92fbcf53809c.jpg

Матрица шины использует алгоритм вращения для арбитража между системной шиной и DMA

9. шины Ecode, DCode, системные шины, DMA, шинные матрицы, мост AHB / APB

Перед использованием периферийных устройств RCC AHBENR должен быть настроен как часы для открытия периферийных устройств.

Байты данных хранятся в памяти в виде небольших оконечных хранилищ

Отображение памяти разделено на 8 больших блоков, каждый из которых составляет 512 МБ

13.Одна страница FLASH - 1K (малый и средний объем), а 2K - большой объем.

14. Память системы блокируется заводской конфигурацией компании ST, и пользователь не может ее редактировать. Он используется для перепрограммирования областей FLASH. Поэтому при записи мы должны выбрать BOOT1 = 0, чтобы мы могли записывать FLASH с помощью встроенного загрузчика (например, таблицы векторов прерывания и кода). Соответствующая статья: Настройка и применение режима запуска STM32

15.Основное напряжение STM32 составляет 1,8V

Существует три типа сброса STM32: сброс системы, сброс верхнего тока и сброс резервной зоны. Все регистры в системе были сброшены, за исключением маркеров сброса в RCC CSR и значений, которые не были сброшены в BKP. Внешний сброс, сброс сторожевой собаки, сброс программного обеспечения и другие триггеры; Сброс источника питания происходит из - за перезагрузки источника питания внешнего источника питания или возврата в режиме ожидания. Сбросить все значения, кроме тех, которые остаются неизменными в BKP; Источником запуска, используемым для сброса области резервного копирования, является перезагрузка программного обеспечения или отключение как VDD, так и VBAT.

После сброса микроконтроллера все порты ввода / вывода находятся в плавающем состоянии

18.68 экранируемых каналов прерывания, 16 программируемых приоритетов, 16 прерываний ядра, в общей сложности 68 + 16 = 84 прерывания. Серия 103 прерывается только 60 раз, в то время как серия 107 прерывается только 68 раз

Запуск системы начинается с 0x0000004, зарезервировано 0x00000000

20. Встраиваемый векторный контроллер прерывания (NVIC) делится на два типа: приоритет захвата (может быть встроен) и приоритет прерывания (вторичный приоритет, не может быть встроен). Эти два приоритета определяются четырьмя двоичными битами. Выделено 16 ситуаций:

a5350400-0067-11ef-a297-92fbcf53809c.jpg

Прерывание с приоритетом 0 может прервать любое прерывание с приоритетом 0; Прерывание с приоритетом 1 может прервать любое прерывание с приоритетом 2, 3 или 4; Таблица прерывает вложение. Если приоритет захвата двух прерываний одинаков, первое прерывание сначала ответит на них, что не является вложением. Если они появляются вместе (или висят там, ожидая), это зависит от того, у кого субприоритет выше. Если субприоритеты одинаковы, это зависит от их положения вектора прерывания. Местоположение вектора прерывания является окончательным определяющим фактором!!!

22. После инициализации включения AIRC инициализируется как 0 с 16 приоритетами. Тем не менее, поскольку все внешние каналы прерывают слово управления приоритетом PRI n 0, приоритет захвата одинаковый и не может быть встроен в это время

23. В NVI определены ISER [2] (активный регистр sl для набора прерываний), ICER [2] (активный регистр для удаления прерываний), ISPR [2] (регистр активации прерываний), ICPR [2] (регистр окончания остановки удаления), IABR [2] (активный регистр) и IPR [15] (регистратор приоритета прерываний). ISER и ICER - это соответственно регистры отключения прерывания и отключения прерывания, оба из которых включают / отключают прерывание записи 1. Зачем писать 1? Почему бы не использовать один регистр вместо двух регистров для обозначения состояния активации / отключения прерывания? Запись 0 очень сложна из - за аппаратных причин и может привести к изменениям в состоянии других битов, поэтому разумно использовать 1 для обозначения включения или выключения

24. Требуется ручная очистка знака прерывания

25. Общие шаги настройки периферийных устройств:

Часы с открытым портом

Определение структуры инициализации и инициализация

Вызов.

Последовательная проверка чётности: если это проверка чётности, то USART initStructure USART WordLength = USART WardLength 9b; Длина этих данных должна быть установлена на 9 бит!

Группа правил ADC может настроить порядок каналов преобразования и количество каналов преобразования. В практическом применении иногда требуются специальные каналы с высоким приоритетом, которые необходимо прервать во время преобразования группы правил, чтобы переключиться на другой канал. Этот канал называется группой инъекций.

28. Режим сравнения выхода таймера: таймер (замораживание, ничего не делать, нормальное время), активность (выход OCxREF с высоким уровнем действителен), неактивность (выход OCx REF с низким уровнем), переключение (после сравнения успешно перевернуть уровень).

29.Таймер STM32 начинает отсчет с 0, удовлетворяет определенным условиям, дает метку (например, успешное согласование, обновление времени, переполнение и т. Д.), а затем отсчет начинается с 0. Это отличается от 51.

OCX = OCxREF + Полярность

Автоматический регистр загрузки и теневой регистр: первый эквивалентен значению параметра переполнения в 51. Как следует из названия, теневой регистр - это тень, еще одна копия регистра. Реальная функция - теневой регистр, в то время как программист управляет автоматическим регистром загрузки. Если бит APPE включен, это означает, что значение регистра автоматической загрузки будет записано только после следующего события обновления. В противном случае значение, записанное в регистр автоматической загрузки, будет немедленно обновлено в регистр теней.

a54727de-0067-11ef-a297-92fbcf53809c.jpg

32 Настройка RCC PCLK1 (RCC HCLK Div4); PCLK1 делит частоту на 4, чтобы предоставить часы отсчета таймера

33. Настройка таймера: RCC, NVIC, GPIO (выход OC или PWM) TIMx

34. Универсальный таймер может выводить четыре различных сигнала PWM, в то время как усовершенствованный таймер может выводить три дополнительных сигнала PWM (приводной трехфазный двигатель), в общей сложности семь сигналов. Таким образом, STM32 может генерировать 30 каналов PWM = 7 * 2 + 4 * 4

Тридцать пять.

a55de744-0067-11ef-a297-92fbcf53809c.jpg

36. Усовершенствованный часовой источник установлен на APB2, а универсальный таймер - на APB1. AHB (72 МГц) → Частотный делитель APB1 (по умолчанию 2) → Часовой сигнал APB2 (36 МГц) → умножитель (* 2x) → Часовой сигнал универсального таймера (72 МГц). Если частота APB1 не разделена, частота часового сигнала универсального таймера напрямую равна тактовой частоте APB1, без процесса умножения * 2, описанного выше. TIM SetAutoreload () для изменения частоты PWM, TIM SetComparal () для изменения коэффициента заполнения

37. Щеточные двигатели обычно имеют больший пусковой момент, в то время как бесщеточные двигатели имеют меньший пусковой момент и больший рабочий момент. Щеточный двигатель использует механический переключение тока щетки, в то время как бесщеточный двигатель использует датчик Холла для измерения тока ротора, чтобы определить положение и направление движения двигателя и вернуть его в цепь управления.

38. Мертвая зона необходима, поскольку она связана с проблемой короткого замыкания в цепи.

Функция торможения используется для автоматического аварийного торможения внешнего двигателя с помощью аппаратного обеспечения при возникновении проблем с цепью управления, что отражается в PWM и постоянно дает фиксированное отношение заполнения. (Подходит ли трехфазный драйвер?)

Выход PWM лучше всего использовать в режиме PWM, так как фазы других режимов сравнения постепенно меняются и неточны

Для чтения и записи FLASH требуется сначала разблокировать, а затем заблокировать. Написать 0 в FLASH легко, но написать 1 очень сложно.

Существует два способа загрузки, один из которых - ICP (онлайн - программирование), который подходит для записи программ в соответствии с протоколами JTAG или SWD. Другой тип, называемый IAP (в прикладном программировании), подходит для загрузки многих интерфейсов (USB, последовательных портов, CAN) в память. IAP позволяет обновлять FLASH во время выполнения программы

43. FLASH подразделяется на первичную память (где размещен код программы пользователя) и информационный блок (стартовый код). Кроме того, есть часть, называемая системной памятью, которую пользователь не может управлять, и после ее отверждения производится компанией ST. Это загрузчик системы.

44. При записи во FLASH читать не следует. Если есть операция чтения, шины будут заблокированы.

При работе с Flash необходимо включить HIS

Существует два типа сторожевых собак STM32 (IWDG Independent Watcher Dog "Independent Chatcher" и WWDG Window Watch Dog "Разделены на APB1")

Максимальная частота SPI составляет 36 МГц (fpclk / 2)

48 Когда таймеры высокого уровня TIM1 и TIM8 выводят PWM, им необходимо настроить основной вывод (CtrlPWMOutputs) для вывода PWM. Другие универсальные таймеры не требуют этой конфигурации. Тем не менее, TIM6 и TIM7 не имеют функции вывода PWM.

49. Код является частью программного кода

Данные RO представляют константы, определенные программой (например, const temp и т.д.);

Данные RW представляют инициализированные глобальные переменные

Данные ZI представляют неинтегрированные глобальные переменные и переменные, инициализированные как 0

Код, RO данные, RW данные......... Молния

RW данных, ZIDATA..................................................................... Королевская консерватория

Во время инициализации данные RW копируются из флэш - памяти в RAM

50.STM32F103ZET6 имеет 144 вывода (Z 144), из которых 112 являются доступными портами IO (7X16 = 112, ABCDEFG порт)

ARM производит только основные стандарты и не производит чипы. Такие компании, как ST и TI, покупают ядра у ARM, а затем добавляют собственную структуру шины, периферийные устройства, память, последовательность и сброс, а также I / O, чтобы сформировать свой собственный чип.

a5789b66-0067-11ef-a297-92fbcf53809c.jpg

52. Стандарт CMSIS используется для обмена информацией между верхним пользовательским уровнем и нижним аппаратным уровнем. Эта архитектура, конечно, может быть определена сама по себе, но в этом случае стандартов не будет. Поэтому для проектирования чипов необходимо использовать стандарт CMSASI. Проще говоря, имя функции CMSIS для инициализации системы определяется как SystemInit (), GPIOResetBit () и т. Д.

Повторное использование портов и повторное отображение портов - это два понятия: первое требует только включения соответствующего порта и функциональных часов. Для этого необходимо открыть часы AFIO и переназначить порт в GPIO PinRemapConfig ().

54. При загрузке программы можно использовать только последовательный порт 1. Обратите внимание при проектировании оборудования!

Частота отладки J - TAG обычно устанавливается на 2 МГц, а частота отладки SWD может быть установлена на 10 МГц

Существует два способа достижения прерывания SysTick: циклическое ожидание и прерывание. Рекомендуется циклическое ожидание, метод прерывания может вызвать проблемы и истощить ресурсы.

57. Некоторые выводы I / O совместимы с 5V. Максимальный приводной и входной ток для одного ввода / вывода составляет 25 мА. Весь чип имеет ток 150 мА.

KEIL поддерживает операции битового сегмента, которые могут использовать знания битового сегмента в языке C для определения структуры битового сегмента, а затем выполнять отдельные битовые операции для отдельных регистров.

59. Настройка внутренних резисторов верхнего и нижнего натяжения: если другой конец внешней кнопки заземлен, его необходимо установить как резистор верхнего натяжения. (Причина в том, что, когда кнопка не была нажата, вход был высоким уровнем из - за верхнего натяжения; при нажатии кнопки, из - за внешнего заземления, вход был низким уровнем.) Точно так же, если другой конец внешней кнопки подключен к высокому уровню, его необходимо установить как сопротивление нижнего натяжения.

60. Различие между последовательным прерыванием TXE и TC: на самом деле очевидно, что один из них - это пустой знак в регистре отправки, а другой - полный знак. Поскольку последовательные порты должны перемещать данные из передающего регистра в регистр сдвига (теневой регистр) перед последовательной отправкой. Таким образом, когда DR регистра отправки пуст, это означает, что данные могут быть отправлены извне, а данные могут еще не отправлены. Но ситуация с завершением передачи отличается. Это бит знака, установленный после того, как регистр сдвига переместил все данные за этот период времени (т. е. бит остановки после завершения передачи). Похоже, что TXE дает программе больше времени для заполнения регистра TDR, обеспечивая бесперебойную передачу потока данных. TC позволяет программе знать точное время окончания передачи, что помогает программе контролировать время внешнего потока данных.

61. Как следует из названия, оконный монитор имеет окно, горизонтальная ось которого указывает время, что означает, что регистр обновляется в указанном временном диапазоне, иначе микроконтроллер будет сброшен. Верхний предел окна устанавливается человеком W [6: 0], фиксированное значение в автономном режиме 0x40Twdg = (4096×2 ^ WDGTB × (T [5: 0] + 1)) / Fpclk1; Twdg - это таймер MS, Fpclk1 - часы APB1 KHz.

Универсальный таймер TIMx имеет четыре отдельных канала для ввода - захвата, сравнительного выхода, генерации PWM и выхода в режиме одного импульса.

63. Таймер имеет четыре источника часов: внутренние часы (CK - INT), внешний режим часов 1 (TIx), внешний режим часов 2 (ETR) и внутренний режим запуска (ITRx, для синхронизации таймера)

64. Таймер прерывает время обновления переполнения: Tout = (arr + 1) * (psc + 1) / Tclk, arr - регистр автоматической загрузки (1 ~ 65535), psc - фактор деления, Tclk - входная частота часов (Mhz)

Разница фаз между режимами PWM1 и PWM2 составляет всего 180 градусов. Когда текущий находится на высоком уровне, последний находится на низком уровне. Ощущение, как куриное ребро, полярность OCxREF может выполнить эту функцию.

66. Входной захват таймера имеет фильтр, который, как следует из названия, выполняет роль фильтра. При захвате внешнего сигнала сигнал может быть нестабильным и требует фильтрации: при обнаружении внешнего входа требуется непрерывный отбор проб N раз. Если установлен высокий / низкий, это вызовет прерывание ответа (если включено).

67. Принцип конденсаторного сенсорного экрана: определение нажатия с помощью различных кривых заряда и разряда. В ходе практического эксперимента TPAD может быть заменен областью, покрытой медью, а сжатие зависит от постоянной зарядки и разрядки конденсатора.

a58b904a-0067-11ef-a297-92fbcf53809c.jpga58b904a-0067-11ef-a297-92fbcf53809c.jpg

68 OLED, органический светодиод, также известный как органический электролюминесцентный дисплей (OELD). На рисунке ниже показана таблица соответствий между OLED GRAM и экраном

a59bda90-0067-11ef-a297-92fbcf53809c.png
a59bda90 - 0067 - 11ef - a297 - 92fbcf53809c.png


На странице 2 приводится отдельная информация:

a5b3288a-0067-11ef-a297-92fbcf53809c.png
a5b3288a - 0067 - 11ef - a297 - 92fbcf53809c.png


USART может манипулировать устройствами SPI. Однако максимальная частота составляет всего 4,5 МГц.

a5fe358c-0067-11ef-a297-92fbcf53809c.jpg
Вопросы, требующие внимания при использовании портов ввода / вывода

a62b99be-0067-11ef-a297-92fbcf53809c.jpg


К VREF + и VDDA ADC и VSS должны быть добавлены высококачественные фильтрующие конденсаторы, VREF - должны быть близко к микроконтроллеру.

 


72. ADC делится на группы правил, которые имеют 16 каналов, и группы инъекций, которые имеют четыре канала. Каждый из четырех каналов в группе инъекций имеет цифровой реестр.

a6473d68-0067-11ef-a297-92fbcf53809c.jpg
a6473d68 - 0067 - 11ef - a297 - 92fbcf53809c.jpg

Минимальный период прерывания Stm32 составляет 6 циклов


75.

a662a558-0067-11ef-a297-92fbcf53809c.png


76.

a67624e8-0067-11ef-a297-92fbcf53809c.jpg


77 FSMC, гибкий статический контроллер хранения. Он может быть подключен к синхронной или асинхронной памяти и 16 - разрядной карте памяти ПК. Интерфейс FSMC STM32 поддерживает память SRAM, NAND FLASH, NOR FLASH и PSRAM.


В USB - флэш - накопителях есть два типа флэш - памяти: NAND и NOR.


 


И NAND FLASH тоже.
Внутри нельзя запускать код, можно запускать внутренний код.
Скорость записи и стирания, медленная запись и стирание
Читать медленнее, читать быстрее
Цикл записи 1 миллион раз Цикл записи 100 000 раз
Низкая стоимость, высокая пропускная способность, высокая стоимость, низкая пропускная способность
Обычно он имеет последовательный интерфейс и интерфейс SRAM.
 a68fa6f2-0067-11ef-a297-92fbcf53809c.jpg


TFT может работать как внешний SRAM, поэтому, если микроконтроллер имеет интерфейс FSMC, он может управляться с помощью интерфейса SRAM NORFLASH очень быстро.


FSMC Stm32 имеет четыре блока памяти 256 МБ, которые занимают в общей сложности 1 ГБ внешнего хранилища.


a68fa6f2 - 0067 - 11ef - a297 - 92fbcf53809c.jpg


81. В STM32 один конец FSMC подключается к ядру Cortex - M3 через внутреннюю высокоскоростную шину AHB, а другой - к внешней шине для расширенной памяти. Сигнал доступа ядра к внешнему запоминающему устройству передается на шину AHB и преобразуется через FSMC в сигнал, соответствующий протоколу связи внешнего запоминающего устройства, и отправляется на соответствующий вывод внешнего запоминающего устройства для обмена данными между ядром и внешним запоминающим устройством.

a6aba050-0067-11ef-a297-92fbcf53809c.jpg
Настройки DATASET и ADDSET в FSMC должны определяться с помощью диаграммы временных рядов внешней памяти. Как правило, DATASET относится к времени создания данных, т.е. времени между началом сигнала чтения / записи и прекращением сигнала чтения / записи (хранение данных по восходящей линии). Как правило, писать быстрее, чем читать. ADDSET - это время создания адреса, время от выбора чипа до операции чтения / записи. Это относится к SRAM. Если TFT управляется и не имеет адресной линии, ADDSET - это время перехода от конца сигнала чтения / записи к уровню RS.


a6aba050 - 0067 - 11ef - a297 - 92fbcf53809c.jpg


83.

a68fa6f2-0067-11ef-a297-92fbcf53809c.jpg


84.

a6e952d8-0067-11ef-a297-92fbcf53809c.jpg


85. FSMC имеет три регистра конфигурации: FSMC BCRx (конфигурация управления выбором чипа), FSMC BTRx (время выбора чипа) и FSMC BWTRx (время выбора чипа).


В конфигурации часов 86.RTC должен использоваться регистр BKP. Регистр BKP не изменяет значения микроконтроллера во время сброса, сброса питания и режима пробуждения в режиме ожидания. Его источник питания поставляется VDD, который после отключения автоматически переключается на внешний источник питания VBAT.


87. Чтобы изменить значение регистра BKP, необходимо удалить его защитный знак записи. Регистр BKP автоматически записывает защиту при включении.


88 Stm32 имеет три режима энергосбережения:

a7030fd4-0067-11ef-a297-92fbcf53809c.png


В трех режимах энергосбережения потребление энергии постепенно уменьшается сверху вниз, а ток в режиме ожидания составляет всего 2uA.


89. Разбудить микроконтроллер из режима ожидания равносильно сбросу микроконтроллера, но значение регистра мощности будет иметь знак, указывающий на то, что микроконтроллер пробуждается, а не сбрасывается.


Часы ADC не должны превышать 14 МГц, иначе точность преобразования уменьшится. Максимальная скорость конверсии составляет 1 МГц, что означает, что период конверсии составляет 1 us (14 МГц, период отбора проб - 1,5 ADC часов).


91.Tcovn = время отбора проб + 12,5 циклов. Попытайтесь выбрать более длительное время отбора проб для более высокой точности, но скорость конверсии может быть снижена, что является как благоприятным, так и неблагоприятным.


92.

a7139caa-0067-11ef-a297-92fbcf53809c.jpg


93. В случае ARM7TDMI, T означает набор команд Thumb, D - поддержку отладки JTAG, M - быстрое умножение, а I соответствует встроенному модулю ICE.


94 MMU - это водораздел между встроенными и прикладными процессорами. Встроенный процессор с блоком управления памятью может быть позиционирован как прикладной процессор. Таким образом, разница между процессорами серии M и серии A заключается в том, что процессоры серии A имеют модули MMU для управления модулями памяти.


Процессор ARM имеет два состояния: ARM и Thumb.


a72f0ddc - 0067 - 11ef - a297 - 92fbcf53809c.jpg

a72f0ddc-0067-11ef-a297-92fbcf53809c.jpg
Эта картина иллюстрирует все: набор инструкций Thumb2 делает отличную вещь: он объединяет 16 - битные и 32 - битные наборы инструкций с высокой совместимостью! Поэтому CM3 не поддерживает некоторые 32 - битные наборы команд ARM.

a743b2c8-0067-11ef-a297-92fbcf53809c.jpg
97.


a743b2c8 - 0067 - 11ef - a297 - 92fbcf53809c.jpg


98. MSP - это указатель стека, используемый после сброса системы, в то время как PSP используется пользовательским кодом. Два указателя стека выравниваются на 4 байта!


В области программирования ARM любое событие, которое прерывает выполнение программы, в совокупности называется аномалией.


100. Благодаря присутствию LR (Link Register) он может поддерживать вызовы подпрограмм первого уровня без необходимости нажимать на память, значительно увеличивая скорость работы - это означает, что, когда мы программируем, вызовы первого уровня не занимают много времени, если только это не вызов второго уровня!


Процессор имеет два режима работы: режим процессора и режим потока.


a7638238 - 0067 - 11ef - a297 - 92fbcf53809c.jpg


Процессор также имеет два уровня привилегий: уровень привилегий и уровень пользователя. Этот рисунок иллюстрирует все: сбросить в режим привилегированного потока, а в случае аномалии перейти в режим привилегированного процессора, чтобы обработать аномалию или прервать программу, а затем вернуться в режим привилегированного потока. Изменив регистр CON, можно войти в режим потоков на уровне пользователя.

a7638238-0067-11ef-a297-92fbcf53809c.jpg
102. Два современных таймера TIM1 и TIM8 подключены к шине APB1


Внешние прерывания STM32 различаются по группам, что означает, что микроконтроллеры PA0, PB0 и PC0 не могут отличить, какой из них вызвал прерывание. Все прерывания являются рутинными сервисами прерывания линий EXIT0. Таким образом, внешние прерывания поддерживают 16 - канальный анализ прерываний. С другой стороны, мы можем настроить GPIOEXTILineConfig (GPIOPortSourceGPOx, GPOPINSourcex); Включите линию прерывания, чтобы реализовать различные прерывания в группе.


104. DAC имеет два регистра, один из которых является регистром хранения данных DHR (регистр хранения данных), а другой - регистром вывода данных DOR (регистр вывода данных). Реально эффективным является регистр DOR, который использует VREF + в качестве эталонного напряжения для вывода значения напряжения в цифровой модуль преобразования. В случае преобразования, инициированного аппаратным обеспечением, система предоставляет значение DOR после одного цикла ABP - часов. В случае преобразования, инициированного программным обеспечением, время составляет три тактовых цикла APB. Затем, до истинного выходного значения напряжения, время ожидания Tsetting (типичное значение 3us, максимальное значение 4us).


105.DAC делится на 8 - битный и 12 - битный режимы, которые могут выбрать правое и правое выравнивание.


106. Арбитры DMA делятся на две категории: программное и аппаратное обеспечение. Программное обеспечение делится на четыре уровня: высокий приоритет, высокий приоритет, средний приоритет и низкий приоритет. Аппаратная часть определяется размером канала, чтобы определить приоритет, чем ниже приоритет, тем выше приоритет.


107. В DMA имеется регистр томов передачи данных в реальном времени под названием DMA CNDTR с максимальным значением 65535, который используется для хранения текущего объема данных, подлежащих передаче. Когда количество данных становится 0, это означает, что передача завершена.

108 Шина CAN (локальная сеть контроллера). Контроллер CAN определяет уровень шины на основе разности потенциалов между двумя линиями и делится на явный и неявный уровни, которые должны быть одним из них.


109. Шины CAN имеют шесть характеристик: 1. Многостороннее управление (все устройства, подключенные к шине, могут быть основным устройством управления, идентификатор устройства используется для определения приоритета устройства, нет понятия адреса устройства), 2. Если система мягкая (нет понятия адреса устройства), 3. Высокая скорость связи и большое расстояние связи (40М при 1Мбит / с и 10КМ при 5Кбит / с) 4. Обнаружение ошибок, уведомление об ошибке (уведомление других устройств) и функция восстановления ошибок (принудительное прекращение отправки и повторная отправка и получение сообщения об ошибке), 5. Отключение. Когда устройство на шине испытывает непрерывную неисправность, контроллер CAN выбивает контроллер из шины. 6. Несколько узлов связи. Теоретически возможна неограниченная нагрузка, но из - за временной задержки и ограничения электрической нагрузки фактическое количество ограничено. Снижение скорости передачи может надлежащим образом увеличить количество причальных нагрузок.


Протокол CAN имеет два стандарта: ISO 11898 (для высоких скоростей 125 кбит / с ~ 1 Мбит / с) и ISO 11519 - 2 (для низких скоростей ниже 125 кбит / с).


a789e07c-0067-11ef-a297-92fbcf53809c.png


111.


a7a9c8e2-0067-11ef-a297-92fbcf53809c.jpg


В протоколе CAN есть пять типов кадров: кадр данных, кадр удаленного управления, кадр ошибки, кадр перегрузки и интервал между кадрами. Первые два типа кадров имеют стандартный формат (11 - битный ID) и расширенный формат (29 - битный ID).


a7c45e6e-0067-11ef-a297-92fbcf53809c.jpg


113. Состав кадра данных:


(1) Начало кадра. Укажите начало сегмента данных.


(2) Арбитражная часть. Укажите приоритет фреймворка арбитража.


(3) Контрольный сегмент. Показывать байты и зарезервированные биты данных.


(4) Сегмент данных. Содержание данных может отправлять 0 - 8 байт данных на кадр.


(5) Пункт CRC. Проверьте неправильный участок передачи кадра.


(6) Пункт ACK. Подтвердить нормальный прием этого пункта.


(7) Конец кадра. Укажите конец кадра сегмента данных.


a7e00664-0067-11ef-a297-92fbcf53809c.jpg


Серия Stm32f103 имеет только один контроллер CAN, три почтовых ящика, два FIFO с тремя уровнями глубины и 14 наборов фильтров.


Каждая группа фильтров STM32 может быть оснащена 32 - разрядным и двумя 16 - разрядными фильтрами. Кроме того, он может быть настроен как режим бита маски (маска ID +) и режим списка идентификаторов (как ID, так и регистратор маски используются в качестве регистра идентификатора).


CAN получает действительные сообщения и помещает их в FIFO 3 - го уровня глубины почтового ящика, полностью управляемого аппаратным обеспечением.


КПК шина

117

a7f37906-0067-11ef-a297-92fbcf53809c.jpg


118. Как правило, сенсорные экраны подразделяются на резистивные и конденсаторные. Принцип первого определения положения прикосновения заключается в том, чтобы использовать преобразователь A / D в контроллере сенсорного экрана для получения координат X и Y после двух показаний A / D. Примечание: Значения X и Y относятся к сенсорному экрану, а не к экрану LCD. Поэтому здесь мы должны обратить внимание на две концепции: сенсорный экран и жидкокристаллический экран. Это две разные концептуальные и физические структуры, в которых резистивный сенсорный экран состоит из двух проводящих слоев с очень тонким прозрачным слоем посередине; LCD - это дисплей.


119. Сопротивляющий сенсорный экран имеет коэффициенты масштабирования X и Y, X и Y, направление оси координат и смещение. У LCD есть свои параметры. Они совершенно не связаны друг с другом, поэтому для определения местоположения требуется преобразование координат. Формула:


a813b8f6-0067-11ef-a297-92fbcf53809c.png


Калибровка четырех точек на экране позволяет получить и решить линейные уравнения кватернионов.


Формат кадра данных протокола 120.NEC включает синхронную стыковку, код адреса, дополнение адреса, код управления и дополнение управления. Код синхронизации состоит из низкого уровня 9 мс и высокого уровня 4,5 мс, а код адреса, обратный код адреса, код управления и обратный код управления - это 8 - битные форматы данных. Отправка осуществляется в порядке ниже и выше.


121. При передаче протокола NEC будет установлен несущий сигнал на частоте 560us 38 кГц, который считается низким во время приема. Оставшееся логическое "1" время (2.25ms - 650us) и логическое "0" время (1.12ms - 650us) считается высоким.


122. Смещение в единицу времени определяется как скорость, которая может быть разделена на линейную и угловую скорость и измеряется двумя различными датчиками: линейным датчиком скорости (акселерометром) и датчиком угловой скорости (гироскопом). Первый чаще используется для решения положения при статическом или низкоскоростном движении, а второй - для решения положения при динамическом движении.


Согласно стандартной практике, нулевое ускорение (или нулевой уровень G) обычно определяется как выход, равный половине максимального выходного значения (12 - разрядный выход 4096, 10 - разрядный выход 1024 и т.д.). Для акселерометров с 12 - разрядным выходом нулевой уровень G будет равен 2048. Выход выше 2048 означает положительное ускорение. Выход меньше 2048 означает отрицательное ускорение. Размер ускорения обычно выражается в g (1g = 9,8 м / s2 = ускорение силы тяжести). Ускорение рассчитывается путем определения разницы между измеренным выходом и нулевым уровнем G и деления его на чувствительность акселерометра (выраженную в числах G или LSB / G). Для акселерометров 2G, обеспечивающих 12 - битный выход, чувствительность составляет 819 счётчиков / г или 819 LSB / g. Ускорение равно: a = (Aout - 2048) / (819 счётчиков / g) в граммах.


124. Акселерометр измеряет ускорение в противоположном направлении по сравнению с системой координат, установленной устройством, поскольку этот принцип предполагает использование неинтегрированной системы координат при измерении силы, в то время как система координат, которую мы изучали в старших классах средней школы, является инерциальной системой координат. Первый предполагает, что, когда объект производит ускорение во время движения, он подвергается силе, противоположной направлению скорости, которая называется инерционной силой; Мы говорим, что в последнем нет инерционной силы, есть только инерция, потому что в инерциальной системе координат мы изучаем объекты, а не системы координат (предполагая, что система координат статична относительно Земли). Когда мы также рассматриваем систему координат, когда система движется, возникает инерциальная сила f, предполагающая, что инерциальная сила f действует на объект, но в противоположном направлении.


125. Как видно из вышесказанного, акселерометр по своей сути измеряет силу, а не ускорение.


126.NRF24L01 работает в диапазоне 2,4 ГГц, скорость передачи до 2 Мбит / с из - за его высокочастотных характеристик


Модуль флэш - памяти STM32 состоит из трех частей: основной памяти, блока информации и регистра интерфейса флэш - памяти. Основная память используется для хранения кода и констант; Блок информации состоит из двух частей: кода программы запуска и байта, выбранного пользователем. Код программы запуска - это встроенная программа запуска компании ST для последовательной загрузки. Окончательный регистр интерфейса флэш - памяти используется для управления всей операцией в области флэш - памяти.


Процессор работает намного быстрее, чем FLASH, максимальная скорость доступа к которому обычно составляет 24 МГц. Если скорость процессора превышает эту частоту, необходимо добавить время ожидания при чтении FLASH (настройки FLASH - ACR).


При программировании FLASH запись должна быть полубуквой (16 бит). При записи необходимо убедиться, что данные, записанные в область, являются 0xFFFF.


130.STM32 FSMC имеет HADDR [27: 0], где [27: 26] используется для выбора четырех различных блоков в зоне банка. Оставшийся [25: 0] используется для адресной линии FSMC A [25: 0], соединяющей внешние области хранения. Если ширина данных 8 бит, то HADDR [25: 0] и FSMC A [25: 0] полностью соответствуют. Если ширина данных составляет 16 бит, то HADDR [25: 1] и FSMC A [24: 0] соответствуют друг другу. Обратите внимание, что независимо от ширины данных внешние FSMC A [0] и A [0] всегда соответствуют.

131.Управление сигналами LB и UB автоматически контролируется аппаратным обеспечением. Когда ширина данных AHB меньше ширины данных внешней памяти, контрольные сигналы LB и UB генерируются автоматически (например, байтовое чтение / запись для 16 - разрядной внешней памяти)


132 атрибут (атрибут функции, атрибут переменной, атрибут типа и т.д.). При использовании SRAM, u32 SRAM array [xx] attribute (at (0x6800000)) может быть использован для обозначения того, что все пространство внешнего SRAM предоставляется переменной SRAM array, атрибут которой находится по адресу 0x6800000. Запишите значение непосредственно в SRAM.


133.


a82766e4-0067-11ef-a297-92fbcf53809c.png


Существует метод управления памятью, называемый блочным управлением памятью.


Обратите внимание на направление распределения в таблице, сверху вниз. Каждый элемент соответствует одному блоку хранения. Внутреннее значение указывает состояние пула памяти: если 0, то память не распределена; Если он не равен нулю, размер значения указывает количество блоков памяти, которые непрерывно заняты. Например, если значение 20, это означает, что блок памяти, включающий этот элемент, был непрерывно занят 20 блоками и назначен указателю.


134.Классификация карт SD:


a83db71e-0067-11ef-a297-92fbcf53809c.png


Типичная карта SD поддерживает два режима передачи: режим SDIO и режим SPI. Очевидно, что первый - это выделенный режим, поэтому скорость относительно быстрая.


135. К числу распространенных систем внутреннего кодирования иероглифов относятся GB2313, GB13000, GBK и BIG5 (на китайском языке). В GB2313 всего несколько тысяч иероглифов, в то время как в GBK насчитывается более 20 000 иероглифов.


136. Для отображения китайских иероглифов не рекомендуется использовать формат решетки, поскольку он не может искать китайские иероглифы. Используется внутренняя система кодирования. В стандарте GBK один китайский иероглиф соответствует двум байтам: первый называется регионом (0x81 ~ 0xFE), второй называется (0x40 ~ 0x7E) и (0x80 ~ 0xFE). В первом случае насчитывается 126 департаментов, а во втором - 190. Таким образом, количество китайских иероглифов, которые можно показать, составляет 13940, или 126 * 190. Основываясь на этих двух значениях, он используется для поиска в библиотеке символов, которая по - прежнему хранит данные решетки для каждого китайского иероглифа. Эта библиотека шрифтов очень большая. Если 16 * 16 шрифтов, то для одного шрифта требуется 32 байта. Таким образом, он требует пространства 23940 * 32 = 748K, которое очень велико. Поэтому для хранения этой библиотеки шрифтов требуется внешний Flash.


137. Поскольку система кодирования китайских иероглифов не является универсальной на международном уровне, Unicode охватывает почти все языки, поэтому для работы с китайскими иероглифами в микроконтроллере требуется преобразование GBK и Unicode. В частности, в FATF при создании имени файла на китайском языке и чтении информации о файле на китайском языке необходимо преобразовать Unicode в GBK, прежде чем выполнить операцию изменения, а затем обратно в Unicode для сохранения изменений. Таким образом, они существуют из - за отсутствия стандартизации, в Unicode всего 6064 иероглифа, в то время как GBK, очевидно, является продолжением иероглифов.


Изображения BMP кодируются слева направо, снизу вверх.


139.VS1053 - это высокопроизводительный цифровой чип для декодирования звука, который отправляет MP3 и другие музыкальные аудиофайлы с SD - карт на VS1053 через SPI для декодирования звука и вывода музыки в наушники. Диск для наушников может использовать чип TDA1308 для наушников класса AB.


a850667a-0067-11ef-a297-92fbcf53809c.jpg


140.

a86824c2-0067-11ef-a297-92fbcf53809c.jpg
141.IAP (Программирование внутри приложений) - это концепция, предложенная в прикладном программировании, предназначенная для облегчения последующей разработки и обновления программ. Как показано на диаграмме ниже:


a87e6f34-0067-11ef-a297-92fbcf53809c.jpg


В обычном программировании код во флэш - памяти загружается на микроконтроллер с помощью таких инструментов, как JTAG и ISP. В программировании IAP флэш - память разделена на две зоны: A и B. Зона A позволяет загружать только с помощью USB / USART и других методов, и эта область используется для обновления кода зоны B. Зона B - это область кода пользователя, которая выполняет реальный код и размещает приложения.


a89a218e-0067-11ef-a297-92fbcf53809c.jpg


На приведенном выше рисунке показана нормальная работа STM32. Можно видеть, что после перезагрузки система запускает программу с 0x8000004. Это сброс вектора прерывания, затем он переходит к сбросу входа в программу прерывания, а затем к основной функции для запуска пользовательской программы.




На рисунке выше показана схема работы программы STM32 после добавления IAP. Вы можете видеть, что после перезагрузки переключается на основную функцию программы IAP, которая запускает процесс IAP (процесс состоит в том, чтобы записать код программы для серого фона ниже в область B для обновления кода). Последующий процесс идентичен нормальной работе STM32. Если запрос прерывания происходит, он все равно переходит в таблицу векторов прерывания в области A, а затем в службу прерывания в области B.


142 USB имеет четыре линии, VCC, GND, D +, D На USB - хосте и D + заземлены с помощью резистора 15K, поэтому обе линии находятся на низком уровне. В USB - устройствах высокоскоростные устройства будут подключены к VCC через резистор D + 1.5K, а низкоуровневые устройства будут подключены к VCC через сопротивление D - 1.5K. Таким образом, хост может обнаружить подключение устройства и идентифицировать высокоскоростные и низкоскоростные устройства по прибытию высокого уровня D + и D.


143 UCOSII - это операционная система в реальном времени, которая имеет преимущества высокой эффективности выполнения, небольшого пространства (минимальный размер ядра 2 КБ), отличной производительности, высокой масштабируемости и переносимости.


a8b35e60-0067-11ef-a297-92fbcf53809c.jpg


UCOS имеет характеристики многозадачности и параллельной работы (имейте в виду, что в любой момент только одна задача может занимать CPU. Параллельная работа включает только задачи, которые по очереди занимают CPU, а не работают одновременно). Поддержка до 255 параллельных миссий.

Share

Recommended Posts

  • 返回顶部