TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2640的IO口进行推挽输出和上拉输入同时设置

我最近需要通过CC2640对温湿度传感器AM2301进行数据采集,采集的过程中需要对CC2640的IO口进行推挽输出和上拉输入同时设置,我想问下CC2640可以做到吗?

请问我这样设置对吗?

/**
* 函数功能: 使DHT11-DATA引脚变为上拉输入模式
* 输入参数: 无
* 返 回 值: 无
* 说 明:无
*/
static void DHT11_Mode_IPU(void)
{
const PIN_Config UserGpioInitTable[] = {
USER_CTL_DHT_IO | PIN_INPUT_EN | PIN_PULLUP | PIN_DRVSTR_MAX,
PIN_TERMINATE
};
//PIN_init(UserGpioInitTable);
MotorIoHandle = NULL;
if(MotorIoHandle == NULL )
{
MotorIoHandle = PIN_open(&MotorIoState,UserGpioInitTable);

}
else
{
PIN_close(MotorIoHandle);
MotorIoHandle = NULL;
}

}

/**
* 函数功能: 使DHT11-DATA引脚变为推挽输出模式
* 输入参数: 无
* 返 回 值: 无
* 说 明:无
*/
static void DHT11_Mode_Out_PP(void)
{ const PIN_Config UserGpioInitTable[] = {
USER_CTL_DHT_IO | PIN_GPIO_OUTPUT_EN| PIN_PUSHPULL | PIN_DRVSTR_MAX,
PIN_TERMINATE
}; //PIN_init(UserGpioInitTable);
MotorIoHandle = NULL;
if(MotorIoHandle == NULL )
{
MotorIoHandle = PIN_open(&MotorIoState,UserGpioInitTable);
}
else
{
PIN_close(MotorIoHandle);
MotorIoHandle = NULL;
}

}

我在这里对这个IO进行设置的时候发现,PIN_init();这一句总是会跑死是因为什么?

user6118081:

希望有知道的各位大牛们可以帮忙解释一下这个问题

Alvin Chen:

回复 user6118081:

你不能重复使用PIN_open,当你PIN_init之后需要使用PIN_setConfig去改变pin的配置。

user6118081:

回复 Alvin Chen:

谢谢,大佬

user6118081:

回复 user6118081:

如果需要重复配置IO的输出或者输入应该是什么样子的有例程吗

Alvin Chen:

回复 user6118081:

void set_gpio_output(uint8 Pin_id, bool is_high){            if(is_high)            {                        PIN_setConfig(WB_hGpioPin, PIN_BM_ALL, Pin_id  | PIN_GPIO_OUTPUT_EN |PIN_GPIO_HIGH);            }            else            {                        PIN_setConfig(WB_hGpioPin, PIN_BM_ALL, Pin_id  | PIN_GPIO_OUTPUT_EN |PIN_GPIO_LOW);            }}

user6118081:

回复 Alvin Chen:

你发的这个有什么用啊,我发现你们每次发的都是这个,太敷衍了

user6118081:

回复 user6118081:

我就想知道,一个IO可以分别写两个函数,上拉输入和推挽输出吗?
比如像stm32这样的设置函数,能实现吗,/*** 函数功能: 使DHT11-DATA引脚变为上拉输入模式* 输入参数: 无* 返 回 值: 无* 说明:无*/
static void DHT11_Mode_IPU(void)
{GPIO_InitTypeDef GPIO_InitStruct;/* 串口外设功能GPIO配置 */GPIO_InitStruct.Pin= DHT11_Dout_PIN;GPIO_InitStruct.Mode= GPIO_MODE_INPUT;GPIO_InitStruct.Pull= GPIO_PULLUP;HAL_GPIO_Init(DHT11_Dout_PORT, &GPIO_InitStruct);
}

/*** 函数功能: 使DHT11-DATA引脚变为推挽输出模式* 输入参数: 无* 返 回 值: 无* 说明:无*/
static void DHT11_Mode_Out_PP(void)
{GPIO_InitTypeDef GPIO_InitStruct;/* 串口外设功能GPIO配置 */GPIO_InitStruct.Pin = DHT11_Dout_PIN;GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;HAL_GPIO_Init(DHT11_Dout_PORT, &GPIO_InitStruct);
}
要能实现的话,应该怎么配置?

yao:

楼主你的问题解决了吗?我用cc1310也遇到类似的问题。一个IO口分时配置为输入或者输出。

吐槽一下,我用cc1310也用的yuxianyusi。TI的提供的demo就不能写好一点么。

user6118081:

回复 yao:

我的已经解决了,楼上的兄弟

user6118081:

回复 user6118081:

你现在解决了吗,需要提供帮助吗

赞(0)
未经允许不得转载:TI中文支持网 » CC2640的IO口进行推挽输出和上拉输入同时设置
分享到: 更多 (0)