STM32串口
2022/3/2 6:17:59
本文主要是介绍STM32串口,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、通过STM32CubeMX配置串口。
串口1选择Asynchronous,异步通信。
115200bps,8N1,默认即可。
2、串口发送数据。
STM32Cube生成代码后,在main.c的while(1)前面加一句。
HAL_UART_Transmit(&huart1, "Hello world!\r\n", 14, 10);
HAL_UART_Transmit()是串口发送函数,
第一个参数是串口号,&huart1.
第二个参数是要发送的数组,"Hello world!\r\n",字符串可以理解成是字符数组。
第三个参数是发送数组的长度,14。
第四个参数是超时时间,10。
3、下载程序,查看结果。
4、实现printf函数。
①main.c中添加头文件。
#include "stdio.h"
②添加微库。
魔术棒--Target--勾选Use MicroLIB。
③重写fputc函数。
int fputc(int ch, FILE *f) { uint8_t temp[1] = {ch}; HAL_UART_Transmit(&huart1, temp, 1, 2); return temp[0]; }
④main.c中测试printf函数。
5、串口中断。
使用最简单的方式,接收指定长度。
①main.c中添加一行代码。
HAL_UART_Receive_IT(&huart1, buf, 10);
接收10个字符时,执行串口中断回调函数。
②stm32f1xx_it.c中编写中断回调函数。
uint8_t buf[400] = {0}; void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { HAL_UART_Transmit(&huart1, buf, 10, 1000); HAL_UART_Receive_IT(&huart1, buf, 10); }
③下载程序查看结果。
uint8_t buf[400] = {0};
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
HAL_UART_Transmit(&huart1, buf, 10, 1000);
HAL_UART_Receive_IT(&huart1, buf, 10);
}
6、使用MINI开发板下载程序。
这篇关于STM32串口的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-20测试人员都是画画大神,让我看看谁还不会用代码图?
- 2024-05-20年薪百万的程序员都在用的摸鱼方式……
- 2024-05-19永别了,微服务架构!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了