ዝርዝር ሁኔታ:
- ደረጃ 1 የሶፍትዌር እና የሃርድዌር መስፈርቶች
- ደረጃ 2 STM32CubeMX ውቅር
- ደረጃ 3 የኬይል ሶፍትዌር ልማት
- ደረጃ 4 የፓይዘን ሶፍትዌር ልማት
- ደረጃ 5 መደምደሚያ
ቪዲዮ: STM32F4 ግኝት ቦርድ እና Python USART Communication (STM32CubeMx): 5 ደረጃዎች
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:31
ሃይ! በዚህ መማሪያ ውስጥ በ STM32F4 ARM MCU እና Python መካከል የ USART ግንኙነት ለመመስረት እንሞክራለን (በሌላ በማንኛውም ቋንቋ ሊተካ ይችላል)። ስለዚህ ፣ እንጀምር:)
ደረጃ 1 የሶፍትዌር እና የሃርድዌር መስፈርቶች
ከሃርድዌር አንፃር የሚከተሉትን ያስፈልግዎታል
- STM32F4 ግኝት ቦርድ (ወይም ሌላ ማንኛውም STM32 ቦርድ)
- ዩኤስቢ ወደ TTL መቀየሪያ
ከሶፍትዌር አንፃር -
- STM32CubeMX
- Keil uVision5
- Python ከተከታታይ ቤተ -መጽሐፍት ጋር ተጭኗል
ደረጃ 2 STM32CubeMX ውቅር
መጀመሪያ ምን ማድረግ እንደምንፈልግ እንረዳ። በዩኤስአርት (USART) ላይ ከፓይዘን ለመሳፈር መረጃን ለማስተላለፍ እና ትክክለኛ ውሂብ ካለን እና የመቀያየር መሪ ካለን ለመፈተሽ እንፈልጋለን። ስለዚህ ፣ USART እና Led ን ማንቃት አለብን።
-
USART2 ን ከግንኙነት ትር ያንቁ።
- ሁነታን ወደ አልተመሳሰል ይለውጡ
- የባውድ መጠን ወደ 9600 ቢት/ሰት
- የቃላት ርዝመት እስከ 8 ቢት ያለ እኩልነት
- የእኩልነት ቢት የለም
- ከዲኤምኤ ቅንብሮች ውስጥ USART2_RX በ cicular ሁነታ ውስጥ ያክሉ
- ከ NVIC ቅንብሮች USART2 ዓለም አቀፍ መቋረጥን ያንቁ
- PD12 ላይ ጠቅ በማድረግ LED ን ያንቁ
ከዚያ ኮድ ይፍጠሩ:)
ደረጃ 3 የኬይል ሶፍትዌር ልማት
#ያካትቱ
#ያካትቱ
እነዚህ ቤተመፃሕፍት በሕብረቁምፊ ሥራዎች ውስጥ እና የቦሊያን ተለዋዋጭ ለመለየት ይጠየቃሉ።
/ *የተጠቃሚ ተጠቃሚ ኮድ 2 */ HAL_UART_Receive_DMA (& huart2 ፣ (uint8_t *) data_buffer ፣ 1); / * የተጠቃሚ ኮድ መጨረሻ 2 */
እዚህ ፣ UART በዲኤምኤ ተጀምሯል።
/ *USER CODE BEGIN 4 */ባዶ HAL_UART_RxCpltCallback (UART_HandleTypeDef *huart) {/ *ጥቅም ላይ ያልዋለ የክርክር (ቶች) ማጠናከሪያ ማስጠንቀቂያ */ጥቅም ላይ ያልዋለ (huart) ፤ / * ማሳሰቢያ ፦ ይህ ተግባር መሻሻል የለበትም ፣ የጥሪው መልሶ ማግኛ ሲያስፈልግ ፣ HAL_UART_RxCpltCallback በተጠቃሚ ፋይል */ ከሆነ (data_buffer [0]! = '\ N') {data_full [index_] = data_buffer [0]; ኢንዴክስ _ ++; } ሌላ {index_ = 0; ጨርሷል = 1; } // HAL_UART_ አስተላልፍ (& huart2 ፣ data_buffer ፣ 1 ፣ 10) ፤ } / * የተጠቃሚ ኮድ መጨረሻ 4 * /
አንድ ባይት ባህርይ ስናገኝ ይህ የሚሠራው ISR ነው። ስለዚህ. ያንን ባይት አግኝተን '\ n' እስክናገኝ ድረስ ሙሉውን የተቀበለውን ውሂብ ወደያዘው ወደ Data_full እንጽፋለን። ‹\ N› ስናገኝ የተጠናቀቀውን ባንዲራ 1 እናደርጋለን እና በሚዞሩበት ጊዜ ውስጥ-
(1) { / * የአገልጋይ ኮድ ያበቃል / * (ከተጠናቀቀ) {ከሆነ (strcmp (data_full ፣ cmp_) == 0) {HAL_GPIO_TogglePin (GPIOD ፣ GPIO_PIN_12) ፤ } memset (data_full ፣ '\ 0' ፣ strlen (data_full)) ፤ ጨርሷል = 0; } ሌላ {_NOP () ፤ } / * የተጠቃሚ ተጠቃሚ ኮድ 3 * /}
የተጠናቀቀው ባንዲራ ከፍተኛ ከሆነ የምንፈልገውን ሙሉ መረጃ እና መረጃ ይዘቶች እናወዳድራቸዋለን እና እኩል ከሆኑ እንመራለን። ከዚያ በኋላ የተጠናቀቀውን ባንዲራ እናጸዳለን እና አዲስ ውሂብ እንጠብቃለን እንዲሁም ወደ ድርድሩ ላለመፃፍ የውሂብ_ፍሬ ድርድርን እናጸዳለን።
ደረጃ 4 የፓይዘን ሶፍትዌር ልማት
ስለዚህ ፣ እዚህ መጨረሻ ላይ ቁጥራችንን በ ‹/n› መላክ እንፈልጋለን ፣ ምክንያቱም የኪይል ሶፍትዌር መጨረሻውን ለማወቅ እሱን ማየት ስለሚያስፈልገው።
ማስመጣት ተከታታይ
ser = serial. Serial ('COM17') #ያንን ወደብ ከመሣሪያ አስተዳዳሪ በመሣሪያዎ ላይ ይፈትሹ
ser.write (b'24 / n ')
«24 / n» ን በላኩ ቁጥር ኤልኢዲ የሚቀያየር መሆኑን ማየት አለብዎት። ሌላ ማንኛውንም ነገር ከላኩ ሊነካው አይገባም።
ደረጃ 5 መደምደሚያ
የመማሪያው መጨረሻ ደርሰናል። ማንኛውም ችግር ወይም ጥያቄ ካለዎት እባክዎን ለመጠየቅ አያመንቱ። በተቻለኝ መጠን ለመርዳት እሞክራለሁ። በጣም አመሰግናለሁ:)
የሚመከር:
የተሻሻለ ሴሚኮንዳክተር ከርቭ መከታተያ ከአናሎግ ግኝት 2: 8 ደረጃዎች ጋር
የተሻሻለ ሴሚኮንዳክተር ከርቭ መከታተያ ከአናሎግ ግኝት 2 ጋር-ከ AD2 ጋር የክርን መከታተያ ዋና በሚከተሉት አገናኞች ውስጥ ተገል describedል https: //www.instructables.com/id/Semiconductor-Cur … https: //reference.digilentinc .com/ማጣቀሻ/ኢንስትራክት … የሚለካው የአሁኑ በጣም ከፍተኛ ከሆነ አኩሱ ነው
በ STM32F407 ግኝት ኪት ላይ FreeRTOS ን ከጭረት ማስጀመር - 14 ደረጃዎች
በ STM32F407 Discovery Kit ላይ FreeRTOS ን ከጭረት ማስጀመር-ለተካተተው ፕሮጀክትዎ ፍሪስትሮስን እንደ እውነተኛ ጊዜ ኦፕሬቲንግ ሲስተም መምረጥ ትልቅ ምርጫ ነው። FreeRTOS በእውነት ነፃ ነው እና ብዙ ቀላል እና ውጤታማ የ RTOS ባህሪያትን ይሰጣል። ግን ነፃRTOS ን ከባዶ ማዋቀር ከባድ ሊሆን ይችላል ወይም እኔ ሁለት ማለት እችላለሁ
ከኩሽና አቅርቦቶች ጋር የወረዳ ቦርድ (ቦርድ) 6 እርከኖች (ከስዕሎች ጋር)
ከኩሽና አቅርቦቶች ጋር የወረዳ ቦርድ (ቦርድ) ያዙሩ - በኤሌክትሮኒክስ ፕሮጄክቶች ሲያስቡ ፣ እነሱ የበለጠ የተወሳሰቡ እንደሆኑ ፣ አንድ ላይ ለመሸጥ የበለጠ ከባድ እንደሆኑ በፍጥነት ይገነዘባሉ። ብዙውን ጊዜ የአይጥ ጎጆን የግለሰብ ሽቦዎችን መፍጠር ማለት ነው ፣ ይህም ግዙፍ እና ለመላመድ ከባድ ሊሆን ይችላል።
የአርዱዲኖ ቦርድ በመጠቀም የ AVR ቦርድ እንዴት እንደሚዘጋጅ - 6 ደረጃዎች
የአርዱዲኖ ቦርድ በመጠቀም የ AVR ቦርድ እንዴት እንደሚዘጋጅ - በዙሪያው የተቀመጠ የ AVR ማይክሮ መቆጣጠሪያ ቦርድ አለዎት? እሱን ማዘጋጀት አስቸጋሪ ነው? ደህና ፣ በትክክለኛው ቦታ ላይ ነዎት። እዚህ ፣ አርዱዲኖ ኡኖ ቦርድ እንደ ፕሮግራም አውጪ በመጠቀም የ Atmega8a ማይክሮ መቆጣጠሪያ ሰሌዳ እንዴት መርሃ ግብር እንደሚያዘጋጁ አሳያችኋለሁ። ስለዚህ ያለ ቁጣ
የአንድ Roomba ግኝት የፊት መሽከርከሪያን እንዴት ማፅዳት እንደሚቻል -12 ደረጃዎች
የአንድ Roomba ግኝት የፊት መሽከርከሪያን እንዴት ማፅዳት እንደሚቻል - የ Roomba ግኝቶች የፊት ጎማዎች ፀጉርን ይሰበስባሉ እና በመጨረሻም መዞርን ያቆማሉ። ይህ ያለምንም ጥርጥር በአፈፃፀም ላይ በተለይም በተለይም የጽዳት ጊዜን ከመሙላት በፊት ይነካል ፣ ግን ከሁሉም በላይ ደግሞ ሮቦት በከፍተኛ ደረጃ ላይ በማይሠራበት ጊዜ በእርግጥ ይረብሸኛል።