stm32串口发送连发时会出现错误
int main(void)
{
my_USART_Config();
uint8_t buffer[6];
buffer[0]=0x31;
buffer[1]=0x32;
buffer[2]=0x32;
buffer[3]=0x30;
buffer[4]=0x63;//high
buffer[5]=0xba;
while(1)
{
for(uint8_t i=0;i<6;i++)
{
COM_Sendchar(buffer[i]);
}
delay_ms(1000);
}
}
本来打算做modbus的crc16检验,但是每次当buffer[0]~buffer[5]的十六进制通过循环连发时串口调试助手总会出现0x3F,我寻思着0xba也没超过uint8_t(0~255)的范围呀,于是去单步发送,发现单次发送数据的时候结果是正常的,感觉出错就出错在了0xba这个点上。
这是发送单个字符的函数定义:
void COM_Sendchar(uint8_t ch)
{
USART_SendData(USART1,ch);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);
}
没有没大佬来解决一下的...