Სარჩევი:
- ნაბიჯი 1: პროგრამული უზრუნველყოფისა და აპარატურის მოთხოვნები
- ნაბიჯი 2: STM32CubeMX კონფიგურაცია
- ნაბიჯი 3: Keil პროგრამული უზრუნველყოფის განვითარება
- ნაბიჯი 4: პითონის პროგრამული უზრუნველყოფის შემუშავება
- ნაბიჯი 5: დასკვნა
ვიდეო: STM32F4 Discovery Board და Python USART Communication (STM32CubeMx): 5 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:18
გამარჯობა! ამ გაკვეთილში ჩვენ შევეცდებით დავამყაროთ USART კავშირი STM32F4 ARM MCU- სა და პითონს შორის (ის შეიძლება შეიცვალოს სხვა ენით). მაშ, დავიწყოთ:)
ნაბიჯი 1: პროგრამული უზრუნველყოფისა და აპარატურის მოთხოვნები
აპარატურის თვალსაზრისით გჭირდებათ:
- STM32F4 აღმოჩენის დაფა (ან ნებისმიერი სხვა STM32 დაფა)
- USB to TTL გადამყვანი
რაც შეეხება პროგრამულ უზრუნველყოფას:
- STM32CubeMX
- კეილი uVision 5
- პითონი დაინსტალირებულია სერიული ბიბლიოთეკით
ნაბიჯი 2: STM32CubeMX კონფიგურაცია
ჯერ გავიგოთ რისი გაკეთებაც გვინდა. ჩვენ გვსურს მონაცემების გადაცემა პითონიდან USART– ით და შევამოწმოთ გვაქვს თუ არა სწორი მონაცემები და led– ის გადართვა. ასე რომ, ჩვენ გვჭირდება ჩართვა USART და Led.
-
ჩართეთ USART2 დაკავშირებადობის ჩანართიდან.
- შეცვალეთ რეჟიმი ასინქრონულად
- ბოდის სიჩქარე 9600 ბიტ/წმ -მდე
- სიტყვის სიგრძე 8 ბიტამდე პარიტეტის გარეშე
- არანაირი პარიტეტი
- DMA პარამეტრებიდან დაამატეთ USART2_RX სპეციალურ რეჟიმში
- NVIC პარამეტრებიდან ჩართეთ USART2 გლობალური შეფერხება
- ჩართეთ LED, დააჭირეთ ღილაკს PD12
შემდეგ შექმენით კოდი:)
ნაბიჯი 3: Keil პროგრამული უზრუნველყოფის განვითარება
#ჩართეთ
#ჩართეთ
ეს ბიბლიოთეკები საჭირო იქნება სიმებიანი ოპერაციებისთვის და ლოგიკური ცვლადის განსაზღვრისათვის.
/ *USER CODE BEGIN 2 */ HAL_UART_Receive_DMA (& huart2, (uint8_t *) data_buffer, 1); / * USER CODE END 2 */
აქ, UART მიღება DMA– ით დაიწყო.
/ *USER CODE BEIN 4 */void HAL_UART_RxCpltCallback (UART_HandleTypeDef *huart) {/ *გამოვიყენოთ გამოუყენებელი არგუმენტების (ების) შედგენის გაფრთხილება */UNUSED (huart); / * შენიშვნა: ეს ფუნქცია არ უნდა შეიცვალოს, როდესაც საჭიროა ზარის დაბრუნება, HAL_UART_RxCpltCallback შეიძლება განხორციელდეს მომხმარებლის ფაილში */ if (data_buffer [0]! = '\ N') {data_full [index_] = data_buffer [0]; ინდექსი _ ++; } სხვა {index_ = 0; დასრულდა = 1; } // HAL_UART_Transmit (& huart2, data_buffer, 1, 10); } / * მომხმარებლის კოდი ბოლოს 4 * /
ეს არის ISR, რომელიც გააქტიურებულია, როდესაც ვიღებთ ერთ ბაიტს. Ისე. ჩვენ ვიღებთ იმ ბაიტს და ვწერთ მას data_full რომელიც შეიცავს სრულად მიღებულ მონაცემებს სანამ არ მივიღებთ '\ n'. როდესაც მივიღებთ '\ n' - ს ვაკეთებთ დასრულებულ დროშას 1 და while loop:
ხოლო (1) { / * USER CODE END WHILE * / თუ (დასრულებულია) {if (strcmp (data_full, cmp_) == 0) {HAL_GPIO_TogglePin (GPIOD, GPIO_PIN_12); } memset (data_full, '\ 0', strlen (data_full)); დასრულდა = 0; } სხვა {_NOP (); } / * მომხმარებლის კოდი დაიწყო 3 * /}
თუ დასრულებული დროშა არის მაღალი ჩვენ შევადარებთ შინაარსს სრული მიღებული მონაცემებისა და მონაცემების ჩვენ გვსურს და თუ ისინი თანაბარია ჩვენ გადართვა led. ამის შემდეგ ჩვენ ვასუფთავებთ დასრულებულ დროშას და ველოდებით ახალ მონაცემებს და ასევე ვასუფთავებთ data_full მასივს, რათა არ გადავიწეროთ მასივში.
ნაბიჯი 4: პითონის პროგრამული უზრუნველყოფის შემუშავება
ამრიგად, აქ ჩვენ გვინდა გავაგზავნოთ ჩვენი ნომერი '/n' ბოლოს, რადგან Keil პროგრამულ უზრუნველყოფას დასჭირდება მისი ნახვა, რათა იცოდეს დასასრული.
სერიული იმპორტი
ser = serial. Serial ('COM17') #შეამოწმეთ თქვენი მოწყობილობის პორტი მოწყობილობის მენეჯერისგან
ser.write (b'24 / n ')
თქვენ უნდა ნახოთ, რომ LED იცვლება ყოველ ჯერზე '24 / n ' - ის გაგზავნისას. თუ სხვა რამეს გამოგიგზავნით არ უნდა იმოქმედოს მასზე.
ნაბიჯი 5: დასკვნა
ჩვენ მივაღწიეთ გაკვეთილის ბოლოს. თუ თქვენ გაქვთ რაიმე პრობლემა ან შეკითხვა, ნუ დააყოვნებთ კითხვას. ვეცდები შეძლებისდაგვარად დავეხმარო. Ძალიან დიდი მადლობა:)
გირჩევთ:
MXY Board - დაბალბიუჯეტიანი XY Plotter Drawing Robot Board: 8 ნაბიჯი (სურათებით)
MXY დაფა - დაბალბიუჯეტიანი XY Plotter Drawing Robot Board: ჩემი მიზანი იყო mXY დაფის შემუშავება, რათა დაბალი ბიუჯეტით გამომეყენებინა XY პლოტერის ხატვის მანქანა. ასე რომ, მე შევიმუშავე დაფა, რომელიც გაუადვილებს მათ, ვისაც სურს ამ პროექტის განხორციელება. წინა პროექტში, 2 ცალი Nema17 სტეპერიანი ძრავის გამოყენებისას, ეს დაფა თქვენ
FreeRTOS– ის დაყენება Scratch– დან STM32F407 Discovery Kit– ზე: 14 ნაბიჯი
FreeRTOS– ის დაყენება Scratch– დან STM32F407 აღმოჩენის ნაკრებში: FreeRTOS– ის, როგორც რეალურ დროში ოპერაციული სისტემის არჩევა თქვენი ჩაშენებული პროექტისთვის, დიდი არჩევანია. FreeRTOS ნამდვილად უფასოა და გთავაზობთ ბევრ მარტივ და ეფექტურ RTOS მახასიათებელს. მაგრამ უფასო RTOS- ის დაყენება ნულიდან შეიძლება იყოს რთული, ან შემიძლია ვთქვა ბი
Arduino to Node Communication: 4 ნაბიჯი
Arduino to Node Communication: ეს ინსტრუქცია არის მხოლოდ ძალიან ძირითადი დემონსტრირებისთვის, თუ როგორ უნდა გაგზავნოთ და მიიღოთ მონაცემები UART (სერიული) საშუალებით Arduino– ს თავსებადი ორ დაფას შორის
სერვო ძრავის კონტროლი STM32F4 ARM MCU– ით: 4 ნაბიჯი
სერვო ძრავის კონტროლი STM32F4 ARM MCU– ით: გამარჯობა მეგობრებო :) ასე რომ, ამ პროექტში ჩვენ გავაკონტროლებთ სერვო ძრავას STM32F4 ARM MCU– ით. ჩემს შემთხვევაში, მე გამოვიყენებ აღმოჩენის დაფას, მაგრამ თუ გაერკვევით პრობლემის არსში, შეგიძლიათ გამოიყენოთ იგი თითოეული MCU– სთვის. Ისე. დავიწყოთ:)
DC ძრავის სიჩქარის კონტროლი PID ალგორითმის გამოყენებით (STM32F4): 8 ნაბიჯი (სურათებით)
DC ძრავის სიჩქარის კონტროლი PID ალგორითმის გამოყენებით (STM32F4): გამარჯობა ყველას, ეს არის tahir ul haq სხვა პროექტით. ამჯერად ეს არის STM32F407 როგორც MC. ეს არის შუა სემესტრის დასრულების პროექტი. იმედია მოგეწონებათ. ის მოითხოვს ბევრ კონცეფციას და თეორიას, ასე რომ ჩვენ პირველ რიგში შევეხებით მას. კომპიუტერების დადგომასთან ერთად