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条回答
唯认真而
1楼-- · 2019-07-20 01:21
 精彩回答 2  元偷偷看……
唯认真而
2楼-- · 2019-07-20 04:36
在输入和输出之间进行变化,差不多短的100ms左右就要变化一次了。不知道有没有可能是因为时间太短造成的还是说STM8S不支持这样。
正点原子
3楼-- · 2019-07-20 09:26
 精彩回答 2  元偷偷看……
唯认真而
4楼-- · 2019-07-20 12:41
正点原子 发表于 2018-6-10 02:08
当然是可以的,你切换模式即可。

原子哥,我上拉输入和浮空输入以及开漏输出和推挽输出都试过了,只要是切换模式就会有FF自动通过串口发出,不切换模式就不会,这有哪些原因会引起这个问题呢?因为已经自己想了很多天,自己能想到的可能性都试过了才来发帖寻求帮助的
正点原子
5楼-- · 2019-07-20 15:42
唯认真而 发表于 2018-6-11 08:46
原子哥,我上拉输入和浮空输入以及开漏输出和推挽输出都试过了,只要是切换模式就会有FF自动通过串口发出 ...

说明有干扰,这种没办法避免,只能通过软件识别,处理。

一周热门 更多>