STM32串口配置与使用详解:从基本配置到printf重定义
创作时间:
作者:
@小白创作中心
STM32串口配置与使用详解:从基本配置到printf重定义
引用
CSDN
1.
https://blog.csdn.net/weixin_60324241/article/details/139352303
本文将详细介绍STM32微控制器中串口的配置和使用方法,包括基本配置、发送接收函数、串口重定义以及printf函数的使用等。通过本文的学习,读者将能够掌握STM32串口通信的基本原理和具体实现方法。
1. 串口的基本配置
在CubeMX中配置串口时,首先需要选择USART1,并选择异步通信模式。接下来设置波特率,这将影响串口通信的速度和稳定性。
配置完成后,串口将在右侧显示为点亮状态。串口引脚主要用于与其他设备进行通信,例如在程序中通过串口打印信息时,可以在电脑上的串口助手软件中接收到这些信息。
2. 串口的发送接收函数
STM32提供了多种串口发送和接收函数,以满足不同的应用场景需求:
HAL_UART_Transmit(): 使用超时管理机制发送数据HAL_UART_Receive(): 使用超时管理机制接收数据HAL_UART_Transmit_IT(): 中断模式发送数据HAL_UART_Receive_IT(): 中断模式接收数据HAL_UART_Transmit_DMA(): DMA模式发送数据HAL_UART_Receive_DMA(): DMA模式接收数据
例如,使用HAL_UART_Transmit()函数发送数据的示例代码如下:
HAL_UART_Transmit(&huart1, (uint8_t *)"hello windows!\r\n", 16 , 0xffff);
3. 串口重定义
在需要使用printf函数发送数据时,可以在源文件中添加串口重定义代码:
#include "stdio.h"
#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif
PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
4. printf串口使用卡死问题
在实际使用中,可能会遇到配置了串口并重定义了printf函数后,程序下载运行时出现死机的问题。这通常是由于某些编译器选项未正确设置导致的。解决方案是在CubeMX中勾选相应的选项,以确保printf函数能够正常工作。
5. 串口发送
使用HAL_UART_Transmit_IT()函数可以实现中断模式下的串口发送。如果已经对printf函数进行了重定义,也可以直接使用printf函数发送数据:
printf("ddd\r\n");
6. 串口接收
串口接收需要定义串口接收回调函数。首先在main()函数中添加串口接收函数调用:
HAL_UART_Receive_IT(&huart1,(uint8_t *)&rxbuff1,1);
然后在主文件中定义串口接收回调函数:
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if (huart->Instance == USART1)
{
if (rxbuff1 == '\n')
{
printf("发送的数据是:%s\r\n",uart1_txbuff); //发送回显语句
uart1_rx_cnt = 0;
}
else
{
uart1_txbuff[uart1_rx_cnt]=rxbuff1;
uart1_rx_cnt ++;
}
HAL_UART_Receive_IT(&huart1,(uint8_t *)&rxbuff1,1);
}
}
通过以上步骤,可以实现STM32串口的完整配置和使用。希望本文能够帮助读者更好地理解和掌握STM32串口通信的相关知识。
热门推荐
长沙地铁迎来新变化:1号线北延,加速长株潭一体化
2025春运今日开启!查收这份安全tips→
长沙四季游:春季赏花秋季观叶,淡季旺季各有特色
苦参等5味中药可治脚气,但需谨遵医嘱
医生推荐:5种中药泡脚治疗脚气方案
中医治疗脚气病:外洗内服配合饮食调理
南方人旅游的尽头,是东北洗浴中心:一年搓掉1400亿,澡堂子也有大产业
去东北搓一次澡,我的灵魂都被抛光了
去东北搓一次澡,我的灵魂都被抛光了
叶嘉莹眼中的《红楼梦》:诗词解读与中西融通
做好儿童身高管理,让孩子轻松长高!
身高遗传公式是什么?这样的预测到底靠不靠谱?
儿科学发展与展望
高空抛物频发,谁来守护我们的头顶安全?
印刷现代性:解码晚清民初文学转型的技术密码
《中国大百科全书》第三版:50万条目,6万专家,首推纸网协同
肝素使用指南:作用机理、适应症与安全用药要点
成人自考专本:从入门到拿证的全方位指南
贵州从江迎新春:38头牛王争霸斗牛场
兔子必须吃磨牙棒吗?怎么帮兔子选择合适的磨牙棒
如何从狗狗呕吐物判断健康状况?一文读懂呕吐物背后的健康信号
狗狗误食有毒物品急救:催吐与送医指南
杭州博陆村178户村民众筹1.2亿建别墅,解决宅基地难题
湖南莽山:四季皆有景,春秋最适宜
新化山歌到涟源剪纸:娄底十大民俗文化巡礼
肉干制作全步骤:腌制、烘干到蒸制,附储存建议
荆门沙洋风干鸡:独特腌制工艺,蒸炒两种美味
上海最大旧改项目启动,国开行千亿资金助力城中村改造
从“红房子”到文创园:萧山棉北里片区迎来新生
四川遂宁:五大行动引育“新农人”,乡村振兴注入新动力