欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

stm8s开发(二) GPIO的使用:点亮LED!

发布时间:2025/3/21 编程问答 40 豆豆
生活随笔 收集整理的这篇文章主要介绍了 stm8s开发(二) GPIO的使用:点亮LED! 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

通用输入输出口(GPIO)是我们使用单片机最基本的,主要功能:

● 端口的各个位可以被单独配置

● 可选择的输入模式:浮动输入和带上拉输入

● 可选择的输出模式:推挽式输出和开漏输出

● 外部中断可以单独使能和关闭


用户手册上描述:

每一个端口都有一个输出数据寄存器(ODR),一个引脚输入寄存器(IDR)和一个数据方向寄存器(DDR) 总是同相关的。控制寄存器1(CR1)和控制寄存器2(CR2)用于对输入/输出进行配置。任何一个I/O引脚可以通过对DDR,ODR,CR1和CR2寄存器的相应位进行编程来配置。

各种不同配置总结如下:

配置模式DDRCR1CR2配置模式上拉电阻
输入000悬浮输入 OFF
010上拉输入ON
001中断悬浮输入 OFF
011中断上拉输入ON
输出100开漏输出 OFF
110推挽输出
1x1输出(最快速度10MHZ) 
xxx真正的开漏输出未采用

这里作为练习控制3个LED,分别是PA1,PA2,PD4,都设置为 推挽输出 模式。

以下是初始化函数:

  • //CTRL0 PA1
  • //CTRL1 PA2
  • //CTRL2 PD4
  • void GPIO_init(void)
  • {
  • PA_DDR|=0x03;
  • PA_CR1|=0x03;
  • PA_CR2|=0x00;
  • PD_DDR|=0x10;
  • PD_CR1|=0x10;
  • PD_CR2|=0x00;
  • }

  • 需要控制IO口的电平,需要对于ODR寄存器进行修改,读表可得知1为高电平,0为低电平。

    这里只需要对相应的位进行修改数值。


  • void CTRL0_HIGH(void)
  • {
  • PA_ODR|=0x01;
  • }
  • void CTRL0_LOW(void)
  • {
  • PA_ODR&=0xFE;
  • }
  • void CTRL0_Reverse(void)
  • {
  • PA_ODR^=0x01;
  • }
  • 《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读

    总结

    以上是生活随笔为你收集整理的stm8s开发(二) GPIO的使用:点亮LED!的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。