日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LPC2132的IOPIN

發布時間:2025/3/14 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LPC2132的IOPIN 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先看關于寄存器描述。

寫著IOPIN為只讀寄存器。

但其實可以向IOPIN里寫數據,如http://home.eeworld.com.cn/my/space-uid-440873-blogid-77805.html 所示。

可以使用IOPIN使GPIO管腳上輸出瞬時的0和1?

先寫IOSET再寫IOCLR寄存器可使管腳先輸出1再輸出0。有的系統允許兩個有效輸出之間存在這段
延時時間。但某些應用要求一個GPIO口的一組管腳同時輸出一個二進制數(0和1混合)。這可通過寫端
口的IOPIN寄存器來實現。
下面的代碼所實現的功能是:P0.[31:16]和P0.[7:0]輸出保持不變的同時將P0.[15:8]設置成0xA5,不管
P0.[15:8]之前是何值:
IO0PIN=(IO0PIN && # 0xFFFF00FF)‖# 0x0000A500

?

?

?

但有陷阱,如http://blog.pfan.cn/niao0311/38996.html 所示。

?

下面是解釋:http://bbs.zlgmcu.com/dv_rss.asp?s=xhtml&boardid=29&id=18359&page=3

“先寫IOSET再寫IOCLR寄存器可使管腳先輸出1再輸出0。有的系統允許兩個有效輸出之間存在這段延時時間。但某此應用要求一個GPIO口的一組管腳同時輸出一個二進制(0和1混合)。這可通過寫端口的IOPIN寄存器來實現(但是,Philips不推薦這種用法,非必要時不要使用)。”

? 以上是《深入淺出ARM7-LPC213x_214x(上冊)》P138中的一段文字。

問題是:既然使用IOPIN能夠避免使用IOSET/IOCLR 輸出1/0出現不必要的中間態,為什么Philips不推薦這種用法?非必要時不要使用,那在何時才用IOPIN的方法。

回答:非必須時不要使用,是因為IOPIN是沒有位屏蔽操作的,即改變這個寄存器32個引腳都可能會發生改變,所以必須要用與或的操作實現引腳狀態的改變,但與或操作即讀改寫有一問題,就是讀改寫被打斷時(可能被中斷或任務打斷)時,如打斷后IOPIN的值改了,那再寫回去的值就不正確了,所以應用時要十分注意。

?

?

轉載于:https://www.cnblogs.com/whyaiw/archive/2013/03/23/2977844.html

總結

以上是生活随笔為你收集整理的LPC2132的IOPIN的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。