STM32的USART配置步骤
一、USART工作流程
二、USART/UART异步通信配置步骤(掌握)
HAL库外设初始化MSP回调机制- USART为例
三、解读例程源码:串口实验(熟悉)
使用方法
在mian.c文件里加入usart.h这个头文件,再调用初始化函数即可使用串口收发数据
设置波特率为115200
如果要向电脑发送字符,直接调用printf函数即可
如果要向电脑发送数据,那么调用HAL_UART_Transmit()这个函数即可
例:
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "key.h"
/************************************************
ALIENTEK 阿波罗STM32F429开发板实验3
串口实验-HAL库函数版
技术支持:www.openedv.com
淘宝店铺:http://eboard.taobao.com
关注微信公众平台微信号:"正点原子",免费获取STM32资料。
广州市星翼电子科技有限公司
作者:正点原子 @ALIENTEK
************************************************/
int main(void)
{
u8 len;
u16 times=0;
HAL_Init(); //初始化HAL库
Stm32_Clock_Init(360,25,2,8); //设置时钟,180Mhz
delay_init(180); //初始化延时函数
uart_init(115200); //初始化USART
LED_Init(); //初始化LED
KEY_Init(); //初始化按键
while(1)
{
if(USART_RX_STA&0x8000)
{
len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
printf("\r\n您发送的消息为:\r\n");
HAL_UART_Transmit(&UART1_Handler,(uint8_t*)USART_RX_BUF,len,1000); //发送接收到的数据
while(__HAL_UART_GET_FLAG(&UART1_Handler,UART_FLAG_TC)!=SET); //等待发送结束
printf("\r\n\r\n");//插入换行
USART_RX_STA=0;
}else
{
times++;
if(times%5000==0)
{
printf("\r\nALIENTEK 阿波罗STM32F429开发板 串口实验\r\n");
printf("正点原子@ALIENTEK\r\n\r\n\r\n");
}
if(times%200==0)printf("请输入数据,以回车键结束\r\n");
if(times%30==0)LED0=!LED0;//闪烁LED,提示系统正在运行.
delay_ms(10);
}
}
}
USART_RX_BUF是在usart.h里定义的数据缓冲,用来储存接收到的数据,再将这个buf传入HAL_UART_Transmit()函数就能将里面的数据发送到电脑