Тег: stm32 - сторінка 5
« ‹ 3 4
5. STM32. Програмування STM32F103. USART
Ми вже використовували послідовний порт для програмування мікроконтролера. Тепер застосуємо його за прямим призначенням. STM32F103 Має 3 послідовних USART порти. Ми розглянемо приклад з USART1. Решта портів працюють аналогічно. У цьому прикладі ми підключимо мікроконтролер до комп`ютера за допомогою UART-USB перехідника. Та будемо використовувати термінальну програму для передачі команд мікроконтролеру.
4. STM32. Програмування STM32F103. Тактування
Тактування - це серце мікроконтролера. Для роботи мікроконтролера серце має битися. Чим вища частота, тим швидше працює мікроконтролер, але і більше споживає енергії. І навпаки, чим менша частота тактування, тим менше споживання енергії та менша швидкість роботи контролера. Те саме стосується периферії. Тактування слід налаштовувати в залежності від поточних задач. У попередніх прикладах ми не займали налаштування тактування і мікроконтролер працював з невідомою нам частотою. Але у подальшому, при роботі з периферією нам прийдеться налаштовувати сам мікроконтролер і певні модулі на роботу на конкретній частоті. Тому ми маємо розібратися з цим питанням.
3. STM32. Програмування STM32F103. GPIO
У попередній статті ми використовували простеньку програму, яка блимає світлодіодом. Трохи модифікуємо її і спробуємо розібратися, як налаштувати виводи мікроконтролера для роботи на вхід і вихід. C13 налаштуємо як вихід. До нього підключений світлодіод на тестовій платі. B0 налаштуємо на вхід і підключимо до нього кнопку. У натиснутому положенні кнопка має замикати ногу B0 на землю.
2. STM32. Програмування. IDE для STM32
Для того, щоб розробляти свої програми нам знадобиться середовище розробки, бажано з дебагером, і компілятор C.
Я зупинився на CooCox CoIDE та GCC. По-перше цей софт не коштує грошей, по-друге - з ним не виникло ніяких питань. Встановив і почав робити. Щоправда CooCox зроблений тільки під Windows. Це не зовсім добре. І хоча на Ubuntu CooCox і працює під wine і навіть компіляція проходить вдало, з дебагером проблема. Та й робота через wine - це не true way. Якось я напишу, як налаштувати IDE для STM32 під Ubuntu.
А тим часом...
1. STM32. Програмування STM32F103. Тестова плата. Прошивка через послідовний порт та через ST-Link програматор
Мікроконтролери STM32 здобувають все більшу популярність завдяки своїй потужності, досить різнорідної периферії, та своєї гнучкості. Ми почнемо вивчати STM32F103C8T6, використовуючи бюджетну тестову плату, вартість якої не перевищує 2$ (у китайців). Ще нам знадобиться ST-Link програматор, вартість якого близько 2.5$ (у китайців). Такі суми витрат доступні і студентам і школярам, тому саме з такого бюджетного варіанту я і пропоную почати.
Цей мікроконтролер не є найпотужнішим серед STM32, але і не самий слабкий. Такий собі середнячок. Існують різні тестові плати, у томі числі Discovery які за ціною коштують близько 20$. На таких платах є майже те саме, що і на нашій платі, плюс програматор. В нашому випадку ми будемо використовувати програматор окремо.
13. STM32. Програмування STM32F103. EXTI
Зовнішні переривання
Зовнішні переривання викликаються при зміні стану логічного сигналу на вході мікроконтролера. Зовнішні переривання використовують, коли треба слідкувати за зміною вхідного сигналу і оперативно реагувати. Коли нам потрібен такий функціонал, ми налаштовуємо потрібний пін, налаштовуємо зовнішнє переривання (по спаду, по фронту або по обом фронтам) і, як тільки відбудеться зміна стану сигналу, буде викликано обробник переривання.У STM32 зі зовнішніми перериваннями можуть працювати будь-які лінії вводу-виводу. Тобто, будь-який пін можна налаштувати на роботу з перериванням. У STM32F103 всього 19 ліній зовнішніх переривань:
- EXTI0...EXTI15 - для роботи з пінами портів
- EXTI16 - підключений до PVD
- EXTI17 - RTC Alert event (будильник)
- EXTI18 - USB Wakeup event
- EXTI19 - Ethernet Wakeup event
« ‹ 3 4
Tags
timer meteo pwm capture dma smd brushless sensors 3d-printer examples sms git st-link adc rfid exti web bme280 bmp280 gps options barometer battery lcd dht11 hih-4000 atmega dc-dc piezo solar bluetooth displays mpx4115a bldc websocket eb-500 motor raspberry-pi usb rtc usart max1674 avr soldering mongodb esp8266 programmator mpu-6050 remap rs-232 pmsm bkp gpio i2c eeprom encoder stm32 css docker flask nodemcu ssd1331 tim flash servo nvic ssd1306 mpu-9250 ethernet led foc python ngnix watchdog books html java-script wifi uart
Архіви

