查看: 4161|回复: 12

[已解决] 关于输出I/O电平求助(已解决)

[复制链接]

该用户从未签到

16

主题

57

帖子

0

中级会员

Rank: 3Rank: 3

积分
209
最后登录
2021-7-16
发表于 2014-6-11 13:52:13 | 显示全部楼层 |阅读模式
本人想用PTA4作输出,设置如下
SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK ;
PORTA_PCR4 |= PORT_PCR_MUX(1);
GPIOA_PDDR |= 0x0010;

GPIOA_PSOR |= 0x0010;
GPIOA_PCOR |= 0x0010;
输出的电平一直为高,不知是什么原因
另同样的设置方法在PTA5上是可以的
我知道答案 目前已有11人回答
回复

使用道具 举报

该用户从未签到

16

主题

57

帖子

0

中级会员

Rank: 3Rank: 3

积分
209
最后登录
2021-7-16
 楼主| 发表于 2014-6-11 13:56:30 | 显示全部楼层

回复:关于输出I/O电平求助

忘说了,我用的是KL25
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-6-11 14:38:43 | 显示全部楼层

RE:关于输出I/O电平求助

楼主你好,你使用的PTA4是NMI引脚,如果你要使用它的GPIO功能,你需要先禁止掉该引脚的NMI功能,具体操作可以查看这个链接:
https://www.nxpic.org.cn/bbs/article_1280_583815.html
先禁止之后,再使用GPIO,如果你只是想用一个GPIO引脚,而且还有其他的空余引脚可用,建议你还是换一个引脚。
回复 支持 反对

使用道具 举报

该用户从未签到

16

主题

57

帖子

0

中级会员

Rank: 3Rank: 3

积分
209
最后登录
2021-7-16
 楼主| 发表于 2014-6-11 15:19:12 | 显示全部楼层

回复:关于输出I/O电平求助

有禁的,不禁会进入NMI中断的,但还是不行,
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-6-11 15:37:09 | 显示全部楼层

回复:关于输出I/O电平求助

回复第 4 楼 于2014-06-11 15:19:12发表:
有禁的,不禁会进入NMI中断的,但还是不行, 

这样啊,那你有没有debug看看GPIO的寄存器有没有改变掉呢。
你外围有没有接什么电路呢?
 
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-6-13 11:08:33 | 显示全部楼层

RE:关于输出I/O电平求助

楼主,你这句话有问题:
PORTA_PCR4 |= PORT_PCR_MUX(1);
因为NMI引脚的功能默认就是alt7,所以是0b0111。
你在改变mux的时候,需要先把mux清为0再修改mux。
PORTA_PCR4 &= ~(0X700);
PORTA_PCR4 |= PORT_PCR_MUX(1);
然后就可以了。
回复 支持 反对

使用道具 举报

该用户从未签到

16

主题

705

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1745
最后登录
1970-1-1
发表于 2014-6-13 11:12:13 | 显示全部楼层

回复:关于输出I/O电平求助

回复第 4 楼 于2014-06-11 15:19:12发表:
有禁的,不禁会进入NMI中断的,但还是不行,
 
 
确实如楼上所讲,RM中讲了,
6.jpg
所以说,虽然NMI功能禁止了,但是引脚功能默认还是NMI,也就是alt(7),如果你再或的话,根本不会改变mux的功能,这个就是为什么你没有输出,因为你的PTA4不是gpio。
 
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-6-13 11:12:59 | 显示全部楼层

RE:关于输出I/O电平求助

楼主如果还有问题,欢迎交流。
如果问题解决了,还请帮我们结贴,在标题的结尾处加上(已解决)
回复 支持 反对

使用道具 举报

该用户从未签到

16

主题

705

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1745
最后登录
1970-1-1
发表于 2014-6-13 11:19:46 | 显示全部楼层

RE:关于输出I/O电平求助

通过测试,这么定义是可以的:
  SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK ;
  PORTA_PCR4 &= ~(0X703);
  PORTA_PCR4 |= PORT_PCR_MUX(1);
  GPIOA_PDDR |= 0x0010;   
  GPIOA_PSOR |= 0x0010;
  GPIOA_PCOR |= 0x0010;
我这边,KL25的NMI引脚输出是可以改变的。
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

351

帖子

0

高级会员

Rank: 4

积分
973
最后登录
1970-1-1
发表于 2014-6-13 11:39:21 | 显示全部楼层

回复:关于输出I/O电平求助

SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK ;
PORTA_PCR4 |= PORT_PCR_MUX(1);      
GPIOA_PDDR |= 0x0010;

GPIOA_PSOR |= 0x0010;                                               
GPIOA_PCOR |= 0x0010;
 
楼主这种动不动就或等于的操作方式很不正规啊,你要考虑之前这些寄存器的状态否则或等于很容易得到自己不想要的结果。
毕竟现在操作寄存器不像以前直接给寄存器附绝对值那么固定了。
你用或等于、与等于都需要注意这种c语言上的问题。
 
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-20 04:36 , Processed in 0.110583 second(s), 31 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表