0. 序
cubeMX的FreeRtos和hal库的打印方式一样
本文基于CubeMX6.1.1版本编写,此时CubeMX6.3.1已经无法使用此代码(2022.1.17)
1. CubeMX配置串口
点一下串口Mode然后默认配置就行了,前提是SYS记得配好,72M时钟要选择,这个可以参考我前面的爬坑文章CubeMX爬坑
2. 新建串口打印任务
如下图配置一下,添加一个任务
3. 串口代码
和之前的代码有一点不一样,就是printf重定向直接放在usart.c文件里面就行了,不用放在hal.c文件里面。之前才入门搞错了。。。
/*-------------------------------重定义Printf-------------------------------------*/
#include <stdio.h>
extern UART_HandleTypeDef huart1; //声明串口
int fputc(int ch, FILE *f)
{
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);
return ch;
}
int fgetc(FILE *f)
{
uint8_t ch = 0;
HAL_UART_Receive(&huart1, &ch, 1, 0xffff);
return ch;
}
/*-------------------------------重定义Printf-------------------------------------*/
这里要加一个头文件,要不然有警告
#include <stdio.h>
这里代码CubeMX都写好了,只要添加任务就行了,我加了个小灯闪烁证明再发信息
4. 结果
结果非常好,又打败了个小怪兽了,大家鼓掌!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)