Тег: stm32 - сторінка 5
« ‹ 3 4
6. STM32. Програмування STM32F103. NVIC
NVIC (Nested vectored interrupt controller) - модуль контролю переривань. Він виконує наступні функції:
- дозволяє/забороняє переривання
- назначає пріоритет переривань (від 0 до 15. 0 - максимальній пріоритет, 15 - мінімальний пріоритет)
- автоматично зберігає дані при виконанні одиноких чи вкладених переривань.
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
docker timer dht11 piezo solar css mongodb ssd1331 sensors eeprom displays ethernet st-link smd motor stm32 html flask esp8266 pwm books rfid bldc tim meteo mpu-9250 encoder bluetooth raspberry-pi nodemcu avr soldering brushless wifi usb nvic gpio eb-500 ngnix gps watchdog examples lcd battery programmator ssd1306 bmp280 servo adc rs-232 java-script pmsm options rtc sms foc git barometer remap exti flash usart dc-dc atmega web python uart mpu-6050 websocket capture led hih-4000 mpx4115a i2c 3d-printer bkp dma max1674 bme280
Архіви

