STM8S在一个程序中,引脚能够分别作为输入和输出轮流变化使用吗?

2019-07-19 20:30发布

芯片 芯片 LED和按键 LED和按键
    因为芯片和LED不在同一块PCB板,它们之间是用导线连接,为了减少导线数量,所以只采用了PC5和PC6两个IO口来控制。
1.PC5和PC6为输出口。PC6输出高电平,PC5输出低电平,这时候绿灯亮;
2.PC5和PC6为输出口。PC6输出低电平,PC5输出高电平,这时候黄灯亮;
3.PC5为输出口,PC6为输入口,这时候PB2就可以正常采样,用来判断SM1和SW两个按键是否按下,以及是哪一个按键按下。


    这时候PC6就要在输入和输出之间变化,结果造成串口一直主动发送数据FF。尝试过不变化输入和输出,都不会有数据发送,而且PC6直接作为输入端采样的结果是正确的。我在程序中试过只改变PC_DDR_DDR6的赋值和PC_DDR_DDR6、PC_CR1_C16、PC_CR1_C26都改变,结果都是一样。
    不知道搜索的关键字是不是不对,都没有找到有关的资料,只能在这边发帖麻烦一下大家了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
唯认真而
2019-07-20 12:41
正点原子 发表于 2018-6-10 02:08
当然是可以的,你切换模式即可。

原子哥,我上拉输入和浮空输入以及开漏输出和推挽输出都试过了,只要是切换模式就会有FF自动通过串口发出,不切换模式就不会,这有哪些原因会引起这个问题呢?因为已经自己想了很多天,自己能想到的可能性都试过了才来发帖寻求帮助的

一周热门 更多>