萌新求助回调函数代码如下引脚定义如下另外在主函数里写了一个死循环使LED0不断闪烁,在程序运行时一旦按下key_up或者key1,LED1立马进行响应的动作同时LED0的状态就不会再发生变化了。然后再怎么按动key_up或者key1都没有任何反应。
查看更多
中断的回调函数的运行也还是在中断的环境下,因此必须遵守中断函数的写法限制,其中最重要的一条是尽量短小。正确的做法是可以使用邮箱或队列将中断参数传递给已经挂起的线程中去专门处理,例如判断参数值以及mqtt_upload等费时的操作。
中断尽量少执行耗时较长的代码,另外rtt中部分接口会阻塞因此不能再中断中使用。建议你这应改:中断里边判断后通过消息队列或者邮箱等发出信号,另外一个线程接收到信号后在执行mqtt_upload操作
你把onenet上传的函数屏蔽后应该正常可以用运行。
接上你的串口终端,看一下卡住的时候是不是打印了,Function[%s] shall not be used in ISR这样的一句话。如果有,说明你在中断里调用了“不该”调用的函数(比如你这里的onenet_mqtt_upload_string)。
欢迎发表与嵌入式相关的技术分享、开发技巧、工具介绍、技术设想、职业心得、行业评论等对他人有启发,排版优雅的文章
回到 顶部
发布 问题
分享 好友
手机 浏览
投诉 建议
回到 底部