STM32的串口發送數據小結


STM32的串口發送數據

1.1、初始化要調用的串口的相關參數 :

  1. Instance     要調用的串口的串口寄存器的基地址。
  2. BaudRate        波特率
  3. StopBits     的停止位
  4. WordLength    字節的長度
  5. HwFlowCtl       硬件流,一般情況下,設置無、
  6. Mode               設置串口是發送還是接收數據,或者是發送,接收同時進行的。
  7. Parity               設置串口的奇偶校驗位

以上這些串口的參數都是放在UART_HandleTypeDef這個結構體中,所以,需要定義一個UART_HandleTypeDef的變量。UART_HandleTypeDef  usart1_handler

 

 1.2使能要調用的串口,HAL_UART_Init()這個函數的入口參數是UART_HandleTypeDef的一個指針變量,所以,調用這個函數的時候,直接HAL_UART_Init(&usart1_handler)就可以了。

 

為了不再main中進行初始化,可以自己定義一個函數進行初始化就可以了。

void usart1_init()

//需要對串口初始化的相關參數,和串口的使能開啟。

void usart1_init()

{

//需要對串口初始化的相關參數,和串口的使能開啟。



}

 

 

到時候在main函數中調用即可。’

 

int main()
{
    usart1_init();    //這樣調用的話,在看主函數的時候,就會很精簡。
}

 

 

2.1串口分位,RX,TX,最終需要接到IO口的引腳上,所以,需要對相關的IO腳進行配置,還有復用配置

相關函數是HAL_UART_MspInit  ,這是一個虛函數,需要重新定義。然而,對IO腳配置的函數是在HAL_GPIO_Init()函數中的、

 

void HAL_UART_MspInit(UART_HandleTypeDef *huart) {
   GPIO_InitTypeDef GPIO_Initure;                            
// HAL_GPIO_Init 進行調用即可
                         // HAL_UART_MspInit這個函數是要被HAL_UART_Init進行調用的


    
}

 

 3.1發送數據,並等待數據的發送完成

int main(void)
{

    u8 rdates[]="125488xaaaff123";   //這個是要發送的內容
    HAL_Init();
    Stm32_Clock_Init(360,25,2,8);
    delay_init(180);             //這個延時函數的初始化沒有配置的話,主函數及時有延時函數也是沒有任何作用的,所以,洗浴是要配置的
    usart1_init();
    while(1)
    {
        HAL_UART_Transmit(&usart1_handler,rdates,sizeof(rdates),1000);
        delay_ms(1000);     
    }


}

 

 

                                                                                           

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM