OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5609|回复: 5

求助!!!求助大神串口发送与延迟时间的问题?

[复制链接]

8

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
216
金钱
216
注册时间
2015-1-28
在线时间
29 小时
发表于 2016-3-2 16:24:26 | 显示全部楼层 |阅读模式
10金钱
求助各路大神,最近买了一块电量检测模块,要求STM32给这个模块发送指令,模块就会将电压和电流发送回来,我用串口2接收和发送,代码如下,但是必须要半秒给检测模块发送一次指令,模块才会回复一次数据,不加延迟的时候,代码可以接收和发送,但由于没有延时,所以只能接收一次,如果加上延时,则将串口2的接收的数据通过串口1打印的时候,就只打印第一个字节,后面的就都打印不出来了,请各位大神帮忙看一下有什么解决办法,十分感谢!!!!
     if (USART_GetFlagStatus(USART2, USART_FLAG_RXNE) != RESET)   
     {
       static int k = 0;   
       RxBuf1[k]=USART_ReceiveData(USART2);  //USART1->DR;
       //TxBuf1[k]=RxBuf1[k];
        USART_SendData(USART1, RxBuf1[k]);
        k++;
       k = k%8;
         }
        delay_ms(50);
        electricity_Init();    //发送命令给电源模块
        delay_us(200);


电源命令:
        USART2_SendByte(0x01);
        delay_us(2);
        USART2_SendByte(0x03);
        delay_us(2);
        USART2_SendByte(0x00);
        delay_us(2);
        USART2_SendByte(0x48);
        delay_us(2);
        USART2_SendByte(0x00);
        delay_us(2);
        USART2_SendByte(0x05);
        delay_us(2);
        USART2_SendByte(0x05);
        delay_us(2);
        USART2_SendByte(0xdf);

最佳答案

查看完整内容[请看2#楼]

原子哥,我解决了,是因为上次的数据还没发送完,下次的数据就又已经到了,我给这个模块命令加了一个if(k=15),就正常了,感谢原子哥
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
216
金钱
216
注册时间
2015-1-28
在线时间
29 小时
 楼主| 发表于 2016-3-2 16:24:27 | 显示全部楼层
正点原子 发表于 2016-3-4 01:10
监控下串口数据。
怀疑应该是你代码处理的问题。

原子哥,我解决了,是因为上次的数据还没发送完,下次的数据就又已经到了,我给这个模块命令加了一个if(k=15),就正常了,感谢原子哥
回复

使用道具 举报

8

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
216
金钱
216
注册时间
2015-1-28
在线时间
29 小时
 楼主| 发表于 2016-3-2 16:33:02 | 显示全部楼层
这是串口打印的情况

正常

正常

加入延迟

加入延迟
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-3-2 23:06:12 | 显示全部楼层
先用串口调试助手,调试下你这个模块
回复

使用道具 举报

8

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
216
金钱
216
注册时间
2015-1-28
在线时间
29 小时
 楼主| 发表于 2016-3-3 11:52:08 | 显示全部楼层
正点原子 发表于 2016-3-2 23:06
先用串口调试助手,调试下你这个模块

原子哥,我刚才用串口模块接上了这个模块,发送指令给这个模块,它是正常回复我的,发一次回复一次,但是再接回去,还是之前的这种问题,求原子哥再帮忙看看,万分感谢
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-3-4 01:10:22 | 显示全部楼层
czcz200 发表于 2016-3-3 11:52
原子哥,我刚才用串口模块接上了这个模块,发送指令给这个模块,它是正常回复我的,发一次回复一次,但是 ...

监控下串口数据。
怀疑应该是你代码处理的问题。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-20 13:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表