关于stm8 端口无法读取高电平
我将stm8AF5288的端口初始化为: GPIO_Init(GPIOE,GPIO_PIN_2,GPIO_MODE_IN_FL_NO_IT );//浮空输入无中断模式然后:
if( GPIO_ReadInputPin(GPIOE, GPIO_PIN_2)==1) 就点亮了的灯;
我把端口PE2接到3.3v,发现灯不亮
如果把 if( GPIO_ReadInputPin(GPIOE, GPIO_PIN_2)==0)就点亮了的灯;
把端口姐在GND上灯就亮了
我试了好多次和改变端口模式都是这样是不是Stm8无法读取高电平吗
请各位大神帮忙看一下
各位大神给点意见呗 第一次发帖求助 拜托了 纠结好几天了 本帖最后由 sincomaster 于 2018-8-4 17:54 编辑
写得有点乱没看太明白,帮顶你没写你的LED是拉电流还是灌电流驱动
驱动LED为什么要读取高电平呢?不是直接输出高电平或低电平就可以了吗
sincomaster 发表于 2018-8-4 17:52
写得有点乱没看太明白,帮顶你没写你的LED是拉电流还是灌电流驱动
驱动LED为什么要读取高电平呢?不是直接输 ...
LED只是我用来测试底层驱动的,
我们的触发信号是高电平。LED只是用来,测试端口读取高电平的配置是否通,LED驱动没问题的 什么跟什么呀,好好把你的逻辑缕缕。
LED是用哪个IO点的?你这只有一个输入的IO。
输入IO浮空,外部给输入IO接1的话,就会检测到1;接-0的话就会检测到0。
如果你输入IO要接按键,那么IO需要接上接电阻,按键接IO与GND。按下按键的时候与GND导通,检测到0;释放按键的时候,由上拉电阻决定了状态1。 看看你确认的接口对应的代码是否正确 楼主把PE2设置成浮动输入,就必须外部增加上拉电阻才能正确读取状态。 stm8这个读取写法有BUG,不确定是不是这个问题,直接用PA->IDR寄存器读取那一位就可以了。 1、一般LED驱动的话,都是低电平点亮,高电平灭灯,单片机的IO驱动能力可能不够;
2、接LED的话,应该是输出模式才对呀;
3、输入根据你的应用最好配置成下拉输入或者下拉输入。 楼主提问需要描述清楚才行,因为大家并不知道你想干什么;
你可以贴出来 IO 那一部分的原理图,说明你要实现的功能,你的实现方法是什么,出现了什么问题。
这样大家才能帮到你。
页:
[1]
2