电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
两个单片机串口传一个数组的数据,我写老是不对,要怎么改!急
已解决
73482
个问题
已帮助
5993
位优秀工程师
两个单片机串口传一个数组的数据,我写老是不对,要怎么改!急
白云苍狗
2019-02-18
浏览量:845
这样写接收到的数据存不进数组!!!
显示全部
单片机
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
我是假管贴胸小助手
感觉你的那三个接收状态的变量应该设置为静态变量,或者是全局变量。因为你的程序接收第一个数据的时候各个变量被置位,但是中断执行完毕返回后,局部变量被释放,这个时候那些状态也就不存在了。如果你编程经验不多的话,建议你先传两个字节的数组,然后在慢慢增加传输的字节数。
你的问题说白了就是通讯协议问题,一些串口通讯之前应该定义一个完善的协议,和数据包规则。不然越写越找不到北。。。。。。
发布于
2019-02-18
举报
评论 0
2
0
其他答案
数量:
6
9604a3b72d92b876
是不是同步的问题?我想你至少应该编一个格式,比如提供引导符、有效长度、内容、校验,这种格式会比较合适吧?
发布于
2019-02-18
举报
评论 0
1
0
yhj416606438
你把state,countsigh三个变量定义成全局变量就好了
发布于
2019-02-18
举报
评论 3
0
0
白云苍狗
回复了 yhj416606438 :我只有这个函数用到他们三个
回复
yhj416606438
回复了 yhj416606438 :那你这样吧,在三个u8前面加 static
回复
yhj416606438
回复了 yhj416606438 :一般都是其他函数读取标志位和数据长度的,所以肯定是全局变量,要么就是你进去调试模式看寄存器值
回复
莱克迷KW
静态变量的问题吧,一般这样的变量会跳出后销毁的。
发布于
2019-02-18
举报
评论 0
0
0
涛涛涛涛涛
考虑好数据类型问题,发送的数据到底是啥
发布于
2019-02-22
举报
评论 0
0
0
drepa
有可能是接收中断把发送时候的SBUF寄存器数据打乱了,你试试加标志位或者延时之类的确保数据不冲突?
发布于
2019-02-24
举报
评论 0
0
0
chen0000009
将那个count state 作为全局变量来用,不要作为局部变量,不然下次进来那个值默认就是0了
发布于
2019-02-24
举报
评论 0
0
0
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
两个单片机串口传一个数组的数据,我写老是不对,要怎么改!急
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: