STM8C语言编程实验:GPIO输入输出控制.pdfVIP

  • 1
  • 0
  • 约1.4千字
  • 约 2页
  • 2026-03-10 发布于北京
  • 举报

STM8C语言编程实验:GPIO输入输出控制.pdf

STM8的C语言编程(3)――GPIO输出和输入

今天要进行的实验,是利用GPIO进行输入和输出。在ST的三合一开发板上,

按键接在GPIO的PD7上,LED接在GPIO的PD3上,因此我们要将GPIO的

PD7初始化成输入,PD3初始化成输出。

关于GPIO的引脚设置,主要是要初始化方向寄存器DDR,控制寄存器1(CR

1)和控制寄存器2(CR2),寄存器的每一位对应GPIO的每一个引脚。具体

的设置功能定义如下:

DDRCR1CR2引脚设置

000悬浮输入

001上拉输入

010中断悬浮输入

011中断上拉输入

100开漏输出

110推挽输出

1X1输出(最快速度为10MHZ)

另外,输出引脚对应的寄存器为ODR,输入引脚对应的寄存器为IDR。

下面的程序是检测按键的状态,当按键按下时,点亮LED,当按键抬起时,熄

灭LED。

同样也是利用ST的开发工具,先生成一个C语言程序的框架,然后修改其中的

main.c,修改后的代码如下。

编译通过后,到开发板,运行程序,按下按键,LED就点亮,抬起按键,L

ED就熄灭了。

另外,要注意,将STM8S207C_S.h拷贝到当前项目的目录下。

//程序描述:检测开发板上的按键,若按下,则点亮LED,若抬起,则熄灭LE

D

//按键接在MCU的GPIO的PD7上

//LED接在MCU的GPIO的PD3上

#includeSTM8S207C_S.h

main()

{

PD_DDR=0x08;

PD_CR1=0x08;//将PD3设置成推挽输出

PD_CR2=0x00;

while(1)//进入无限循环

{

if((PD_IDR0x80)0x80)//读入PD7的引脚信号

{

PD_ODR=PD_ODR0xF7;//如果PD7为1,则将PD3的输出设置

成0,熄灭LED

}

else

{

PD_ODR=PD_ODR|0x08;//否则,将PD3的输出设置成1,点亮L

ED

}

}

}

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档