主题:em335 GPIO 设置问题 共有16200人关注过本帖 |
---|
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编辑过]
|
单帖管理 | 引用 | 回复 |