1.打开STM32串口
(1)打开Cube配置一个用于打印的串口,这里使用串口4 (2)打开串口4的宏 可以看到下面用到这个宏的是drv_usart.c ,只有打开对应外设的宏,外设驱动才运行
2.打开FINSH组件
3.将UART4 关联到FINSH控制台
打开rtconfig.h ,配置宏 RT_CONSOLE_DEVICE_NAME 为“uart4” ,
4.串口映射函数编写
我们知道串口映射到控制台都是通过改写printf 函数,rt-thraed也这样做了,就是这个所谓的rt_kprintf() 其中又调用了名为rt_hw_console_output 的函数 可气的是,这个函数并没有被实现,而有用RT_WEAK 弱化了,作者明显想让我们自己实现它
所以在main.c中实现一下就可以了
void rt_hw_console_output(const char *str)
{
rt_size_t i=0,size=0;
char a='\r';
__HAL_UNLOCK(&huart4);
size=rt_strlen(str);
for(i=0;i<size;i++)
{
if(*(str+i)== '\n')
{
HAL_UART_Transmit(&huart4,(uint8_t *)&a,1,1);
}
HAL_UART_Transmit(&huart4,(uint8_t *)(str+i),1,1);
}
}
5.测试
PC连接STM32的串口4,打开串口助手,显示如下信息,说明成功
|