STM32的標準庫使用學習

2022-09-20 12:51:12 字數 1905 閱讀 2932

用乙個led的輸出配置,和按鍵的輸入配置來進行記錄。

初始化配置

void bspledinit()

}

常用api

gpio_resetbits(gpioc,gpio_pin_13);

gpio_setbits(gpioc,gpio_pin_13);

初始化配置

void bspkeyinit()

}

常用api

gpio_readoutputdatabit(gpioa, gpio_pin_3);

外部中斷配置主要包含3個部分,引腳配置、外部中斷配置、nvic配置

void bspextiinit()

//中斷線初始化

//nvic初始化

}

外部中斷函式

void exti0_irqhandler(void)

exti_clearitpendingbit(exti_line0);}}

定時器配置主要包含定時器配置和nvic配置

void bsptim3init(uint16_t arr,uint16_t psc)

//nvic初始化

//定時器使能以及開啟中斷

}

定時器中斷服務函式

void tim3_irqhandler(void)

}

串列埠主要包含引腳初始化、串列埠配置和nvic配置

void bspusartinit(u32 bound)

//usart1 nvic 配置

//usart 初始化設定

}

串列埠中斷服務函式

void usart1_irqhandler(void)

}

#include "bsp_delay.h"

static u8 fac_us=0; //us延時倍乘數

static u16 fac_ms=0; //ms延時倍乘數,在ucos下,代表每個節拍的ms數

void delayinit()

void delayus(u32 nus)

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

systick->ctrl&=~systick_ctrl_enable_msk; //關閉計數器

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

}//延時nms

//注意nms的範圍

//systick->load為24位暫存器,所以,最大延時為:

//nms<=0xffffff*8*1000/sysclk

//sysclk單位為hz,nms單位為ms

//對72m條件下,nms<=1864

void delayms(u16 nms)

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

systick->ctrl&=~systick_ctrl_enable_msk; //關閉計數器

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

}

#ifndef _bsp_sys_h

#define _bsp_sys_h

#include "stm32f10x.h"

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

//具體實現思想,參考void bspadcinit(void)

//adc 初始化

}

常用函式

//獲得adc值

//ch:通道值 0~3

u16 getadc(u8 ch)

初始STM32標準庫

庫檔案一開始包含五個檔案 htmresc libraries project utilities stm32f10x stdperiph lib um.chm下面一一介紹 裡邊只有兩張,一張cmsis的logo,另一張是st的logo 裡邊是st官方實驗板的例程,目前不會用到。這個是庫幫助文件,我們...

STM32標準庫的介紹以及使用

因為基於cortex系列晶元採用的核心都是相同的,區別主要為核外的片上的差異 片上外設主要有晶元生產商來定 這些差異卻導致軟體在同核心,不同外設的晶元上移植困難。為了解決不同晶元廠商生產的cortex微控制器軟體的相容性問題,arm與晶元廠商建立了cmsis標準。cmsis層位於硬體層和使用者層之間...

STM32 標準韌體庫檔案分析

1 彙編編寫的啟動檔案 startup stm32f10x hd.s 設定堆疊指標 設定pc指標 初始化中斷向量表 配置系統時鐘 對用c庫函式 main最終去到c的世界 2 時鐘配置檔案 system stm32f10x.c 把外部時鐘hse 8m,經過pll倍頻為72m。3 外設相關的 stm32...