stm8s的io有DDR,IDR,ODR,CR1,CR2这几个寄存器。对于io的配置,其实看懂下面这张表就懂了。一般用到的也就是推挽输出,浮空输入和上拉输入。
下面以PC1脚为例说明该如何配置这三种模式。
推挽输出:
PC_DDR_DDR1 = 1;//io方向:输出
PC_CR1_C11 = 1;//因为DDR为1,所以CR1置1表示推挽输出模式
PC_ODR_ODR1 = 1;//1:输出高 , 0:输出低
说明,io的CR2寄存器默认为0,一般我不会去修改它的值。只有一次做模拟串口发送时将CR2配置为1
浮空输入:
PC_DDR_DDR1 = 0;//io方向:输入
PC_CR1_C11=0;//因为DDR为0,所以CR1为0表示浮空输入模式
说明:此时可以通过读PC_IDR_IDR1获取PC1输入电平的高低,stm8s复位情况下io为此模式,在进行adc采集时建议配置此种模式
上拉输入:
PC_DDR_DDR1 = 0;//io方向:输入
PC_CR1_C11=1;//因为DDR为0,所以CR1为1表示上拉输入模式
说明:在进行按键检测,输入捕获时建议配置此种模式