嵌入式STM32F10學習 跑馬燈實驗

2021-10-10 08:17:42 字數 2643 閱讀 8857

使用藍橋杯ct117e板子

庫函式版本

— gpio輸出方式:推挽輸出

— io口輸出高電平,led滅,輸出低電平,led點亮。

— 鎖存器高電平開啟,低電平關閉

電路圖對應

鎖存口:le —— n le —— m pd2

led燈 :d1~d8—— h d0~h d7—— m pc8~m pc15

#define led0 pcout(8)   

#define led1 pcout(9)

#define led2 pcout(10)

#define led3 pcout(11)

#define led4 pcout(12)

#define led5 pcout(13)

#define led6 pcout(14)

#define led7 pcout(15)

void

gpio_setbits

(gpio_typedef* gpiox, uint16_t gpio_pin)

;//輸出高電平

void

gpio_resetbits

(gpio_typedef* gpiox, uint16_t gpio_pin)

//輸出低電平

void

gpio_init

(gpio_typedef* gpiox, gpio_inittypedef*gpio_initstruct)

功能描述: 根據gpio_initstruct中指定的引數初始化外設gpiox暫存器

輸入引數1: gpiox:x可以是a,b,c,d或者e,來選擇gpio外設

輸入引數2: gpio_initstruct:指向結構gpio_inittypedef的指標,包含了外設gpio的配置資訊

由此我們知道第二個引數「&gpio_initstructure」包含的是外設gpio的配置資訊,主函式開頭我們進行了這樣乙個私有資料宣告:

gpio_inittypedef  gpio_initstructure;
順藤摸瓜,我們在標頭檔案「stm32f10x_gpio.h」看到對gpio_inittypedef 的定義:

typedef

struct

gpio_inittypedef;

在這個之前,我已經對gpio_inittypedef中的各個引數進行了定義,對應的正是void gpio_init(gpio_typedef* gpiox, gpio_inittypedef* gpio_initstruct)輸入引數2的描述「指向結構gpio_inittypedef的指標,包含了外設gpio的配置資訊」。

—— led.c檔案

/********************************* 

1.鎖存口:le —— n le —— m pd2

led燈 :d1~d8—— h d0~h d7—— m pc8~m pc15

2.is_function_state(state)是用於狀態引數判斷的 在函式中會呼叫它來判斷你輸入的狀態引數

是不是enable disable之一 如果你輸入的引數是他倆其中的乙個 那麼引數是合法的 運算結果就是1

如果引數不合法那運算結果就為0了

*********************************/

#include

"led.h"

void

led_init

(void

)

—— led.**件

/************************************

標頭檔案中使用#ifndef #define #endif條件編譯,避免標頭檔案內容重複定義

/ #ifndef 字串

#define 上述字串

#endif

/一般放在標頭檔案裡面,作用就是以防你在.c檔案裡面不小心重複包含標頭檔案的時候不會報錯

*************************************/

#ifndef __led_h

#define __led_h

#include

"stm32f10x.h"

void

led_init

(void);

//函式宣告

#endif

—— 主函式main.c

#include

"stm32f10x.h"

#include

"led.h"

#include

"delay.h"

intmain

(void

)}

嵌入式學習 STM32F10 GPIO工作原理

使用藍橋杯ct117e板子 適用於stm32f1xx gpio mode out od 開漏輸出 gpio mode out pp 推挽輸出 gpio mode af od 復用開漏輸出 gpio mode af pp 復用推挽輸出 gpio mode in floating 浮空輸入 gpio m...

STM32F10系列的管腳復用功能和AFIO

最近用stm32的spi介面和ti的cc3000通訊,首先配置spi介面,按照網路關於spi介面的配置例程配置好以後,發現spi不工作,用while迴圈傳送資料時,clk和mosi管腳沒有輸出訊號,然後各種找問題 首先檢查時鐘,然後看看各個管腳能不能被置位,復位,發現其gpio功能都是正常的。後來認...

STM32嵌入式開發學習筆記(一)

stm32cubemx是st官方推出的一種stm32設定和初始化c 的生成器。它可以直觀的選擇stm32微控制器 配置微控制器 自動處理引腳衝突 動態設定確定時鐘樹 動態確定引數設定的外圍和中介軟體模式和初始化。cubemx生成的 可以在keil iar gcc等程式設計軟體上面使用。簡單理解,就是...