【STM32】跑马灯实验主要程序代码分析
生活随笔
收集整理的這篇文章主要介紹了
【STM32】跑马灯实验主要程序代码分析
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- main.c
- led.c
- led.h
STM32 的 IO 口可以由軟件配置成如下 8 種模式:
STM32 的每個(gè) IO 口都有 7 個(gè)寄存器來(lái)控制。
main.c
#include "delay.h" #include "sys.h" #include "led.h" //ALIENTEK miniSTM32 開發(fā)板實(shí)驗(yàn) 1 //跑馬燈實(shí)驗(yàn) int main(void) {delay_init(); //延時(shí)函數(shù)初始化LED_Init(); //初始化與 LED 連接的硬件接口while(1){ LED0=0;LED1=1;delay_ms(300); //延時(shí) 300msLED0=1;LED1=0;delay_ms(300); //延時(shí) 300ms} }led.c
在配置 STM32 外設(shè)的時(shí)候,任何時(shí)候都要先使能該外設(shè)的時(shí)鐘。
#include "led.h" //初始化 PA8 和 PD2 為輸出口.并使能這兩個(gè)口的時(shí)鐘 //LED IO 初始化 void LED_Init(void) {GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOD, ENABLE); //使能 PA,PD 端口時(shí)鐘GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //LED0-->PA.8 端口配置GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽輸出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO 口速度為 50MHzGPIO_Init(GPIOA, &GPIO_InitStructure); //初始化 GPIOA.8GPIO_SetBits(GPIOA,GPIO_Pin_8); //PA.8 輸出高GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //LED1-->PD.2 端口配置GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽輸出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO 口速度為 50MHzGPIO_Init(GPIOD, &GPIO_InitStructure); //初始化 GPIOD.2GPIO_SetBits(GPIOD,GPIO_Pin_2); //PD.2 輸出高 }
因?yàn)?GPIOA 和 GPIOD 的 IO 口的初始化參數(shù)都是設(shè)置在結(jié)構(gòu)體變量 GPIO_InitStructure 中,因?yàn)閮蓚€(gè) IO 口的模式和速度都一樣,所以我們只用初始化一次,在 GPIOD.2 的初始化的時(shí)候就不需要再重復(fù)初始化速度和模式了。
led.h
#ifndef __LED_H #define __LED_H #include "sys.h" //LED 端口定義 #define LED0 PAout(8) // PA8 #define LED1 PDout(2) // PD2 void LED_Init(void);//初始化 #endif總結(jié)
以上是生活随笔為你收集整理的【STM32】跑马灯实验主要程序代码分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【STM32】SYSTEM文件夹介绍,d
- 下一篇: 【STM32】按键检测实验主要程序代码分