成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

串口通信中關(guān)鍵知識(shí)點(diǎn)4

zgbgx / 2826人閱讀

摘要:串口波特率設(shè)置。串口的狀態(tài)可以通過狀態(tài)寄存器讀取。關(guān)閉接收完成中斷使能中斷通道搶占優(yōu)先級(jí),子優(yōu)先級(jí)第五編寫中斷服務(wù)函數(shù)第六串口數(shù)據(jù)接收和發(fā)送發(fā)送與接收是通過數(shù)據(jù)寄存器來實(shí)現(xiàn)。

? ? ? ?串口基本配置的寄存器,配置過程總結(jié)為:

1、串口時(shí)鐘使能。這里的串口1設(shè)置是APB2ENR寄存器的第4位。

2、串口波特率設(shè)置。每個(gè)串口都有一個(gè)自己獨(dú)立的波特 率寄存器 USART_BRR,通過設(shè)置該寄存器就可以達(dá)到配置不同波特率的目的。

3、串口控制。STM32F429 的每個(gè)串口都有 3 個(gè)控制寄存器 USART_CR1~3,串口的很多 配置都是通過這 3 個(gè)寄存器來設(shè)置的。這里我們只要用到 USART_CR1 就可以實(shí)現(xiàn)我們的功能。

4、數(shù)據(jù)發(fā)送與接收。STM32F429 的發(fā)送與接收是通過數(shù)據(jù)寄存器 USART_DR 來實(shí)現(xiàn)的, 這是一個(gè)雙寄存器,包含了 TDR 和 RDR。

5、串口狀態(tài)。串口的狀態(tài)可以通過狀態(tài)寄存器 USART_SR 讀取。

? ? ?思考:假如用HAL庫進(jìn)行配置的話,實(shí)現(xiàn)過程是什么?

第一:初始化函數(shù) HAL_UART_Init 相關(guān)函數(shù):

? ? ?HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart);

? ? 解釋:函數(shù)只有一個(gè)入口參數(shù) huart,為 UART_HandleTypeDef 結(jié)構(gòu)體指針類型,稱為:句柄。

第二:使能串口和 GPIO 口時(shí)鐘

? ?使用串口,我們必須使能串口時(shí)鐘和使用到的 GPIO 口時(shí)鐘。

?__HAL_RCC_USART1_CLK_ENABLE(); //使能 USART1 時(shí)鐘? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?__HAL_RCC_GPIOA_CLK_ENABLE(); //使能 GPIOA 時(shí)鐘

第三:GPIO 口初始化設(shè)置(速度,上下拉等)以及復(fù)用映射配置

GPIO_InitTypeDef GPIO_Initure;

GPIO_Initure.Pin=GPIO_PIN_9|GPIO_PIN_10; //PA9/PA10 GPIO_Initure.Mode=GPIO_MODE_AF_PP; //復(fù)用推挽輸出

GPIO_Initure.Pull=GPIO_PULLUP; //上拉

GPIO_Initure.Speed=GPIO_SPEED_FAST; //高速

GPIO_Initure.Alternate=GPIO_AF7_USART1; //復(fù)用為 USART1 HAL_GPIO_Init(GPIOA,&GPIO_Initure); //初始化 PA9/PA10

第四:開啟串口相關(guān)中斷,配置串口中斷優(yōu)先級(jí)

__HAL_UART_ENABLE_IT(huart,UART_IT_RXNE); //開啟接收完成中斷

第一個(gè)參數(shù):huart為串口句柄? ? ?第二個(gè)參數(shù):要開啟的中斷類型。

__HAL_UART_DISABLE_IT(huart,UART_IT_RXNE); //關(guān)閉接收完成中斷

HAL_NVIC_EnableIRQ(USART1_IRQn); //使能 USART1 中斷通道 HAL_NVIC_SetPriority(USART1_IRQn,3,3); //搶占優(yōu)先級(jí) 3,子優(yōu)先級(jí)3

第五:編寫中斷服務(wù)函數(shù)

void USART1_IRQHandler(void);

第六:串口數(shù)據(jù)接收和發(fā)送

發(fā)送與接收是通過數(shù)據(jù)寄存器 USART_DR 來實(shí)現(xiàn)。當(dāng)向該寄存器寫數(shù)據(jù)的時(shí)候,串口就會(huì)自動(dòng)發(fā)送,當(dāng)收到數(shù)據(jù)的時(shí)候,也 是存在該寄存器內(nèi)。

HAL 庫操作 USART_DR 寄存器發(fā)送數(shù)據(jù)的函數(shù)是:

HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);

通過該函數(shù)向串口寄存器 USART_DR 寫入一個(gè)數(shù)據(jù):

HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/120924.html

相關(guān)文章

  • 自己畫一塊ESP32-C3 的開發(fā)板(第一次使用立創(chuàng)EDA)(更新中...)

    摘要:復(fù)位系列芯片的復(fù)位可使用管腳。這個(gè)和保存代碼的是不一樣的,計(jì)劃使用。 記錄一下第一次使用立創(chuàng)EDA第一次設(shè)計(jì)ESP-C3的開發(fā)板(這幾天工作有點(diǎn)忙,稍等) 目錄 ...

    MrZONT 評(píng)論0 收藏0
  • 阿里云開發(fā)板HaaS510解析串口JSON數(shù)據(jù)并發(fā)送屬性

    摘要:實(shí)驗(yàn)?zāi)康耐ㄟ^上位機(jī)向發(fā)送字符串,由解析提取出指定的屬性值,并發(fā)送到云平臺(tái)。詳見文檔阿里云開發(fā)板響應(yīng)串口指令阿里云開發(fā)板響應(yīng)串口指令第二個(gè)知識(shí)點(diǎn),怎么樣將字符串解析出關(guān)鍵屬性值。 摘要:本文介紹使用HaaS510從串口接收數(shù)據(jù),從數(shù)據(jù)中提取所需的屬性值,并發(fā)送到物聯(lián)網(wǎng)平臺(tái)的方法。從串口接收到的...

    hiYoHoo 評(píng)論0 收藏0
  • 串口I2C通信詳解介紹(小白初學(xué),淺顯易懂,基本知識(shí)

    摘要:每個(gè)字節(jié)后必須跟一個(gè)響應(yīng)位。低速率一般是同一個(gè)板子上的兩個(gè)芯片間通信,數(shù)據(jù)量不大,速率低。速率幾百,速率可能不同,不能超過的最高速率。 介紹:I2C通訊協(xié)議(Inter-Integrated Circuit)引腳少,硬件實(shí)現(xiàn)簡單,可擴(kuò)展性強(qiáng),不需要USART、CAN等通訊協(xié)議的外部收發(fā)設(shè)備,...

    wua_wua2012 評(píng)論0 收藏0
  • 【STM32】標(biāo)準(zhǔn)庫與HAL庫對(duì)照學(xué)習(xí)教程八--串口通信詳解

    摘要:異步通信與同步通信異步通信異步通信是指通信的發(fā)送與接收設(shè)備使用各自的時(shí)鐘控制數(shù)據(jù)的發(fā)送和接收過程。同步通信同步通信時(shí)要建立發(fā)送方時(shí)鐘對(duì)接收方時(shí)鐘的直接控制,使雙方達(dá)到完全同步。配置串口設(shè)置為異步通信基礎(chǔ)參數(shù)波特率為。 ...

    yck 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

zgbgx

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<