0. 序
cubeMX的FreeRtos和hal库的打印方式一样
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. 结果
结果非常好,又打败了个小怪兽了,大家鼓掌!
|