找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3388|回复: 0
打印 上一主题 下一主题
收起左侧

从51入门stm32,位带操作GPIO以及GPIO初始化用头文件

[复制链接]
跳转到指定楼层
楼主
本帖最后由 _4061N_ 于 2019-6-20 19:05 编辑

如题,我是刚刚从51单片机入门的STM32,看到库函数操作凌乱的一匹。
所以将STM32F1的所有GPIO配置的位带别名区的寄存器地址都定义了名字,使用这个定义头文件,可以不必使用库函数,直接去完成点亮LED灯的首要任务......(加快51的代码移植)
而且我感觉这个头文件将来一定是有用的。(整整打了2000行宏定义)
我觉得这个东西很方便,所以现在将其分享出来。
头文件作用:帮助直接操作特定IO口的状态、可以通过一个符号就实现单个IO口的初始化(每个IO的初始化实际最多生成两句C代码,已经是最简形式了)。
使用方式看单片机代码
补充:现今准备将所有寄存器都搞一下,持续更新......//已完成内容:
/*定时器寄存器组TIMx  (通用(2、3、4、5 ) +  基本(6、7))
TIMx_CR1     //控制寄存器 1
TIMx_CR2     //控制寄存器 2
TIMx_SMCR    //从模式控制寄存器
TIMx_DIER    //DMA/ 中断使能寄存器
TIMx_SR      //状态寄存器
TIMx_EGR     //事件产生寄存器
TIMx_CCMR1   //捕获/ 比较模式寄存器 1
TIMx_CCMR2   //捕获/ 比较模式寄存器 2
TIMx_CCER    //捕获/ 比较使能寄存器
TIMx_CNT     //计数器
TIMx_PSC     //预分频器
TIMx_ARR     //自动重装载寄存器

TIMx_CCR1    //捕获/ 比较寄存器 1
TIMx_CCR2    //捕获/ 比较寄存器 2
TIMx_CCR3    //捕获/ 比较寄存器 3
TIMx_CCR4    //捕获/ 比较寄存器 4

TIMx_DCR     //DMA 控制寄存器
TIMx_DMAR    //连续模式的DMA 地址
*/
/*外部中断配置寄存器组:
AFIO_EXTICR1  //外部中断配置寄存器1
AFIO_EXTICR2  //外部中断配置寄存器2
AFIO_EXTICR3  //外部中断配置寄存器3
AFIO_EXTICR4  //外部中断配置寄存器4
*/
/*EXTI中断与事件寄存器组:
EXTI_IMR   //中断屏蔽寄存器
EXTI_EMR   //事件屏蔽寄存器
EXTI_RTSR  //上升沿触发选择寄存器
EXTI_FTSR  //下降沿触发选择寄存器
EXTI_SWER  //软件中断事件寄存器
EXTI_PR    //挂起寄存器
*/
/*GPIO配置寄存器组:(带操作)
GPIOx_CRL    //GPIOx_配置寄存器1
GPIOx_CRH    //GPIOx_配置寄存器2
GPIOx_IDR    //GPIOx_输入数据寄存器
GPIOx_ODR    //GPIOx_输出数据寄存器
GPIOx_BSRR   //GPIOx_位设置/ 清除寄存器,写0无效
GPIOx_BRR    //GPIOx_位清除寄存器,写0无效
GPIOx_LCKR   //GPIOx_配置锁定寄存器
*/
/*RCC配置寄存器组:
RCC_CR         //时钟控制寄存器
RCC_CFGR       //时钟配置寄存器
RCC_CIR        //时钟中断寄存器
RCC_APB2_RSTR  //APB2外设复位寄存器,写0无效
RCC_APB1_RSTR  //APB1外设复位寄存器,写0无效
RCC_AHB_ENR    //AHB外设时钟使能寄存器
RCC_APB2_ENR   //APB2外设时钟使能寄存器
RCC_APB1_ENR   //APB1外设时钟使能寄存器
RCC_BDCR       //备份域控制寄存器
RCC_CSR        //控制/状态寄存器
RCC_AHBRSTR    //AHB 外设时钟复位寄存器
RCC_CFGR2      //时钟配置寄存器 2       
*/
  1.    //include 这个头文件
  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软驱动头文件
  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. }
复制代码



全部资料51hei下载地址:
RES_F1.zip (51.34 KB, 下载次数: 19)



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表