找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4057|回復(fù): 0
收起左側(cè)

從51入門stm32,位帶操作GPIO以及GPIO初始化用頭文件

[復(fù)制鏈接]
ID:562525 發(fā)表于 2019-6-15 16:03 | 顯示全部樓層 |閱讀模式
本帖最后由 _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       
*/
  1.    //include 這個(gè)頭文件
  2. #define  NRF24L01_CE        PA4_O
  3. #define  NRF24L01_CSN      PC4_O
  4. #define  NRF24L01_SCK      PA5_O
  5. #define  NRF24L01_MOSI    PA7_O
  6. #define  NRF24L01_MISO    PA6_I
  7. #define  NRF24L01_IRQ      PC5_I
  8.    //include NRF24L01軟驅(qū)動(dòng)頭文件
  9. void  GPIO_Configuration(void )
  10. {
  11. //NRF24L01配置
  12.         PA4_SET_50M_PP           //注意:這里是沒有分號的
  13.         PC4_SET_50M_PP
  14.         PA5_SET_50M_PP
  15.         PA7_SET_50M_PP
  16.         PA6_SET_IPU
  17.         PC5_SET_IPD
  18.         PB0_SET_50M_PP
  19.         PB1_SET_50M_PP
  20. }

  21. int main (void)
  22. {
  23.     GPIO_Configuration( );
  24.     ......
  25. }
復(fù)制代碼

0.png

全部資料51hei下載地址:
RES_F1.zip (51.34 KB, 下載次數(shù): 19)



回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表