新手入门
- 积分
- 4
- 金钱
- 4
- 注册时间
- 2019-8-10
- 在线时间
- 0 小时
|
1金钱
STM32F103 USART发送数据本来设置为无校验,数据发送一直没问题,现在需要设置为偶校验,结果把寄存器配置为偶校验后,开机第一次向DR寄存器写入数据时TXE和TC标志位都在置位状态,写入第一个字节数据后,两个标志位就都变为0了,再也不置位了,请问各位大佬这到底是是什么原因啊,我觉得是数据一直没发出去,但是不知道怎么解决,求大佬们教教我。
这是发送代码
ENUM_DEVICE_ERROR PAL_RS485WriteByte(struct dal_port_type* type,uint8 byte)
{
uint32 index;
delayTime = RS485_Send_Delay_Count;
OSSchedLock();
RS485_Send_En;
while (!(UART4->SR & USART_FLAG_TXE));
UART4->DR = (byte & (uint16_t)0x01FF);
for(index = 0; index < delayTime;index++);
RS485_Rev_En;
OSSchedUnlock();
return DEVICE_OK;
}
在While循环里一直出不去了
|
|