[STM32F1] 串口发送数组总是重复发送最后一个数组元素

[复制链接]
2755|21
 楼主| 黑洞不黑 发表于 2019-2-2 00:34 | 显示全部楼层 |阅读模式
用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
不管数组里面是什么数,接收到的总是重复最后一个数,请大神解答
mmuuss586 发表于 2019-2-2 10:06 | 显示全部楼层
程序好像也没啥问题
观海 发表于 2019-3-3 11:34 | 显示全部楼层
好像是if语句那有点问题 但是要详细看看你的数组里边都是什么数据
磨砂 发表于 2019-3-3 11:55 | 显示全部楼层
估计还是程序问题的概率大
晓伍 发表于 2019-3-3 12:18 | 显示全部楼层
用示波器看看波形
八层楼 发表于 2019-3-3 12:23 | 显示全部楼层
是不是循环存入的时候出问题了呢
guanjiaer 发表于 2019-3-3 12:28 | 显示全部楼层
看着不像是程序的问题啊
heimaojingzhang 发表于 2019-3-3 12:37 | 显示全部楼层
那接收正常吗
keaibukelian 发表于 2019-3-3 12:45 | 显示全部楼层
单步运行 监测一下
labasi 发表于 2019-3-3 12:58 | 显示全部楼层
百分之九十九代码的问题 楼主还是好好跑跑代码吧
51xlf 发表于 2019-3-3 17:05 | 显示全部楼层
就是数据超出了吗           
i1mcu 发表于 2019-3-3 17:22 | 显示全部楼层
单步调试看看是什么样   
pmp 发表于 2019-3-3 17:22 | 显示全部楼层
你发送的数据不对吗?            
mmbs 发表于 2019-3-3 17:23 | 显示全部楼层
这个判断的有问题     
1988020566 发表于 2019-3-3 17:23 | 显示全部楼层
重复发送最后一个数组吗?字符串对吗  
pmp 发表于 2019-3-3 17:23 | 显示全部楼层
使用for循环发送数据可以的。   
1988020566 发表于 2019-3-3 17:23 | 显示全部楼层
如果是使用指针呢?这个有问题吗                 
mmbs 发表于 2019-3-3 17:23 | 显示全部楼层
判断以后就不要再次发送了。  
51xlf 发表于 2019-3-3 17:23 | 显示全部楼层
使用数组指针试试看的   
i1mcu 发表于 2019-3-3 17:23 | 显示全部楼层
可能数据超长了。              
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

110

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部