复制上次的LED程序,重命名为UsartTask
打开上次的cubemx工程文件,这样就可以直接往里面加新功能
选择串口一,模式选择异步
可以看到串口一的 PA9 PA10高亮,表示配置完成。
选择freeRTOS,将存储器分配选择为动态静态并存
选择task新建串口任务。
生成代码,可以看到除了led_task,还多了一个usart_task,
在使用printf语句之前,需要将printf重定向,在main.c加入代码
//printf重定向
int fputc(int ch, FILE *f)
{
while((USART1->SR & 0X40)==0);
USART1->DR = (uint8_t) ch;
return ch;
}
使用fputc函数,要在头文件加入stdio.h
点击选择mricro usb
在串口任务中,循环1s中发送数据
void Usart_Task(void const * argument)
{
/* USER CODE BEGIN Usart_Task */
/* Infinite loop */
for(;;)
{
printf("UsartTask is running!\r\n");
osDelay(1000);
}
/* USER CODE END Usart_Task */
}
实验结果正确发送数据