用STM32串口收发数据,发送数组的时候总是重复发送最后一个数组元素,不管数组里有几个字节,用的中断接收和发送,部分程序如下:
u8 buf[]={0x01,0x02,0x03};
u8 TXD3_cnt;//发送计数
void USART3_IRQHandler(void)
{
if(USART3->SR&(1<<5))//接收到数据
{
if(USART3->DR=='K')
{
ZS_GZ=~ZS_GZ;
UART3_smode();
}
}
else if(USART3->SR&(1<<6))//数据包发送完成
{
GZ_BD=~GZ_BD;
if(buf[TXD3_cnt]!='\0')
{
USART3->DR=buf[TXD3_cnt];
TXD3_cnt++;
}
else
{
TXD3_cnt=0;
UART3_rmode();
}
}
}
串口调试助手接收到的数据:01 02 03 03
不管数组里面是什么数,接收到的总是重复最后一个数 |