初始化配置
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)定時器配置主要包含定時器配置和nvic配置exti_clearitpendingbit(exti_line0);}}
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...