国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

zgbgx / 2824人閱讀

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

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

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

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

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

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

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

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

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

? ? ?HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart);

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

第二:使能串口和 GPIO 口時鐘

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

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

第三: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)先級

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

第一個參數(shù):huart為串口句柄? ? ?第二個參數(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)先級 3,子優(yōu)先級3

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

void USART1_IRQHandler(void);

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

發(fā)送與接收是通過數(shù)據(jù)寄存器 USART_DR 來實現(xiàn)。當向該寄存器寫數(shù)據(jù)的時候,串口就會自動發(fā)送,當收到數(shù)據(jù)的時候,也 是存在該寄存器內(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 寫入一個數(shù)據(jù):

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

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

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/120924.html

相關(guān)文章

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

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

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

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

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

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

    wua_wua2012 評論0 收藏0
  • 【STM32】標準庫與HAL庫對照學(xué)習(xí)教程八--串口通信詳解

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

    yck 評論0 收藏0

發(fā)表評論

0條評論

zgbgx

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<