新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > stm8s開發(fā)(二) GPIO的使用:點(diǎn)亮LED!

        stm8s開發(fā)(二) GPIO的使用:點(diǎn)亮LED!

        作者: 時(shí)間:2017-09-13 來源:網(wǎng)絡(luò) 收藏

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

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

          ● 端口的各個(gè)位可以被單獨(dú)配置

          ● 可選擇的輸入模式:浮動(dòng)輸入和帶上拉輸入

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

          ● 外部中斷可以單獨(dú)使能和關(guān)閉

          用戶手冊上描述:

          每一個(gè)端口都有一個(gè)輸出數(shù)據(jù)寄存器(ODR),一個(gè)引腳輸入寄存器(IDR)和一個(gè)數(shù)據(jù)方向寄存器(DDR) 總是同相關(guān)的。控制寄存器1(CR1)和控制寄存器2(CR2)用于對(duì)輸入/輸出進(jìn)行配置。任何一個(gè)I/O引腳可以通過對(duì)DDR,ODR,CR1和CR2寄存器的相應(yīng)位進(jìn)行編程來配置。

          各種不同配置總結(jié)如下:

          配置模式DDRCR1CR2配置模式上拉電阻

          輸入000懸浮輸入 OFF

          010上拉輸入ON

          001中斷懸浮輸入 OFF

          011中斷上拉輸入ON

          輸出100開漏輸出 OFF

          110推挽輸出

          1x1輸出(最快速度10MHZ)

          xxx真正的開漏輸出未采用

          這里作為練習(xí)控制3個(gè)LED,分別是PA1,PA2,PD4,都設(shè)置為 推挽輸出 模式。

          以下是初始化函數(shù):

          //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口的電平,需要對(duì)于ODR寄存器進(jìn)行修改,讀表可得知1為高電平,0為低電平。

          這里只需要對(duì)相應(yīng)的位進(jìn)行修改數(shù)值。

          void CTRL0_HIGH(void)

          {

          PA_ODR|=0x01;

          }

          void CTRL0_LOW(void)

          {

          PA_ODR&=0xFE;

          }

          void CTRL0_Reverse(void)

          {

          PA_ODR^=0x01;

          }

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

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



        關(guān)鍵詞: stm8s GPIO

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 攀枝花市| 黑河市| 运城市| 城固县| 乌恰县| 安庆市| 六安市| 雅安市| 琼中| 固镇县| 武鸣县| 色达县| 犍为县| 通化市| 时尚| 静海县| SHOW| 东乡族自治县| 宜阳县| 东乡县| 东乌珠穆沁旗| 隆回县| 临江市| 民乐县| 沁阳市| 广宗县| 大悟县| 抚远县| 托克逊县| 丹寨县| 长兴县| 雷山县| 泊头市| 英山县| 天祝| 萝北县| 彭泽县| 遂溪县| 自贡市| 云林县| 河北区|