串口发送代码如下,为什么串口通信助手接收到的总是缺第一个数
void Send(unsigned char send[], unsigned char k)
{
int i;
unsigned char send1[2];
for(i=0;i<k;i++)
{
usart_data_transmit(USART0, send[i]);
while (usart_flag_get(USART0, USART_FLAG_TC) == RESET);
}
while ((usart_flag_get(USART0, USART_FLAG_TBE) == RESET)&&(usart_flag_get(USART0, USART_FLAG_RBNE) == RESET));
send1[i] = usart_data_receive(USART0);
}
检查一下tx端口初始状态。uart要求发送前串口处于空闲的状态,也就是高电平,然后检测到start信号之后开始接收处理。可能你的io初始状态就是低,导致接收端检测不到第一个字节的start信号,丢失了