日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

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

编程问答

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

發布時間:2025/3/21 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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!的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。