在一次设计中,使用了STM8S105C6T6这款芯片的PE1口和PE2口作为普通GPIO口输出,在实际应用中,发现这两个端口并不能输出高电平,通过示波器观察引脚电平始终为低电平状态,于是重新查看芯片datasheet,在引脚描述表格中发现了这样的说明
在图中可以看到PE1和PE2两个端口并没有推挽输出的功能,而开漏功能被标为"T",通过下面注释我们看到这样的描述
该描述说明这两个引脚是真正意义上的开漏,并没有进行上拉。看到这里相信大家都已经了然,要想使用这两个引脚的高电平输出功能,外部上拉电阻是不可缺少的,同时建议在程序配置中,将这两个引脚配置为低电平开漏输出。以保证程序运行时不会出错。
GPIO_Init(GPIOE,GPIO_PIN_1,GPIO_MODE_OUT_OD_LOW_FAST);
GPIO_Init(GPIOE,GPIO_PIN_2,GPIO_MODE_OUT_OD_LOW_FAST);