點亮LED燈(韌體庫版)

2021-10-21 17:36:30 字數 3242 閱讀 2928

#include

"stm32f10x.h"

// 相當於51微控制器中的 #include

#include

"bsp_led.h"

intmain

(void

)}

#include

"bsp_led.h"

/*bsp表示board support packet,表示板級支援包,適用於特定板,移植時需要注意根據硬體介面做一定調整。

*/void

delay

(unsigned

int a)

void

led_gpio_config

(void)/*

功能:讓rgb燈按紅黃綠青藍紫依次亮起,但未使用pwm調節。

*/void

led_collour

(void

)

#ifndef __bsp_led_h

#define __bsp_led_h

#include

"stm32f10x.h"

#define led_g_gpio_pin gpio_pin_0

//綠燈io口

#define led_g_gpio_port gpiob

#define led_g_gpio_clk rcc_apb2periph_gpiob

//綠燈時鐘使能暫存器

#define led_r_gpio_pin gpio_pin_5

//紅燈io口

#define led_r_gpio_port gpiob

#define led_r_gpio_clk rcc_apb2periph_gpiob

//紅燈時鐘使能暫存器

#define led_b_gpio_pin gpio_pin_1

//藍燈io口

#define led_b_gpio_port gpiob

#define led_b_gpio_clk rcc_apb2periph_gpiob

//藍燈時鐘使能暫存器

#define gpio_high(port,pin)

//輸出為高電平

#define gpio_low(port,pin)

//輸出為低電平

#define gpio_toggle(port,pin)

//輸出反轉狀態

#define led_g_toggle gpio_toggle(led_g_gpio_port, led_g_gpio_pin)

#define led_g_on gpio_low(led_g_gpio_port, led_g_gpio_pin)

#define led_g_off gpio_high(led_g_gpio_port, led_g_gpio_pin)

#define led_r_toggle gpio_toggle(led_r_gpio_port, led_r_gpio_pin)

#define led_r_on gpio_low(led_r_gpio_port, led_r_gpio_pin)

#define led_r_off gpio_high(led_r_gpio_port, led_r_gpio_pin)

#define led_b_toggle gpio_toggle(led_b_gpio_port, led_b_gpio_pin)

#define led_b_on gpio_low(led_b_gpio_port, led_b_gpio_pin)

#define led_b_off gpio_high(led_b_gpio_port, led_b_gpio_pin)

//綠燈

#define led_green \

led_g_on;\

led_r_off;\

led_b_off;

//紅燈

#define led_red \

led_g_off;\

led_r_on;\

led_b_off;

//藍燈

#define led_blue \

led_g_off;\

led_r_off;\

led_b_on;

//黃燈(綠+紅)

#define led_yellow \

led_g_on;\

led_r_on;\

led_b_off;

//紫燈(紅+藍)

#define led_purple \

led_g_off;\

led_r_on;\

led_b_on;

//青燈(綠+藍)

#define led_cyan \

led_g_on;\

led_r_off;\

led_b_on;

void

delay

(unsigned

int a)

;void

led_gpio_config

(void);

void

led_collour

(void);

#endif

/*__bsp_led_h*/

使用韌體庫點亮led燈需要的步驟:

在bsp_led.**件中配置硬體介面資訊。

#define led_g_gpio_pin        gpio_pin_0			

//綠燈io口

#define led_g_gpio_port gpiob

#define led_g_gpio_clk rcc_apb2periph_gpiob

//綠燈時鐘使能暫存器

在bsp_led.c檔案中寫led燈配置函式void led_gpio_config(void);其中內容包括定義gpio結構體,開啟gpio口的時鐘,配置io口的引腳、輸出方式,速度,初始化io口。

void

led_gpio_config

(void

)

在main.c函式呼叫led燈配置函式,即可完成配置。根據需要呼叫stm32f10x_gpio.**件中的函式來操控led燈的亮滅。

點亮LED燈(一)

想當初都是用彙編來編寫微控制器的程式,那滋味現在想來都是滿滿的回憶,還是用c語言寫起來爽快啊!用c寫微控制器程式,只需要引入標頭檔案即可,實際上該標頭檔案只是定義了特殊功能暫存器位址。為了今後使用方便,我們封裝乙個函式,用來開關led燈,通過引數來控制操作的p埠,並且引入掩碼來操作單個和多個bit位...

Uboot中點亮LED燈

1 硬體要求 1 at91sam9260平台 2 pc6 pc10 兩個引腳連測試板的兩個 led燈 2 u boot版本 u boot 1.3.4 3 實現過程 在原始碼 u boot 1.3.4 board atmel at91sam9260ek at91sam9260ek.c 檔案的中做如下操...

按鍵點亮LED燈(中斷)

設定pb11為下降沿觸發,初始化中斷模式 gpio inittypedef gpio initstructure exti inittypedef exti initstructure nvic inittypedef nvic initstructure 配置管腳時鐘和復用時鐘 rcc apb2p...