Part Number:CC2642R
在syscfg文件中GPIO界面配置了dio 12为标准输出,默认低电平,同时在代码上电初始化阶段再次配置相同的配置,结果在首次上电时发现,出现下降沿、上升沿、下降沿三种三种电平变化
实际上我们期望在配置GPIO默认电平为低后,上电过程中不应该出现上升沿这种电平变化,实际上却出现了这种变化
需要Ti确认下,使用GPIO时,首次上电时芯片默认GPIO的电平 以及 使用GPIO_setConfig API时是否导致电平多次变化的问题
Galaxy Yue:
您好,
1.理论上首次上电时芯片默认GPIO的电平取决于您配置的电平
2.使用GPIO_setConfig API时不会导致电平发生变化,是配置引脚的功能和工作方式。
以下是关于GPIO的API描述
GPIO_init() sets up the configured GPIO pins.
• GPIO_read() gets the current state of the specified GPIO input pin.
• GPIO_write() sets the state of the specified GPIO pin to on or off.
• GPIO_toggle() toggles the state of the specified GPIO pin.
• GPIO_setCallback() dynamically binds a callback function to the specified GPIO input pin.
• GPIO_setConfig() dynamically configures the specified GPIO input pin.
• GPIO_clearInt() clears the interrupt flag for the specified GPIO pin.
• GPIO_disableInt() disables interrupts on the specified GPIO pin.
• GPIO_enableInt() enables interrupts on the specified GPIO pin
,
Shuyang Zhong:
您的DIO12引脚是怎么接的?外面有其他电路吗?
GPIO_setConfig API不会改变电平输出状态,但芯片GPIO默认是高阻态,会不会是在配置生效前引脚被外部电路拉高了?
Best regards,
Shuyang
,
snail leo:
目前这个现象只在首次上电时出现,正常运行时拉高或者拉低电平都是正常的
DIO12引脚外接的是一个独立供电的单片机,专门用来检测DIO12的电平变化
,
Galaxy Yue:
您好,您可以把代码放上来,我会尝试帮您复现一下。
,
Galaxy Yue:
您好,建议您
断开外部电路把连接的引脚置空一下
或者换一个悬空引脚不要外接电路
试一下以上两种方案
,
snail leo:
你好,我认为这两种方案并不能解决问题,因为BLE芯片要嵌入实际电路中,引脚不可能单独断开或者悬空
代码如下:
在simple_peripheral_oad_onchip demo中,
simple_peripheral_oad_onchip.c的SimplePeripheral_init函数中添加如下代码,然后观察·dio12上电和下电的电平变化情况即可
GPIO_setConfig(12, GPIO_CFG_OUTPUT | GPIO_CFG_OUT_LOW);
,
Galaxy Yue:
您好,
不好意思,用开发板是不能复现的,悬空引脚是为了定位问题,验证了这个结果才能进行下一步。
如果确实无法悬空或者单独断开,那可能目前没有更好的办法了。
,
snail leo:
我还有个问题麻烦帮忙确认一下,就是芯片上电后,如果没有配置GPIO的电平属性的话,GPIO会一直保持高阻态吗?这个时候如果外部给GPIO一个高电平或者低电平,此时GPIO的电平会与外部电平一致吗?
,
Galaxy Yue:
您好,
1.芯片上电后,如果没有配置GPIO的电平属性的话,GPIO会一直保持高阻态。
2.此时GPIO的电平会与外部电平一致