打印

IO的读-修改-写操作的迷惑!

[复制链接]
3267|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mei326|  楼主 | 2011-8-26 16:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PIC的IO的寄存器PORTX、LATX、TRISX到底该如何操作呢?比如说使用IO模拟IIC,那么SDA口有时候需要设置为输出,有时候需要设置为输入。那么让SDA输出高或低电平是先设置TRISX方向寄存器再操作PORTX,还是直接设置TRISX就行了呢?
沙发
yewuyi| | 2011-8-26 17:29 | 只看该作者
在最新的PIC的MCU中,已经增加了LATX寄存器,这就是为了解决读-修改-写现象的。

TRISx操作IO口方向,当输出的时候,直接操作LATX可以控制对应的IO脚输出高低电平,当输入的时候,直接读PORTx可以读取该IO端口的电平状态,而这个读取不会影响LATX的寄存器值,所以也就不存在读-修改-写现象了。

使用特权

评论回复
板凳
NE5532| | 2011-8-29 16:52 | 只看该作者
你说清楚读修改写出现问题的原理,就知道该怎么做了。

使用特权

评论回复
地板
mei326|  楼主 | 2011-8-30 10:00 | 只看该作者
问题已经解决了~按照yewuyi的思路!

使用特权

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

本版积分规则

个人签名:与其等待机会,不如主动出击...

117

主题

764

帖子

2

粉丝