精準定時呼吸燈 STM32F103C8

2021-10-20 01:13:21 字數 1950 閱讀 8297

入門stm32的第一貼:

之前一直停留在51的水平,最近因為課題需要,硬著頭皮開始了stm32,主要是完成了以下學習目標:

1.完成了基於庫函式的stm32軟體框架的組建;

2.掌握了非中斷型的精準微秒級和毫秒級的延遲函式的使用。

主函式

/*

title:呼吸燈

author:小呼呼哈哈哈

*/#include

"led.h"

#include

"stm32f10x.h"

#include

"delay.h"

unsigned

int cycle1=

1000

,pwm_l;

intmain

(void

)gpio_resetbits

(gpiob,gpio_pin_15)

;delay_ms

(500);

delay_ms

(500);

for(pwm_l=cycle1-

1;pwm_l>

0;pwm_l--

)// gpio_setbits(gpiob,gpio_pin_15);//點亮

}}

非中斷型精準延遲函式

//不進入systic中斷精準延遲

#include

"stm32f10x.h"

#include

"delay.h"

void

delay_us

(u32 nus)

while

((temp&

0x01)&&

(!(temp&(1

<<16)

)));

//等待時間到達

systick->ctrl=

0x00

;//關閉計數器

systick->val =

0x00

;//清空計數器

}void

delay_ms

(u32 nms)

while

((temp&

0x01)&&

(!(temp&(1

<<16)

)));

//等待時間到達

systick->ctrl=

0x00

;//關閉計數器

systick->val =

0x00

;//清空計數器

}

delay.h函式

#include

"stm32f10x.h"

extern

void

delay_us

(u32 nus)

;extern

void

delay_ms

(u32 nms)

;

led函式

#include

"led.h"

void

led_init

(void

)

led.h函式

#ifndef __led_h

#define __led_h

#include

"stm32f10x.h"

/**************8位led的io口定義************/

#define pin_led (gpio_pin_8 | gpio_pin_9 | gpio_pin_10 | gpio_pin_11 | gpio_pin_12\

|gpio_pin_13 | gpio_pin_14 | gpio_pin_15)

void

led_init

(void);

#endif

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

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

嵌入式STM32F10學習 跑馬燈實驗

使用藍橋杯ct117e板子 庫函式版本 gpio輸出方式 推挽輸出 io口輸出高電平,led滅,輸出低電平,led點亮。鎖存器高電平開啟,低電平關閉 電路圖對應 鎖存口 le n le m pd2 led燈 d1 d8 h d0 h d7 m pc8 m pc15 define led0 pcout...

STM32f4基本定時器終端控制LED燈亮滅

stm32中的定時器分類 基本定時器 通用定時器 高階定時器 429有2 個高階定時器 10個通用定時器 2個基本定時器 基本定時器功能簡介 1 計數器 16bit 只能向上計數,只有 tim6 和tim7 2 沒有外部的 gpio 是內部資源,只能用來定時 3 時鐘來自 pclk1 可實現 1 6...