初级会员

- 积分
- 111
- 金钱
- 111
- 注册时间
- 2019-10-23
- 在线时间
- 54 小时
|
10金钱
本帖最后由 wfyggi 于 2022-5-3 23:26 编辑
大家好,请问大家是否有跟我一样的情况。使用串口2,每隔100mS发送一次数据包并且同时串口会有返回一个数据,刚开始工作正常,但是偶尔会有一次将主程序卡死,后面多次分析,每卡死的位置都是串口发送完成判断这里 “ while((USART2->SR&0X40)==0)” 。
void UART2_send_Buf(u8 *stl,u8 Size,u8 a,u8 b,u8 c)
{
if(b==1)
{
while(Size--)
{
USART2->DR=*stl; // 赋值到串口数据寄存器
while((USART2->SR&0X40)==0); // USART1_SR_TC 等待串口发送结束
stl++;
}
}
}
UART2_send_Buf(str,6,0,1,0); // str是一个数组:30 33 30 39 31 30
希望对串口比较熟悉的朋友能一起讨论,指导一下,谢谢!
|
|