[技术问答] 输入上拉下拉

[复制链接]
3530|22
 楼主| newphj 发表于 2017-2-10 08:39 | 显示全部楼层 |阅读模式
初次用nuc130,引脚设置为输入是,怎么配置上下拉。。
zhuomuniao110 发表于 2017-2-10 08:49 | 显示全部楼层
/**
* @brief       Set GPIO operation mode
*
* @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, PB, PC, PD and PE GPIO port.
*                          It could be BIT0 ~ BIT3 for PF GPIO port.
* @param[in]   u32Mode     Operation mode. . It could be \n
*                          GPIO_PMD_INPUT, GPIO_PMD_OUTPUT, GPIO_PMD_OPEN_DRAIN, GPIO_PMD_QUASI.
*
* @return      None
*
* @Details     This function is used to set specified GPIO operation mode.
*/
void GPIO_SetMode(GPIO_T *port, uint32_t u32PinMask, uint32_t u32Mode)
{
    uint32_t i;

    for(i = 0; i < GPIO_PIN_MAX; i++)
    {
        if(u32PinMask & (1 << i))
        {
            port->PMD = (port->PMD & ~(0x3 << (i << 1))) | (u32Mode << (i << 1));
        }
    }
}
zhuomuniao110 发表于 2017-2-10 08:49 | 显示全部楼层
GPIO_SetMode(GPIO_T *port, uint32_t u32PinMask, uint32_t u32Mode)
这个函数是配置GPIO的模式的,一共四种模式可选
GPIO_PMD_INPUT, GPIO_PMD_OUTPUT, GPIO_PMD_OPEN_DRAIN, GPIO_PMD_QUASI.
zhuomuniao110 发表于 2017-2-10 08:50 | 显示全部楼层
如果是输入模式,直接用GPIO_PMD_INPUT就行了。同样你可以设置输出模式,或者开漏,或准双向。
zhuomuniao110 发表于 2017-2-10 08:51 | 显示全部楼层
第一次用最好下载那个官方的BSP开发包,里面有库函数和例程序,不建议用寄存器,这年头,你还学寄存器每一家的都不同命名的头文件,怎么学,用库函数基本上都是那么回事了。
zhuomuniao110 发表于 2017-2-10 08:52 | 显示全部楼层
huangcunxiake 发表于 2017-2-10 19:47 | 显示全部楼层
输入就直接配置成输入模式就行了。就自动上拉了
zhuotuzi 发表于 2017-2-11 10:42 | 显示全部楼层
GPIO_PMD_INPUT, GPIO_PMD_OUTPUT, GPIO_PMD_OPEN_DRAIN, GPIO_PMD_QUASI.
zhuotuzi 发表于 2017-2-11 10:43 | 显示全部楼层
新手吧,下载官方的例程看看怎么操作IO。
捉虫天师 发表于 2017-2-11 15:59 | 显示全部楼层
应该就一种模式,输入模式,默认是上拉电阻。
 楼主| newphj 发表于 2017-2-13 15:18 | 显示全部楼层
捉虫天师 发表于 2017-2-11 15:59
应该就一种模式,输入模式,默认是上拉电阻。

你好,那我需要下拉的时候需要怎么设置的?
 楼主| newphj 发表于 2017-2-13 15:21 | 显示全部楼层
zhuotuzi 发表于 2017-2-11 10:43
新手吧,下载官方的例程看看怎么操作IO。

你好。之前都是用ST的。ST的设置有上下拉各种模式的。
GPIO_Mode_AIN ,
  GPIO_Mode_IN_FLOATING ,
  GPIO_Mode_IPD,
  GPIO_Mode_IPU ,
  GPIO_Mode_Out_OD ,
  GPIO_Mode_Out_PP ,
  GPIO_Mode_AF_OD ,
  GPIO_Mode_AF_PP
新唐的第一次用,所以还不熟悉。
mintspring 发表于 2017-2-13 23:25 | 显示全部楼层
It could be BIT0 ~ BIT15 for PA, PB, PC, PD and PE GPIO port.
*                          It could be BIT0 ~ BIT3 for PF GPIO port.
这个一定要注意,不是所有的可以。
Harvard 发表于 2017-2-14 09:57 | 显示全部楼层
不行接个电阻下拉看看了 或者你配置成输入模式 ,然后 让端口输出0 看看
捉虫天师 发表于 2017-2-16 21:15 | 显示全部楼层
newphj 发表于 2017-2-13 15:18
你好,那我需要下拉的时候需要怎么设置的?

你输出0不就是下拉吗
捉虫天师 发表于 2017-2-16 21:17 | 显示全部楼层
设置后应该根据你输出的不同状态来确定是上拉还是下拉的,一般输出模式下,输出为1就是上拉,输出为0就是下拉。
 楼主| newphj 发表于 2017-2-17 07:28 | 显示全部楼层
捉虫天师 发表于 2017-2-16 21:17
设置后应该根据你输出的不同状态来确定是上拉还是下拉的,一般输出模式下,输出为1就是上拉,输出为0就是下 ...

好的,谢谢。
598330983 发表于 2017-2-19 19:25 | 显示全部楼层
下载个BSP开发包,里面有一些LIB库,
heisexingqisi 发表于 2017-2-19 23:24 | 显示全部楼层
找个手册看看,关于GPIO的那几种设置哪个是上拉,应该没有下拉这个吧。
gejigeji521 发表于 2017-2-19 23:59 | 显示全部楼层
看手册上说,好像每个IO里面有个上拉电阻。么有下拉电阻吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

79

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部