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串口通信的相关知识。
热门推荐
“三十而立,四十不惑”:跨越千年的智慧,指引当代人生路
秋季种小麦如何精准配方施肥?怎样确定播种期、播种量和拌种药?
腹部手术后如何科学恢复?一文详解恢复时间及注意事项
升血糖快的食物排行榜
日本USAG-1牙齿再生技术是真的吗?最新研究进展来了!
北京城市更新项目开启线下打卡体验
冬病冬治正当时 临夏市 “三九贴敷”疗法受青睐
四轮驱动的发展历程是怎样的
内存与CPU的默契配合:探究内存对电脑运行速度的影响
德适德国语言考试:TestDaF、DSH与歌德学院语言证明详解
德福考试考什么内容-考试流程-考试备考攻略
精神病法律责任案例:探析与实践
代谢正常的人早晚体重差多少
赓续历史文脉 谱写时代华章——在西藏各地探访历史文化传承
提升生活幸福感:多做快乐且有意义的事情
健康科普 | 秋冬季儿童流感的中医治疗
体检发现幽门螺杆菌感染,不治疗会得胃癌吗?
从镀金时代到进步时代:美国现代国家治理体系的转型和构建
上海自贸区首家研究型医院发力ADC赛道,助力创新药研发提速
代理HTTP是如何保护您的网络隐私和安全?
上海药物所和浙大团队合作开发出高效递送系统,为基因治疗提供新策略
如何理解房屋朝向对居住的影响并进行合理选择?这种选择需要考虑哪些因素?
朱珠:从“京圈名媛”到独立女性的蜕变之路
猪耳朵的营养价值功效 猪耳朵营养价值有哪些
美联储降息,对中国房地产影响有限
足球场人造草坪:革命性优势引领绿茵新潮流
小麦返青期如何追肥好?3类麦田不宜追肥,用尿素还是复合肥?
世界级建筑扎堆深圳 展现开放多元城市文化 在建筑中阅读城市精神|人文天地
聚乙烯(PE)常见类型、性能及应用
掌握13个演讲技巧,让你的演讲打动人心开拓人脉赢得合作