打印

关于GPIOXDIR的一点问题

[复制链接]
786|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 长的帅怪我落 于 2016-8-16 16:57 编辑

我在用GPIO模拟I2C的时候,需要SDA改变输出方向,然后查了下DIR是方向寄存器,如下

EALLOW;
GpioCtrlRegs.GPBMUX1.bit.GPIO32 = 0; // GPIO32复用为GPIO功能
GpioCtrlRegs.GPBDIR.bit.GPIO32 = 1; // GPIO32设置为输出
GpioCtrlRegs.GPBMUX1.bit.GPIO33 = 0; //
GpioCtrlRegs.GPBDIR.bit.GPIO33 = 1; // G

EDIS;

在这里初始化使得GPIO32为输出功能。然后,在开始I2C发送数据等待应答的时候,需要改变该脚的输出方向,且改为输入。如下

GpioCtrlRegs.GPBDIR.bit.GPIO32=0; //切换方向输入

重点就是在执行完这句后,DIR寄存器并没有按照我想的变成0,还是1;



然后我单步调试,在执行GpioCtrlRegs.GPBDIR.bit.GPIO32=0; //切换方向输入  之前的寄存器的值,此时值为1;我在单步走完这句后

却发现该寄存器的值还是1,并没用变。。。这就比较尴尬了。

写了这么多,就是想问下,怎么临时改变DIR寄存器的值。。好了我说完了,麻烦大神看下。。

忘了说,用的是ccs6 tms320f28335

相关帖子

沙发
长的帅怪我落|  楼主 | 2016-8-16 17:03 | 只看该作者
因为我看了EALLOW和EIDS保护了寄存器不被误操作,所以我在后面GpioCtrlRegs.GPBDIR.bit.GPIO32=0; //切换方向输入 改成了
EALLOW;
GpioCtrlRegs.GPBDIR.bit.GPIO32=0; //切换方向输入
EIDS;
结果单步调试,DIR的值一直是0了。。

使用特权

评论回复
板凳
airwill| | 2016-8-16 19:05 | 只看该作者
设置成外设功能后, 输入/输出是由外设自动来控制的了. 不需要你去更改

使用特权

评论回复
地板
长的帅怪我落|  楼主 | 2016-8-18 10:47 | 只看该作者
本帖最后由 长的帅怪我落 于 2016-8-22 11:50 编辑

.................

使用特权

评论回复
5
FCCdsp| | 2016-8-18 21:21 | 只看该作者
之前遇到过同样的问题,又长知识了!

使用特权

评论回复
6
chenci2013| | 2016-8-18 22:25 | 只看该作者
一般都是在初始化的设置,

使用特权

评论回复
7
chenci2013| | 2016-8-18 22:29 | 只看该作者
i2c都是随时切换吧

使用特权

评论回复
8
火山LF| | 2016-8-26 11:56 | 只看该作者

板凳楼层的版主正解呀~~~

使用特权

评论回复
9
FCCdsp| | 2016-8-26 22:33 | 只看该作者
学习了,感谢分享

使用特权

评论回复
10
biechedan| | 2016-8-26 23:05 | 只看该作者
可以直接配置寄存器试试

使用特权

评论回复
11
biechedan| | 2016-8-26 23:07 | 只看该作者
设置为宏定义简单一些。

使用特权

评论回复
12
vivilzb1985| | 2016-8-27 16:11 | 只看该作者
这个不敢怎样都是需要对相关的寄存器进行设计的

使用特权

评论回复
13
lwsn| | 2016-8-27 19:05 | 只看该作者
设置成外设功能

使用特权

评论回复
14
gygp| | 2016-8-29 22:42 | 只看该作者
设置好了吗

使用特权

评论回复
15
gygp| | 2016-8-29 22:46 | 只看该作者
一般都是直接设置寄存器吧。

使用特权

评论回复
16
lhxa_2116| | 2016-8-30 12:52 | 只看该作者
thanks  vwey thanks  vwey thanks  vwey thanks  vwey

使用特权

评论回复
17
Stannis| | 2016-8-30 17:44 | 只看该作者
配置寄存器

使用特权

评论回复
18
长的帅怪我落|  楼主 | 2016-9-1 11:28 | 只看该作者
其实我是每次要改变这些保护的寄存器都用一次eallow edis 然后就没问题了,就这么简单

使用特权

评论回复
19
qwer0145| | 2016-9-1 16:44 | 只看该作者
直接宏定义就行了,很方便的

使用特权

评论回复
20
gygp| | 2016-9-3 11:12 | 只看该作者
是不是应该有延时才对的。

使用特权

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

本版积分规则

21

主题

838

帖子

7

粉丝