Относно STM32
Микроконтролерите са нашето всичко!
Време е да тестваме UART в действие и веднага ще се втурнем, като свържем stm32 през usb от компютър!
Разбира се, в по-мощни серии usb е интегриран в stm32, но ще трябва да използваме специален чип FT232RL от FTDI.
За работа ще използваме модула USART1, в който TX щифтът е свързан към деветия крак на порт A, а RX щифтът е свързан към десетия крак на същия порт. (Вижте листа с данни на страница 24)
Нека започнем, както винаги, с най-важното - ще попълним всички необходими периферни устройства!
RCC_APB2ENR_IOPAEN - тактирахме порта, към който са изведени краката на модула USART1.
RCC_APB2ENR_USART1EN - часовник на модула USART1.
RCC_APB2ENR_AFIOEN - включете часовника на алтернативни функции (тъй като използването на USART крака предполага прехвърляне на контрол върху тях към този модул. Ако не активирате тази функция, тогава портът ще остане порт с пинове с общо предназначение, а USART модул ще отиде на вятъра)
Остава да конфигурирате самия модул USART1 и трикът е в чантата! В тази статия ви казах как да конфигурирате регистъра за предскалиране, така че остава само да конфигурирате регистрите CR (контролен регистър). Както си спомняме, има 3 от тях, но за да работи модулът, трябва да се правят промени само в регистъра CR1. Защо? Тъй като в останалите два регистъра сме доволни от настройките по подразбиране (8 бита за данни, 1 стоп бит, без паритет). Така:
Тъй като UART може да работи в полудуплексен режим, е възможно да включите както приемника, така и предавателя поотделно. В нашия случай приемникът (USART_CR1_RE) и предавател (USART_CR1_TE). Освен това отделен елемент е включването на самия модул USART1 чрез задаване на бита UE (USART_CR1_UE).