介绍
串口发送:单片机发送数据给电脑
只需要掌握异步收发 PA9单片机发送数据,PA10单片机接收数据
波特率:每秒传输的二进制位数,
例:4800bps:每秒能传输4800个bit
由下图可知一帧 = 10个bit(加上启动位和停止位),所以每秒能传输480个字节/s
一般配置为8bit的一个数据位,1bit停止位
CubeMX配置
打开USART1的异步模式Asy,此时单片机默认配置PC4和PC5用来串口收发,我们需要手动修改成PA9,PA10用来串口收发
比特率、奇偶校验位、停止位配置
配置完成后即可生成代码
目标工程配置
将Cube生成的.c和.h文件复制到目标工程,并添加UART的底层驱动,在main中添加头文件
时钟初始化:一定要初始化USART的时钟
调用串口发送函数
HAL_UART_Transmit(&huart1,"rocky\r\n",sizeof("rocky\r\n"),50);
HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)
*huart:串口几
*pData:要发送的数据
Size:数据大小,用sizeof()来计算
Timeout:设定时间,假设我们设定为50,则在50ms内没发送完则跳过发送
\r\n:回车,另起一行
如果需要显示两次相同的代码则需要使sizeof()-1
如果要发送中文则需定义一个数组
打开单片机数据包的stc—isp的串口调试助手并配置下图画红线的部分
注意!在每次按下板子的复位按钮后才会执行串口发送,
波特率、奇偶校验位、停止位需与Keil配置相同
重定向printf串口输出
重新定义之后我们就可以用printf函数来进行串口的发送