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