• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > stm8s開發(二) GPIO的使用:點亮LED!

    stm8s開發(二) GPIO的使用:點亮LED!

    作者: 時間:2017-09-13 來源:網絡 收藏

      通用輸入輸出口()是我們使用單片機最基本的,主要功能:

    本文引用地址:http://www.czjhyjcfj.com/article/201709/364242.htm

      ● 端口的各個位可以被單獨配置

      ● 可選擇的輸入模式:浮動輸入和帶上拉輸入

      ● 可選擇的輸出模式:推挽式輸出和開漏輸出

      ● 外部中斷可以單獨使能和關閉

      用戶手冊上描述:

      每一個端口都有一個輸出數據寄存器(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 _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;

      }

      附上在IAR環境下的項目工程,包括了SPI、IIC、PWM、AWU、USART、EEPROM等片上硬件的初始化代碼。

      http://download.csdn.net/detail/devintt/9454188



    關鍵詞: stm8s GPIO

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 钟祥市| 东光县| 奇台县| 嘉义县| 拉孜县| 水城县| 彰化县| 资中县| 泾阳县| 济宁市| 太原市| 千阳县| 泉州市| 德庆县| 许昌县| 桦川县| 江门市| 台江县| 磐石市| 焦作市| 庆城县| 泰来县| 东乌珠穆沁旗| 长岭县| 象山县| 赤壁市| 呼和浩特市| 富阳市| 平山县| 蓬莱市| 宽城| 双鸭山市| 崇左市| 民和| 宜良县| 锡林浩特市| 高邑县| 永清县| 津南区| 仪陇县| 梁平县|