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);     
    }


}

                                                                                           

猜你喜欢

转载自www.cnblogs.com/DY004/p/11443248.html