打印
[ZLG-ARM]

怎样操作一个GPIO才不至于影响到其他IO口

[复制链接]
2112|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
有意思|  楼主 | 2007-1-3 20:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
TRUE_ARM| | 2007-1-3 20:27 | 只看该作者

认真看一下DATASHEET

IOxCLR、IOxSET只对写“1”的位有效。

使用特权

评论回复
板凳
有意思|  楼主 | 2007-1-3 20:35 | 只看该作者

这个当然知道

除了IODIR,几乎所有的寄存器都是写入1有效,写入0无效,但是在实际中,操作的确会影响到其他口线,

使用特权

评论回复
地板
hotpower| | 2007-1-3 20:39 | 只看该作者

改成IO0CLR = LED1 | LED2 | LED3;IO0SET = LED1 | LED2 | LED3;

使用特权

评论回复
5
有意思|  楼主 | 2007-1-3 20:47 | 只看该作者

是这样作的

两个485,两个IO口控制MAX485的DE(RE),
#define Rs485ctrol0 1 << 19            //P1_19 485_1
#define Rs485ctrol1 1 << 10               //P0_10 485_2

IO1DIR |= Rs485ctrol0;
//IO0DIR |= Rs485ctrol1;          //加上这条就会影响接收和发送

使用特权

评论回复
6
hotpower| | 2007-1-3 20:51 | 只看该作者

和优先级有关???加个()

#define Rs485ctrol0 (1 << 19)            //P1_19 485_1
#define Rs485ctrol1 (1 << 10)               //P0_10 485_2

使用特权

评论回复
7
zyc32| | 2007-1-11 09:46 | 只看该作者

怎样操作一个GPIO才不至于影响到其他IO口

先读出原来的值,再采用或运算。即读出-写入

使用特权

评论回复
8
有意思|  楼主 | 2007-1-11 21:55 | 只看该作者

这样呢

#define ON_LED5  IO0CLR |= LED5;
or
#define ON_LED5  IO0CLR0 |= LED5

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

79

主题

331

帖子

0

粉丝