STM32笔记6--跑马灯实验--寄存器h

6.1、GPIO相关寄存器

6.2、跑马灯的硬件连接

6.3、编写跑马灯程序

6.1、GPIO相关寄存器

可以参考中文数据手册,如下所示:

据前述,GPIO 共有8种工作方式(4种输入、4种输出)、以及三种工作速度,本次学习目的是通过函数直接调用寄存器来实现各种工作,每组IO口所包含的寄存器为:

换言之,本次学习的是寄存器版本的STM32,相对比而言库函数版本,寄存器版本更加快速,这是因为函数是直接调用寄存器,而非通过调用库函数来实现功能。

6.2、跑马灯硬件连接

6.3、跑马灯程序编写

主要步骤:1、使能IO口时钟。配置寄存器RCC_APB2ENR

                 2、初始化IO口模式。配置寄存器GPIOx_CRH/CRL

                 3、操作IO口,输出高低电平。配置寄存器GPIOX_ODR或者BSRR/BRR。

(1)、复制工程文件

而后根据上述的主要步骤,配置RCC_APB2ENR寄存器,(即为APB2外设使能时钟寄存器)其详细参数如下所示:

 由于根据芯片原理图可知,LED0和LED1分别连接PB5和PE5.也就是在GPIOB和GPIOE两端口上,参照上表,我们只需要使能“位3”、“位6”即可。

(2)、新建工程等如上一节一样

         

(2)、在添加路径,源文件后,查看寄存器定义,寄存器定义统一被添加在该库文件中,如下所示:

                                                   

 PS:为方便地调用库函数,“Ctrl+H”即可调出搜索窗口进行搜索,

 (3)、据前述,需要控制的是位3与位6(将位3与位6设置为1),我们希望在控制位3与位6的同时能不影响其他的位,所以总的思路是:将位3和位6分别与1进行或运算,而其他位则与0或运算。如下图所示:

 (4)、接着通过寄存器配置GPIO口状态,其中GPIOx_CRH用于配置8~15位,GPIOx_CRL用于配置0~7位,由于我们需要配置的是GPIOB.5和GPIOE.5,所以选用的是GPIOx_CRL函数,如下:

 需要设置5号引脚为推挽输出,并且输出速度为50MHz,查上述数据手册中的表可知,需要设置CNF5为00,以及MODE5为11,也就是23、22、21、20位为:0011,

(5)、编写源文件码

(6)、据此编写主程序代码

            

 (7)、编译后下载到单片机

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值