打印
[技术问题解答]

关于引脚复用问题(已解决)

[复制链接]
3436|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
axl_613|  楼主 | 2014-10-4 11:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 FSL_TICS_A 于 2014-11-26 20:24 编辑

//POTD端口的引脚控制寄存器基地址为0x4004C000u(后缀u表示无符号数)使用PORTD4引脚控制小灯
  volatile uint_32 *portD_ptr4 = (uint_32*)0x4004C010u;

//设置PORTD4引脚为GPIO引脚,即令相应引脚控制寄存器的10-8位(MUX)字段为001
  *portD_ptr4 = 0x00000100;        
但在调试时,发现PORTD4的引脚控制寄存器中10-8位(MUX)字段的值一直为010。。。。

求大神指导,这是怎么回事呢,为什么重新给该寄存器赋值后,并未改变其值呢?

相关帖子

沙发
axl_613|  楼主 | 2014-10-4 11:49 | 只看该作者
上面有些不清楚,0x4004C010u为端口D的第4个引脚的引脚寄存器的地址。而0x4004C000u为D端口的引脚控制寄存器的基址。

使用特权

评论回复
板凳
axl_613|  楼主 | 2014-10-4 12:03 | 只看该作者
还有,调试的时候,进入中断后,跳不出来了
void Default_Handler()
{
        __asm("bkpt");
},该函数位于kinetis_sysinit.c中

使用特权

评论回复
地板
cmheia| | 2014-10-4 14:00 | 只看该作者
cache.freescale.com/files/32bit/software/FRDM-KL26Z_SC.exe
先看看例程怎么写吧……

使用特权

评论回复
5
axl_613|  楼主 | 2014-10-4 15:11 | 只看该作者
cmheia 发表于 2014-10-4 14:00
cache.freescale.com/files/32bit/software/FRDM-KL26Z_SC.exe
先看看例程怎么写吧……

就是照着例程写的KL25的

使用特权

评论回复
6
stikbuf| | 2014-10-6 11:15 | 只看该作者
遇到同样的问题啊,用编译器自带的宏也不管用

使用特权

评论回复
7
FSL_TICS_ZJJ| | 2014-10-9 10:18 | 只看该作者

楼主你好,我按照你的设置,重新定义一个指针变量,然后控制MUX是成功的,运行
*portD_ptr4 = 0x00000100;
之前,mux是0,默认是default。
运行之后,mux是1,已经成功的设置了mux。
你再检查下你的代码是不是哪里又重复控制了。

使用特权

评论回复
8
FSL_TICS_ZJJ| | 2014-10-9 10:19 | 只看该作者
stikbuf 发表于 2014-10-6 11:15
遇到同样的问题啊,用编译器自带的宏也不管用

如果用自带的宏,你需要考虑清楚,是不是先清除了MUX,然后再去用宏,否则可能把之前的数据也给或进去。
你说的问题,之前也有网友反映过,问题是网友自己控制程序有问题。

使用特权

评论回复
9
FSL_TICS_ZJJ| | 2014-10-9 10:20 | 只看该作者
楼主如果还有问题,欢迎继续交流。
如果您的问题解决了,还请帮我们及时结贴哦。

使用特权

评论回复
10
Thefantasy| | 2015-1-26 21:26 | 只看该作者
检查下你的代码是不是哪里又重复控制了

使用特权

评论回复
11
iyouone| | 2018-5-24 13:10 | 只看该作者
你好!贴主请问下你这是怎么解决的哪!

使用特权

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

本版积分规则

6

主题

56

帖子

0

粉丝