STM8 GPIO口是否为三态
大家好:请教一下大家,STM8单片机的IO口是否可实现三态:输出高电平、低电平、高阻态。
完全可以啊! 没任何问题:D:D:D 是的 关键是这个高阻态。 早上好! 本帖最后由 sssdd 于 2017-4-8 09:34 编辑
上电默认是高阻态,需要配置 配置寄存器,和输入输出寄存器。
他们是:
CR1 CR2 ODR IDR DDR
范例: 请忽略注释
//A口未使用
GPIOA->CR1=0x07;//推挽口输出 无上拉输入 DDR同值
GPIOA->CR2=0x00;//低速口输出 无中断输入 DDR同值
GPIOA->DDR=0x07;//0000 0111 输入输出 0输入1输出
GPIOA->ODR=0x00;//0000 0000 IO预设 A未使用
//B口未使用
GPIOB->CR1=0x30;//推挽口输出 无上拉输入 DDR同值
GPIOB->CR2=0x00;//低速口输出 无中断输入 DDR同值 PB4 PB5为低速口
GPIOB->DDR=0x30;//0011 0000 输入输出 0输入1输出
GPIOB->ODR=0x00;//1111 0000 IO预设 B未使用
GPIOC->CR1=0x78;//推挽口输出 无上拉输入 DDR同值
GPIOC->CR2=0x00;//高速口输出 无中断输入 DDR同值
GPIOC->DDR=0x78;//0111 1000 输入输出 0输入1输出
GPIOC->ODR=0x00;//0000 0000 IO预设 C7:C3
//PD5 TX PD6 RX PD3 data
GPIOD->CR1=0x3f;//推挽口输出 无上拉输入 DDR同值
GPIOD->CR2=0x00;//高速口输出 无中断输入 DDR同值
GPIOD->DDR=0x3b;//x01x 10xx 输入输出 0输入1输出
GPIOD->ODR=0x60;//0110 0000 IO预设 完全可以的 需要不同配置不同
页:
[1]