微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 关于串口通信回调函数

关于串口通信回调函数

时间:10-02 整理:3721RD 点击:

尊敬的TI员工,各位一起研究蓝牙开发的同行们好:

今日在使用CC2541芯片时碰到如下问题,希望得到来自你们的帮助。目前我使用cc2541做为peripheral,在peripheral.c里面开了一个senddata[19],做为待发送数据的存储资源。

现在要发送的数据是通过uart口进来,提取方式是注册了uart的回调函数。回调函数里会对senddata对应位进行赋值。现在的问题是,回调函数对senddata的赋值是一次性的。当回调函数释放,之前对senddata做出的修改全部消失了。在peripheral.c里面,senddata永远是初始值。请问这是什么原因,有和方法解决?谢谢。

看看是不是临时变量的问题

这个肯定不是。senddata是static的。我希望串口读到的数据可以保存在这里,然后在peripheral层里面用特定task对数据进行使用。可是目前用断点单步调试发现,串口里面可以得到正确值,在回调函数里赋值到senddata里也成功了。但是一退出回调函数回到外面,senddata就立刻清0了。

这种情况应该不会发生

从你提供的信息来看,感觉还是看看是不是软件里面有些地方对代码进行操作了。

额,第一次看到你这情况,,,,不科学啊

1)检查是否栈溢出

2)检查是否是局部变量或者重名变量

3)进汇编,F11单步调试

4)如果还不行,肯定是外星人捣乱,我等地球人解决不了,洗洗睡吧,,,,

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top