圖:i/o埠位的基本結構
stm32f103c8t6共有2組gpio埠:pa、pb,每組16個埠。每個埠有兩個32位配置暫存器(gpiox_crl,gpiox_crh),兩個32位資料暫存器(gpiox_idr,gpiox_odr),乙個32位置位/復位暫存器(gpiox_bsrr),乙個16位復位暫存器(gpiox_brr)和乙個32位鎖定暫存器(gpiox_lckr)。
gpio埠的每個位可以由軟體分別配置成多種工作模式:
—輸入浮空
—輸入上拉
—輸入下拉
—模擬輸入
—開漏輸出
—推挽式輸出
—推挽式復用功能(本次實驗使用該功能)
—開漏復用功能
1、使能gpio的時鐘
從上面的系統結構圖可見,gpiob位於apb2系統匯流排上,因此,gpio的時鐘使能使用如下函式:
rcc_apb2periphclockcmd(rcc_apb2periph_gpiob,enable);
2、配置gpiob埠到第8個io口
gpio_inittypedef gpio_initstruct;
gpio_initstruct.gpio_pin=gpio_pin_8;
3、配置pb8為推挽輸出模式(配置gpio_moder)
gpio_initstruct.gpio_mode=gpio_mode_out_pp; //推挽輸出模式
5、配置pb8的輸出速度為50mhz
gpio_initstruct.gpio_speed=gpio_speed_50mhz;
6、初始化gpio(初始化相應的暫存器)
gpio_init(gpiob,&gpio_initstruct);
經過上面的分析,呼叫stm32標準庫驅動led。
main.c檔案如下:
#include "stm32f10x.h"
void delay(int cnt);
int main(void) }
void delay(int cnt)
{ int i,j;
for(i=0;i筆者:2023年8月17日,雲南昆明。
STM32學習筆記(一) 點亮乙個LED
最近報名了2017全國大學生電子設計競賽,我們學校是第一次參加這個比賽,由於8 9月份就要比賽了,所以現在準備是比較晚的了,指導老師說只能做控制類的題目了,讓我們學習一下stm32微控制器,51到時候肯定不夠用了,正好前幾天買了一塊stm32f103zet6的最小系統,那就趕緊學習吧!從 學習呢?同...
STM32學習筆記(一) 點亮乙個LED
最近報名了2017全國大學生電子設計競賽,我們學校是第一次參加這個比賽,由於8 9月份就要比賽了,所以現在準備是比較晚的了,指導老師說只能做控制類的題目了,讓我們學習一下stm32微控制器,51到時候肯定不夠用了,正好前幾天買了一塊stm32f103zet6的最小系統,那就趕緊學習吧!從 學習呢?同...
用RVCT編譯STM32點亮LED
板子用的微芯力科的三合一微控制器開發評估套件,要點亮的兩個led接在pb5,pb6上。先寫main.c了 define rcc apb2enr volatile unsigned long 0x40021018 時鐘使能暫存器 define gpiob crl volatile unsigned l...