打印
[技术问答]

NANO112SC2AN IO 缺省值怎设置?

[复制链接]
1031|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hendxcn|  楼主 | 2017-1-10 18:16 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
AN, IO, gp, pc, pi
本帖最后由 hendxcn 于 2017-1-11 09:17 编辑

请问该如何设定 IO 的缺省值?
下面这段代码在 NANO112VC2AN 时,设定输入上拉。可以让 IO 口保持在高电平。
但在 NANO112SC2AN 时就做不到。

外围硬件相同
SYS_UnlockReg();

SYS->PC_L_MFP &= ~(SYS_PC_L_MFP_PC0_MFP_GPC0|SYS_PC_L_MFP_PC1_MFP_GPC1);
SYS->PB_L_MFP &= ~SYS_PB_L_MFP_PB6_MFP_GPB6;
SYS->PB_H_MFP &= ~(SYS_PB_H_MFP_PB10_MFP_GPB10|SYS_PB_H_MFP_PB11_MFP_GPB11|\
                                       SYS_PB_H_MFP_PB12_MFP_GPB12|SYS_PB_H_MFP_PB13_MFP_GPB13|\
                                       SYS_PB_H_MFP_PB14_MFP_GPB14|SYS_PB_H_MFP_PB15_MFP_GPB15);
PB->OFFD &= 0x03BFFFFF;
PC->OFFD &= 0xFF80FFFF;
GPIO_SetMode(PB, BIT6|BIT10|BIT11|BIT12|BIT13, GPIO_PMD_OUTPUT);
GPIO_SetMode(PB, BIT14|BIT15, GPIO_PMD_INPUT);
GPIO_SetMode(PC, BIT0|BIT1, GPIO_PMD_INPUT);
PB6=0;PB10=0;PB11=0;PB12=0;PB13=0;
GPIO_ENABLE_PULL_UP(PB, BIT14|BIT15);
GPIO_ENABLE_PULL_UP(PC, BIT0|BIT1);

SYS_LockReg();



沙发
yiyigirl2014| | 2017-1-10 22:07 | 只看该作者
是的,可以在程序开始的初始化里面设置这些IO。

使用特权

评论回复
板凳
gejigeji521| | 2017-1-11 20:53 | 只看该作者
怎么不注释一下,有的看不太明白。

使用特权

评论回复
地板
643757107| | 2017-1-11 23:54 | 只看该作者
PB->OFFD &= 0x03BFFFFF;
PC->OFFD &= 0xFF80FFFF;
这两个是做啥的

使用特权

评论回复
5
hendxcn|  楼主 | 2017-1-12 09:54 | 只看该作者
本帖最后由 hendxcn 于 2017-1-12 10:03 编辑
gejigeji521 发表于 2017-1-11 20:53
怎么不注释一下,有的看不太明白。

SYS_UnlockReg();

/* 设置 IO 做 GPIO  */
SYS->PC_L_MFP &= ~(SYS_PC_L_MFP_PC0_MFP_GPC0|SYS_PC_L_MFP_PC1_MFP_GPC1);
SYS->PB_L_MFP &= ~SYS_PB_L_MFP_PB6_MFP_GPB6;
SYS->PB_H_MFP &= ~(SYS_PB_H_MFP_PB10_MFP_GPB10|SYS_PB_H_MFP_PB11_MFP_GPB11|\
                                       SYS_PB_H_MFP_PB12_MFP_GPB12|SYS_PB_H_MFP_PB13_MFP_GPB13|\
                                       SYS_PB_H_MFP_PB14_MFP_GPB14|SYS_PB_H_MFP_PB15_MFP_GPB15);
/* 使能 IO 数字输入通道 */
PB->OFFD &= 0x03BFFFFF;
PC->OFFD &= 0xFF80FFFF;
/* 设置 IO 模式 */
GPIO_SetMode(PB, BIT6|BIT10|BIT11|BIT12|BIT13, GPIO_PMD_OUTPUT);
GPIO_SetMode(PB, BIT14|BIT15, GPIO_PMD_INPUT);
GPIO_SetMode(PC, BIT0|BIT1, GPIO_PMD_INPUT);
/* 第一次输出 L */
PB6=0;PB10=0;PB11=0;PB12=0;PB13=0;
/* 以下脚位上拉使能 */
GPIO_ENABLE_PULL_UP(PB, BIT14|BIT15);
GPIO_ENABLE_PULL_UP(PC, BIT0|BIT1)





使用特权

评论回复
6
hendxcn|  楼主 | 2017-1-12 09:54 | 只看该作者
643757107 发表于 2017-1-11 23:54
PB->OFFD &= 0x03BFFFFF;
PC->OFFD &= 0xFF80FFFF;
这两个是做啥的

/* 使能 IO 数字输入通道 */
PB->OFFD &= 0x03BFFFFF;
PC->OFFD &= 0xFF80FFFF;



使用特权

评论回复
7
643757107| | 2017-1-12 20:36 | 只看该作者
hendxcn 发表于 2017-1-12 09:54
/* 使能 IO 数字输入通道 */
PB->OFFD &= 0x03BFFFFF;
PC->OFFD &= 0xFF80FFFF; ...

楼主太给力了,以前只用库函数,没研究过这些寄存器,看来要学习学习了。

使用特权

评论回复
8
zhuomuniao110| | 2017-1-12 23:36 | 只看该作者
手册一定要好好学习,都在手册上啊。

使用特权

评论回复
9
gejigeji521| | 2017-1-26 20:14 | 只看该作者
温故而知新,几天不看啥都不会了。

使用特权

评论回复
10
wahahaheihei| | 2017-1-27 14:05 | 只看该作者
应该有相关的例程。

使用特权

评论回复
11
dongnanxibei| | 2017-2-11 21:19 | 只看该作者
这个系列用库函数操作没法实现吗

使用特权

评论回复
12
huangcunxiake| | 2017-2-13 19:12 | 只看该作者
这两个单片机的手册说明里,提出差异在哪儿了吗

使用特权

评论回复
13
mintspring| | 2017-2-13 23:15 | 只看该作者
最后解决了,这两个哪儿的区别?

使用特权

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

本版积分规则

2

主题

17

帖子

0

粉丝