一、操作步骤
1.任务创建API
动态创建任务xTaskCreate()
静态创建任务xTaskCreateStatic()
任务句柄:任务句柄就是一个指针,指向任务控制块以及任务堆栈。
2.步骤
在cubemx里配置usart1为异步通信(Asynchronous),波特率为115200
当配置完usart1时可见,gpio已经自动配置好了
在freertos里添加新的任务,这里尝试选择静态创建任务(注:如果没有静态创建任务选项,需要去config的memroy里选择dynamic/static)
STM32使用printf函数的步骤和注意事项https://blog.csdn.net/weixin_43869518/article/details/123971888
二、代码
代码实现非常简单
void Uart_Task(void const * argument)
{
for(;;)
{
printf("Uart_Task is running!\r\n");
osDelay(1000);
}
}
效果如图
提示:如果遇到printf函数报错的话,参考STM32使用printf函数的步骤和注意事项https://blog.csdn.net/weixin_43869518/article/details/123971888
在usart.c中添加
#include <stdio.h>
int fputc(int ch, FILE *f)
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_SET);
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1,0xffff);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_RESET);
return (ch);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)