亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在STM32F4 ARM MCU和Python之間建立USART通信

454398 ? 來(lái)源:wv ? 2019-10-16 11:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:軟件和硬件要求

在硬件方面,您需要:

STM32F4發(fā)現(xiàn)板(或其他任何STM32板)

USB轉(zhuǎn)TTL轉(zhuǎn)換器

在軟件方面:

STM32CubeMX

Keil uVision5

已安裝串行庫(kù)的Python

步驟2:STM32CubeMX配置

首先讓我們了解我們想要做什么。我們希望通過(guò)USART從Python將數(shù)據(jù)傳輸?shù)桨迳?,并檢查是否有正確的數(shù)據(jù)并切換LED。因此,我們需要啟用USART和Led。

從“連接性”選項(xiàng)卡中啟用USART2。

將模式更改為異步

波特率更改為9600 Bits/s

無(wú)奇偶校驗(yàn)的字長(zhǎng)為8位

無(wú)奇偶校驗(yàn)位

DMA設(shè)置中以特殊模式添加USART2_RX

從NVIC設(shè)置中啟用USART2全局中斷

然后生成代碼:)

通過(guò)單擊PD12啟用LED

步驟3:Keil軟件開(kāi)發(fā)

#include

#include

在字符串操作和定義布爾變量時(shí)將需要這些庫(kù)。

/* USER CODE BEGIN 2 */

HAL_UART_Receive_DMA(&huart2, (uint8_t *) data_buffer, 1);

/* USER CODE END 2 */

此處,UART

/* USER CODE BEGIN 4 */

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)

{

/* Prevent unused argument(s) compilation warning */

UNUSED(huart);

/* NOTE: This function should not be modified, when the callback is needed,

the HAL_UART_RxCpltCallback could be implemented in the user file

*/

if(data_buffer[0] != ‘ ’){

data_full[index_] = data_buffer[0];

index_++;

}else{

index_ = 0;

finished = 1;

}

//HAL_UART_Transmit(&huart2, data_buffer, 1, 10);

}

/* USER CODE END 4 */

這是ISR,當(dāng)我們得到一個(gè)字節(jié)的字符時(shí),它被激活。所以。我們得到該字節(jié)并將其寫(xiě)入包含完整接收數(shù)據(jù)的data_full,直到得到‘\ n’。當(dāng)我們得到‘\ n’時(shí),我們使完成標(biāo)志1并在while循環(huán)中:

while (1)

{

/* USER CODE END WHILE */

if(finished){

if(strcmp(data_full, cmp_) == 0){

HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_12);

}

memset(data_full,‘’,strlen(data_full));

finished = 0;

}else{

__NOP ();

}

/* USER CODE BEGIN 3 */

}

如果完成標(biāo)志為HIGH,我們將比較完整接收的數(shù)據(jù)和我們想要的數(shù)據(jù)的內(nèi)容,如果它們是等于我們切換領(lǐng)導(dǎo)。之后,我們清除完成標(biāo)志,等待新數(shù)據(jù),并清除data_full數(shù)組,以免覆蓋該數(shù)組。

步驟4:Python軟件開(kāi)發(fā)

因此,這里我們要在結(jié)尾處發(fā)送帶有‘/n’的數(shù)字,因?yàn)镵eil軟件需要查看它才能知道結(jié)尾。

import serial

ser = serial.Serial(‘COM17’) #check that port on your device from Device Manager

ser.write(b‘24 ’)

您應(yīng)該看到每次您發(fā)送“ 24 \ n”時(shí),LED都會(huì)切換。如果您發(fā)送其他任何內(nèi)容,它都不會(huì)影響它。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    147

    文章

    18456

    瀏覽量

    381770
  • USART
    +關(guān)注

    關(guān)注

    1

    文章

    201

    瀏覽量

    32802
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4850

    瀏覽量

    89296
  • STM32F4
    +關(guān)注

    關(guān)注

    3

    文章

    204

    瀏覽量

    29737
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【教程】使用STM32F4進(jìn)行E22-400T22S編程通信教程

    通過(guò)本文帶大家零基礎(chǔ)使用STM32F407VET6單片機(jī)進(jìn)行E22-400T22S模塊編程并進(jìn)行簡(jiǎn)單的通信,當(dāng)然如果學(xué)會(huì)了,也可以舉一反三應(yīng)用于E22、E220、E32所有模塊上。一、STM32環(huán)境
    的頭像 發(fā)表于 08-28 19:32 ?1177次閱讀
    【教程】使用<b class='flag-5'>STM32F4</b>進(jìn)行E22-400T22S編程<b class='flag-5'>通信</b>教程

    GD32F4xx系列MCU基礎(chǔ)工程資料

    GD32F4xx系列MCU基礎(chǔ)工程創(chuàng)建.
    發(fā)表于 08-04 14:53 ?0次下載

    stm32f4新手求教

    芯片包stm32f4xx_DFP3.0.0只有1.98m大小,芯片包stm32f4xx_DFP2.16.0卻有152m大小,為何差距這么大,我該裝哪個(gè)芯片包?
    發(fā)表于 07-09 12:04

    【教程】零基礎(chǔ)!手把手教你使用STM32F4進(jìn)行E22-400T22S編程通信

    通過(guò)本文帶大家零基礎(chǔ)使用STM32F407VET6單片機(jī)進(jìn)行E22-400T22S模塊編程并進(jìn)行簡(jiǎn)單的通信,當(dāng)然如果學(xué)會(huì)了,也可以舉一反三應(yīng)用于E22、E220、E32所有模塊上。一STM32環(huán)境
    的頭像 發(fā)表于 07-03 19:32 ?911次閱讀
    【教程】零基礎(chǔ)!手把手教你使用<b class='flag-5'>STM32F4</b>進(jìn)行E22-400T22S編程<b class='flag-5'>通信</b>

    使用studio構(gòu)建STM32F4工程報(bào)錯(cuò)的原因?

    使用studio 構(gòu)建STM32F4 工程,什么都沒(méi)有動(dòng)報(bào)了以上錯(cuò)誤.這是為什么 ?
    發(fā)表于 06-26 07:26

    STM32F4標(biāo)準(zhǔn)外設(shè)庫(kù)資料

    stm32f4xx.h,標(biāo)準(zhǔn)外設(shè)庫(kù)
    發(fā)表于 06-08 09:49 ?2次下載

    STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊(cè).pdf》資料
    發(fā)表于 06-06 17:06 ?8次下載

    Analog Devices Inc. MAX32675C超低功耗Arm? Cortex?-M4F MCU數(shù)據(jù)手冊(cè)

    Analog Devices MAX32675C超低功耗Arm? Cortex?-M4F MCU是高度集成的混合信號(hào)微控制器,適用于工業(yè)應(yīng)用,特別適用于4mA至20mA環(huán)路供電傳感器和
    的頭像 發(fā)表于 06-03 10:04 ?590次閱讀
    Analog Devices Inc. MAX32675C超低功耗<b class='flag-5'>Arm</b>? Cortex?-M<b class='flag-5'>4F</b> <b class='flag-5'>MCU</b>數(shù)據(jù)手冊(cè)

    STM32學(xué)習(xí)USART之基礎(chǔ)篇(可下載)

    今天分享 USART 設(shè)計(jì)前的基礎(chǔ)知識(shí)我們先來(lái)了解一下有關(guān)通信的基本概念:通信:兩個(gè)設(shè)備之間進(jìn)行數(shù)據(jù)交換時(shí),稱這個(gè)過(guò)程為兩個(gè)設(shè)備間的通信并行
    發(fā)表于 03-31 15:07 ?4次下載

    使用SPI進(jìn)行通信,STM32F4做從機(jī),通信時(shí)數(shù)據(jù)異常怎么解決?

    使用SPI進(jìn)行通信,STM32F4做從機(jī),通信時(shí)數(shù)據(jù)異常,SPI2中SR寄存器會(huì)出現(xiàn)0xc0,0xc1,0x80的異常狀態(tài)值,大概就是BYS位,OVR位,RXEN位
    發(fā)表于 03-14 12:14

    Arduino中可以使用STM32F1或者STM32F4系列芯片的內(nèi)置看門狗嗎?

    Arduino中可以使用STM32F1或者STM32F4系列芯片的內(nèi)置看門狗嗎
    發(fā)表于 03-13 07:32

    使用STM32F4的ADC的時(shí)候,發(fā)現(xiàn)測(cè)量結(jié)果不準(zhǔn)確,是什么原因?qū)е碌模?/a>

    請(qǐng)教各位大佬一個(gè)問(wèn)題,我在使用STM32F4的ADC的時(shí)候,發(fā)現(xiàn)測(cè)量結(jié)果不準(zhǔn)確。上網(wǎng)查看教程,發(fā)現(xiàn)F1系列有自動(dòng)校準(zhǔn)的函數(shù),但是F4沒(méi)有校準(zhǔn)相關(guān)的設(shè)置,想請(qǐng)教一下是F4的HAL庫(kù)把校準(zhǔn)
    發(fā)表于 03-11 06:29

    stm32f4 sdio時(shí)鐘如何獲取通過(guò)什么函數(shù)?

    stm32f4系列sdio 時(shí)鐘如何獲取,stm32h7可以通過(guò)sdmmc_clk=HAL_RCCEx_GetPeriphCLKFreq(STM32_RCC_PERIPHCLK_SDMMC);這個(gè)函數(shù)獲取
    發(fā)表于 03-07 08:26

    MAX32675C超低功耗Arm? Cortex?-M4F MCU

    Analog Devices MAX32675C超低功耗Arm? Cortex?-M4F MCU是高度集成的混合信號(hào)微控制器,適用于工業(yè)應(yīng)用,特別適用于4mA至20mA環(huán)路供電傳感器和
    的頭像 發(fā)表于 11-28 11:50 ?1520次閱讀
    MAX32675C超低功耗<b class='flag-5'>Arm</b>? Cortex?-M<b class='flag-5'>4F</b> <b class='flag-5'>MCU</b>