问题

在进行嵌入式串口发送的时候, 偶尔会出现首字节乱码的情况。

解决

    LL_USART_TransmitData8(PRINTF_USART, (uint8_t) c);
	while (!LL_USART_IsActiveFlag_TC(PRINTF_USART)){}

在每次发送完数据之后, 检查串口是否发送完成,而不是检查串口数据寄存器是否为空, 特别是在循环发送的时候, 检查数据寄存器是否为空的话,很容易出现影子寄存器被覆盖的现象, 而造成乱码。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐