主題:em335 GPIO 設置問題 共有18457人關注過本帖 |
---|
benben |
1樓 信息 | 搜索 | 郵箱 |
加好友 發短信 |
em335 GPIO 設置問題 Post By:2023-3-2 13:57:00 [只看該作者]
em335 linux系統下,代碼如下: int fd = open("/dev/em335x_gpio", O_RDWR); int rc = GPIO_OutEnable(fd, 0x4500000); uint dwPinState = 0xFFFFFFFF; rc = GPIO_OutClear(fd, 1 << 20); rc = GPIO_PinState(fd, &dwPinState); //1 rc = GPIO_OutSet(fd, 1 << 20); rc = GPIO_PinState(fd, &dwPinState); //2 問題:1執行完,dwPinState值為ffeff3ff,2執行完,dwPinState值仍然為ffeff3ff。 GPIO_OutSet沒有起作用,2執行完,dwPinState的值不應該是fffff3ff嗎? 我這么寫有什么問題嗎? 調用函數用的例程test_gpio.c里的。 |
單帖管理 | 引用 | 回復 |
hzc |
2樓 信息 | 搜索 | 郵箱 |
加好友 發短信 員工 |
Post By:2023-3-2 14:37:00 [只看該作者]
你好,每次調用GPIO_PinState之前,都需要給dwPinState賦值(因為調用GPIO_PinState后,dwPinState的值會變為實際G[IO的值)。dwPinState的賦值表示要讀取哪幾位GPIO,比如0xffffffff,就代表讀取全部32位GPIO。具體可以參考光盤中編程手冊的說明。 另外讀取GPIO的值,只在輸入狀態才有意義,輸出狀態下是沒有意義的。 [此貼子已經被作者于2023-3-2 14:39:36編輯過]
|
單帖管理 | 引用 | 回復 |