Zigbee学习系列——细节

由于我是从普通的51单片机做过来的,对于cc2530单片机还是不是特别熟悉,而且由于两者相似,所以对于一些细节问题并不会特别在意,这就导致遇到的一些问题使得我感觉这款芯片甚至这Zigbee协议特别难“伺候”,然后把自己所遇到的这些问题汇总一下,希望对大家有所帮助!

问题1:当我使用P1口的外部中断的时候,所有的配置都确保没有问题,但是,外界在没有触发甚至引脚悬空时均会进入中断函数并且形成了死循环。不断的跳入P1口的中断函数。

排查:调试的时候查看寄存器值,发现P1.0和P1.1自己在没有规律的变化(这就奇怪了,此时很郁闷,也很火)

原因:再次详细的读了一遍数据手册后发现,P1.0和P1.1,没有内部上下拉,这就是会导致内部寄存器的变化影响了引脚的变化。

解决:在外部根据自己的需要接上拉或者下拉电阻。

问题2:中断合适,但是第一次进入中断后就如同进入死循环,然后就出不来了。

原因:在中断执行后必须软件复位标志寄存器,否则会重新进入中断执行,从而陷入死循环。

解决:在中断函数末复位这两个寄存器(PxIFG、PxIF),切记注意复位顺序,先PxIFG、再PxIF。

 

此文章会持续更新。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章