完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
对于STM32F1的IO可以配置成8种模式,三种最大输出速度。也就是每组IO口有7个寄存器,也就是说7个寄存器可以控制一组16个IO口。
这7个寄存器分别是: 位配置寄存器,主要是:模式的选择以及输出速度的选择。 GPIOx_CRL GPIOx_CRH 数据寄存器,主要是:一个是输入数据寄存器。一个是输出数据寄存器。 GPIOx_IDR GPIOx_ODR 一个32位置位/复位数据寄存器 GPIOx_BSRR 一个16位复位寄存器 GPIOx_BRR 一个32位锁存器 GPIOx_LCKR 假设:PB5和PE5和外部的LED相连。通过配置相应的寄存器来驱动LED灯。 寄存器版本步骤是三步: 第一步:使能IO端口时钟。 在配置 STM32 外设的时候,任何时候都要先使能该外设的时钟。 GPIO 是挂载在 APB2 总线上的外设,相应的寄存器是:APB2 外设时钟使能寄存器(RCC_APB2ENR) GPIOB与GPIOE是在寄存器:RCC_APB2ENR的第三位和第六位。我们只需要把相应的位设置为1即可。 通过查找相应的寄存器使能GPIOB。 RCC-》APB2ENR |= 1《《3 ; //一般情况下我们不直接赋值,主要是为了保持其他位不变。 同样我们可以使能GPIOE:RCC-》APB2ENR |= 1《《6; 第二步:初始化IO口模式 在使能了相应的端口以后,我们需需要设置相应的IO口模式。配置模式有2个32位的寄存器CRL和CRH。GPIOB与GPIOE都是低八位,因此只需要我们配置寄存器CRL。 每个IO口需要配置4位,低两位输出模式选择,高两位是配置模式。 选择模式:输出模式,最大速度50MHZ。复用推挽输出。 程序可以写成: 在我们设置相应的位之前,我们先把要设置的位清零。(利用和1相与不变,和0相与清零) GPIOB-》CRL &=0xFF0FFFFF; 然后选择模式: GPIOB-》CRL |=0x00300000; //PB5的工作模式 初始化我们设置输出为1,通过寄存器ODR设置。 GPIOB-》ODR |= 1《《5; 同样可以设置GPIOE的模式以及PE5的状态。 GPIOE-》CRL &=0xFF0FFFFF; GPIOE-》CRL |= 0x00300000; //PE5的工作模式 GPIOE-》ODR |= 1《《5; 第三步:操作IO口 操作寄存器ODR或者寄存器BRR/BSRR. 通过配置PB5和PE5相应输出寄存器ODR的位置位或者清零。 GPIOE-》ODR |= 1《《5; 调用延时函数delay; GPIOB-》ODR &= ~(1《《5); 或者配置寄存器BRR/BSRR. 通过BSRR的低16位置1, GPIOB-》BSRR |= 1《《5; 调用延时函数delay; 通过BSRR的低16位置0,GPIOB-》BRR |= 1《《5; 【补充C语言操作符号】 把CRL寄存器所有位清零: GPIOB-》CRL &= 0x0; 把CRL寄存器所有位置1: GPIOB-》CRL |= 0xFFFFFFFF 把CRL寄存器的第1位置1:GPIOB-》CRL |= 1《《1; 把CRL寄存器的第1位清零:GPIOB-》CRL &= ~(1《《1) ; 把CRL寄存器的第0-3位设置成A,其他保持不变: GPIOB-》CRL |= 0x0000000A;(为了举例,没有实际意义) |
|
|
|
只有小组成员才能发言,加入小组>>
物联网工程师必备:怎么选择不同的无线连接技术,本指南帮你忙!
3283 浏览 1 评论
【DFRobot TinkerNode NB-IoT 物联网开发板试用连载】WIFI功能测试
3935 浏览 0 评论
【DFRobot TinkerNode NB-IoT 物联网开发板试用连载】Arduino的替代SublimeText3+STino
3442 浏览 0 评论
使用端口扩展器轻松高效地向IIoT端点添加具有成本效益的子节点
4004 浏览 1 评论
20681 浏览 11 评论
模组有时候复位重启后输出日志为“REBOOT_CAUSE_SECURITY_PMU_POWER_ON_RESET”的原因?
800浏览 2评论
1017浏览 2评论
1021浏览 1评论
1140浏览 1评论
379浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 12:23 , Processed in 1.011393 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号