|
本帖最后由 _4061N_ 于 2019-6-20 19:05 編輯
如題,我是剛剛從51單片機(jī)入門的STM32,看到庫函數(shù)操作凌亂的一匹。
所以將STM32F1的所有GPIO配置的位帶別名區(qū)的寄存器地址都定義了名字,使用這個(gè)定義頭文件,可以不必使用庫函數(shù),直接去完成點(diǎn)亮LED燈的首要任務(wù)......(加快51的代碼移植)
而且我感覺這個(gè)頭文件將來一定是有用的。(整整打了2000行宏定義)
我覺得這個(gè)東西很方便,所以現(xiàn)在將其分享出來。
頭文件作用:幫助直接操作特定IO口的狀態(tài)、可以通過一個(gè)符號就實(shí)現(xiàn)單個(gè)IO口的初始化(每個(gè)IO的初始化實(shí)際最多生成兩句C代碼,已經(jīng)是最簡形式了)。
使用方式看單片機(jī)代碼
補(bǔ)充:現(xiàn)今準(zhǔn)備將所有寄存器都搞一下,持續(xù)更新......//已完成內(nèi)容:
/*定時(shí)器寄存器組TIMx (通用(2、3、4、5 ) + 基本(6、7))
TIMx_CR1 //控制寄存器 1
TIMx_CR2 //控制寄存器 2
TIMx_SMCR //從模式控制寄存器
TIMx_DIER //DMA/ 中斷使能寄存器
TIMx_SR //狀態(tài)寄存器
TIMx_EGR //事件產(chǎn)生寄存器
TIMx_CCMR1 //捕獲/ 比較模式寄存器 1
TIMx_CCMR2 //捕獲/ 比較模式寄存器 2
TIMx_CCER //捕獲/ 比較使能寄存器
TIMx_CNT //計(jì)數(shù)器
TIMx_PSC //預(yù)分頻器
TIMx_ARR //自動(dòng)重裝載寄存器
TIMx_CCR1 //捕獲/ 比較寄存器 1
TIMx_CCR2 //捕獲/ 比較寄存器 2
TIMx_CCR3 //捕獲/ 比較寄存器 3
TIMx_CCR4 //捕獲/ 比較寄存器 4
TIMx_DCR //DMA 控制寄存器
TIMx_DMAR //連續(xù)模式的DMA 地址
*/
/*外部中斷配置寄存器組:
AFIO_EXTICR1 //外部中斷配置寄存器1
AFIO_EXTICR2 //外部中斷配置寄存器2
AFIO_EXTICR3 //外部中斷配置寄存器3
AFIO_EXTICR4 //外部中斷配置寄存器4
*/
/*EXTI中斷與事件寄存器組:
EXTI_IMR //中斷屏蔽寄存器
EXTI_EMR //事件屏蔽寄存器
EXTI_RTSR //上升沿觸發(fā)選擇寄存器
EXTI_FTSR //下降沿觸發(fā)選擇寄存器
EXTI_SWER //軟件中斷事件寄存器
EXTI_PR //掛起寄存器
*/
/*GPIO配置寄存器組:(帶操作)
GPIOx_CRL //GPIOx_配置寄存器1
GPIOx_CRH //GPIOx_配置寄存器2
GPIOx_IDR //GPIOx_輸入數(shù)據(jù)寄存器
GPIOx_ODR //GPIOx_輸出數(shù)據(jù)寄存器
GPIOx_BSRR //GPIOx_位設(shè)置/ 清除寄存器,寫0無效
GPIOx_BRR //GPIOx_位清除寄存器,寫0無效
GPIOx_LCKR //GPIOx_配置鎖定寄存器
*/
/*RCC配置寄存器組:
RCC_CR //時(shí)鐘控制寄存器
RCC_CFGR //時(shí)鐘配置寄存器
RCC_CIR //時(shí)鐘中斷寄存器
RCC_APB2_RSTR //APB2外設(shè)復(fù)位寄存器,寫0無效
RCC_APB1_RSTR //APB1外設(shè)復(fù)位寄存器,寫0無效
RCC_AHB_ENR //AHB外設(shè)時(shí)鐘使能寄存器
RCC_APB2_ENR //APB2外設(shè)時(shí)鐘使能寄存器
RCC_APB1_ENR //APB1外設(shè)時(shí)鐘使能寄存器
RCC_BDCR //備份域控制寄存器
RCC_CSR //控制/狀態(tài)寄存器
RCC_AHBRSTR //AHB 外設(shè)時(shí)鐘復(fù)位寄存器
RCC_CFGR2 //時(shí)鐘配置寄存器 2
*/
- //include 這個(gè)頭文件
- #define NRF24L01_CE PA4_O
- #define NRF24L01_CSN PC4_O
- #define NRF24L01_SCK PA5_O
- #define NRF24L01_MOSI PA7_O
- #define NRF24L01_MISO PA6_I
- #define NRF24L01_IRQ PC5_I
- //include NRF24L01軟驅(qū)動(dòng)頭文件
- void GPIO_Configuration(void )
- {
- //NRF24L01配置
- PA4_SET_50M_PP //注意:這里是沒有分號的
- PC4_SET_50M_PP
- PA5_SET_50M_PP
- PA7_SET_50M_PP
- PA6_SET_IPU
- PC5_SET_IPD
- PB0_SET_50M_PP
- PB1_SET_50M_PP
- }
- int main (void)
- {
- GPIO_Configuration( );
- ......
- }
復(fù)制代碼
全部資料51hei下載地址:
RES_F1.zip
(51.34 KB, 下載次數(shù): 19)
2019-6-20 19:05 上傳
點(diǎn)擊文件名下載附件
|
|