打印
[技术问答]

新塘IO配置是怎么使用关闭数字输入功能(OFFD)

[复制链接]
1976|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jaingzhenhua|  楼主 | 2016-11-8 15:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在用新塘的MCU,发现IO配置时可以选择关闭数字输入通道功能,但具体不知道怎么用;

见手册上说“OFFD用于控制数字输入通道是否使能,如果输入为模拟信号,用户可以关闭数字输入通道防止漏电”

那我是不是可以理解为只要IO不是工作在数字输入模式(如RXD)就都可以关闭这个数字输入通道?
沙发
jaingzhenhua|  楼主 | 2016-11-8 15:30 | 只看该作者
是不是大家用新塘MCU的时候这个功能压根就不用,都默认打开的?

使用特权

评论回复
板凳
wahahaheihei| | 2016-11-8 22:30 | 只看该作者
搜索一下头文件,看看有没有这个寄存器相关的内容。

使用特权

评论回复
地板
jaingzhenhua|  楼主 | 2016-11-9 08:29 | 只看该作者
wahahaheihei 发表于 2016-11-8 22:30
搜索一下头文件,看看有没有这个寄存器相关的内容。

搜了下,头文件中就是一个变量定义;没什么其他的内容;

使用特权

评论回复
5
bingkaiok| | 2016-11-20 22:30 | 只看该作者
//假设要关P1.0

#define P1_OFFD              (*((volatile unsigned long *) (GP_BA+0x00000044)))

P1_OFFD|=(1<<16);

使用特权

评论回复
6
wahahaheihei| | 2016-11-23 12:50 | 只看该作者
楼主这半月搞定没,咋玩的?

使用特权

评论回复
7
dongnanxibei| | 2016-11-27 17:14 | 只看该作者
给的例程或者库函数的说明里面搜那个关键词就可以找到具体的说明,是写1还是写0

使用特权

评论回复
8
dongnanxibei| | 2016-11-27 17:15 | 只看该作者
根据上面朋友写的内容感觉是在那个位置写1

使用特权

评论回复
9
dongnanxibei| | 2016-11-27 17:18 | 只看该作者

帮楼主找到了,库函数里有的,就是GPIO的库函数。
/**
* [url=home.php?mod=space&uid=247401]@brief[/url]       Disable I/O Digital Input Path
*
* @param[in]   port        GPIO port. It could be PA, PB, PC, PD, PE or PF.
* @param[in]   u32PinMask  The single or multiple pins of specified GPIO port.
*                          It could be BIT0 ~ BIT15 for PA and PB GPIO port.
*                          It could be BIT0 ~ BIT3, BIT6 ~ BIT11, BIT14 and BIT15 for PC GPIO port.
*                          It could be BIT6, BIT7, BIT14 and BIT15 for PD GPIO port.
*                          It could be BIT5 for PE GPIO port.
*                          It could be BIT0, BIT1 and BIT4 ~ BIT8 for PF GPIO port.
*
* [url=home.php?mod=space&uid=266161]@return[/url]      None
*
* [url=home.php?mod=space&uid=1543424]@Details[/url]     Disable I/O digital input path of specified GPIO pin.
*/
#define GPIO_DISABLE_DIGITAL_PATH(port, u32PinMask) ((port)->OFFD |= ((u32PinMask)<<16))


使用特权

评论回复
10
heisexingqisi| | 2016-11-27 17:52 | 只看该作者
It could be BIT0 ~ BIT15 for PA and PB GPIO port.
*                          It could be BIT0 ~ BIT3, BIT6 ~ BIT11, BIT14 and BIT15 for PC GPIO port.
*                          It could be BIT6, BIT7, BIT14 and BIT15 for PD GPIO port.
*                          It could be BIT5 for PE GPIO port.
*                          It could be BIT0, BIT1 and BIT4 ~ BIT8 for PF GPIO port.
这里说的不全,应该是有别的原因吧,不能用?

使用特权

评论回复
11
598330983| | 2016-11-27 23:30 | 只看该作者
9楼的正解,确实这么做。在头文件里给出了那个GPIO的操作函数了。

使用特权

评论回复
12
sgr2000| | 2016-11-28 19:23 | 只看该作者
用新唐的M453开发板,以及新唐网站的M451的BSP包,
1)直接在main函数开始就进行GPIO的输出测试:
    PA11/10/7/6/5/4、PC15、PE2/PE6~PE13这几个GPIO都不能控制,也查看了GPIO.H文件,没有找到原因
2)用BSP包里面的原程序SPI_Flash来看PE12(SPI0_SS),也没有电平变化
有使用这几个GPIO的吗?

使用特权

评论回复
13
ofsummer| | 2016-11-28 20:41 | 只看该作者
那意思是一个IO,数字模拟都能用?

使用特权

评论回复
14
jaingzhenhua|  楼主 | 2017-8-2 17:19 | 只看该作者
已结贴!

使用特权

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

本版积分规则

1

主题

14

帖子

0

粉丝