STM32學習篇 跑馬燈

2022-07-03 05:48:09 字數 1751 閱讀 5663

一、工作目錄

user:組user中一般有main.c、stm32f10x_it.c、system_stm32f10x.c,主要用來編寫main函式,存放的主要是使用者**,stm32f10x_it.c中主要用來定義部分中斷服務函式,

system_stm32f10x.c主要定義systeminit等時鐘初始化函式

hardware:下面存放的是每個實驗的外設驅動**,他的實現是通過呼叫fwlib,下面的韌體庫檔案實現的,比如led.c 裡面呼叫stm32f10x_gpio.c 裡面的函式對led 進行初始化,

這裡面的函式是講解的重點。後面的實驗中可以看到會引入多個原始檔。

system:組system 是alientek 提供的共用**,包含systick 延時函式,io 口位帶操作以及串列埠相關函式

④core:組core 下面存放的是韌體庫必須的核心檔案和啟動檔案。這裡面的檔案使用者不需要修改

fwlib:組fwlib 下面存放的是st 官方提供的外設驅動韌體庫檔案,這些檔案大家可以根據工程需要來新增和刪除。每個stm32f10x_ppp.c 原始檔對應乙個stm32f10x_ppp.h 標頭檔案。

readme:readme 分組主要就是新增了readme.txt 說明檔案,對實驗操作進行相關說明。

組之間的層次結構:

二、stm32的io口

8種模式:

1、輸入浮空

2、輸入上拉

3、輸入下拉

4、模擬輸入

5、開漏輸出

6、推挽輸出

7、推挽式復用功能

8、開漏復用功能

燒錄程式的配置(使用st-link)

**思路:先定義led燈的初始化函式,初始化io口,設定io口的輸出輸入模式,在main函式中呼叫初始化和延時函式,並設定燈的狀態(1:亮,0:滅)

hardware:

led.c:

#include "led.h"

void led_init(void)

led.h:

#ifndef __led_h

#define __led_h

#include "sys.h"

// led埠定義

#define led0 pdout(6)// pd6

#define led1 peout(6)// pe6

void led_init(void);

#endif

main.c:

#include "sys.h"

#include "delay.h"

#include "usart.h"

#include "led.h"

int main(void)

}

STM32跑馬燈實驗

本次跑馬燈實驗主要用到pb6 pb9幾個埠 include led.h void led init void 自定義led燈初始化函式 標頭檔案中主要是一些巨集定義和位帶操作 ifndef led h define led h include stm32f10x.h define led1 on g...

stm32跑馬燈實驗

本文記錄stm32mini開發板實驗 普通跑馬燈 回歸gpio基礎知識 每組io口含有下面7個暫存器,7個暫存器一共可以控制一組gpio的16個io口。gpiox crl 埠配置低暫存器 gpiox crh 埠配置高暫存器 gpiox idr 埠輸入暫存器 gpiox odr 埠輸出暫存器 gpio...

STM32 跑馬燈實現

走馬燈實現 實現原理 依次從頭到尾點亮8個燈 列如 第乙個燈賦值低電平 點亮 延遲之後 暫未確定多少s 不使用燈暫存器之後,系統自動熄滅,在點亮下乙個燈,依次往下 include stm32f10x.h define uint unsigned int void delay uint time vo...