Zigbee學習系列——細節

由於我是從普通的51單片機做過來的,對於cc2530單片機還是不是特別熟悉,而且由於兩者相似,所以對於一些細節問題並不會特別在意,這就導致遇到的一些問題使得我感覺這款芯片甚至這Zigbee協議特別難“伺候”,然後把自己所遇到的這些問題彙總一下,希望對大家有所幫助!

問題1:當我使用P1口的外部中斷的時候,所有的配置都確保沒有問題,但是,外界在沒有觸發甚至引腳懸空時均會進入中斷函數並且形成了死循環。不斷的跳入P1口的中斷函數。

排查:調試的時候查看寄存器值,發現P1.0和P1.1自己在沒有規律的變化(這就奇怪了,此時很鬱悶,也很火)

原因:再次詳細的讀了一遍數據手冊後發現,P1.0和P1.1,沒有內部上下拉,這就是會導致內部寄存器的變化影響了引腳的變化。

解決:在外部根據自己的需要接上拉或者下拉電阻。

問題2:中斷合適,但是第一次進入中斷後就如同進入死循環,然後就出不來了。

原因:在中斷執行後必須軟件復位標誌寄存器,否則會重新進入中斷執行,從而陷入死循環。

解決:在中斷函數末復位這兩個寄存器(PxIFG、PxIF),切記注意復位順序,先PxIFG、再PxIF。

 

此文章會持續更新。。。

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