STM32跑馬燈實驗

2021-09-07 23:23:46 字數 1445 閱讀 7381

/*本次跑馬燈實驗主要用到pb6~pb9幾個埠*/

#include "led.h"

void led_init(void) //自定義led燈初始化函式

/*標頭檔案中主要是一些巨集定義和位帶操作*/

#ifndef __led_h

#define __led_h

#include "stm32f10x.h"

#define led1_on gpio_setbits(gpiob, gpio_pin_6)

#define led1_off gpio_resetbits(gpiob, gpio_pin_6)

#define led2_on gpio_setbits(gpiob, gpio_pin_7)

#define led2_off gpio_resetbits(gpiob, gpio_pin_7)

#define led3_on gpio_setbits(gpiob, gpio_pin_8)

#define led3_off gpio_resetbits(gpiob, gpio_pin_8)

#define led4_on gpio_setbits(gpiob, gpio_pin_9)

#define led4_off gpio_resetbits(gpiob, gpio_pin_9)

//位帶操作,實現51類似的gpio控制功能

//具體實現思想,參考systick->val=0x00;//清空計數器

systick->ctrl=0x01;//使能,減到零是無動作,採用外部時鐘源

do while((temp&0x01)&&(!(temp&(1<<16))));//等待時間到達

systick->ctrl=0x00; //關閉計數器

systick->val =0x00; //清空計數器

}void delay_ms(u16 nms)

while((temp&0x01)&&(!(temp&(1<<16))));//等待時間到達

systick->ctrl=0x00; //關閉計數器

systick->val =0x00; //清空計數器

}

#ifndef __delay_h

#define __delay_h

#include "stm32f10x.h"

void delay_us(u32 nus);

void delay_ms(u16 nms);

#endif

/*引用標頭檔案是為了呼叫其中定義的函式*/

#include "stm32f10x.h"

#include "delay.h"

#include "led.h"

int main(void)

}

stm32跑馬燈實驗

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

STM32 跑馬燈實驗

實驗環境 stm32開發板 keil uvision4 flymcu.exe 1.建立跟資料夾 base 名稱任意 再在其下建立四個子資料夾 2.在 hardware 下,放入跑馬燈的資料夾 led 其下是 led.c 和 led.h 3.system 資料夾 4.user 資料夾,建立檔案 tes...

STM32 跑馬燈實現

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