STM32的寄存器控制SDA_IN()/SDA_OUT()
#define SDA_IN() {GPIOA->CRL&=0X0FFFFFFF;GPIOA->CRL|=(u32)8<<28;}
#define SDA_OUT() {GPIOA->CRL&=0X0FFFFFFF;GPIOA->CRL|=(u32)3<<28;}
终于碰到点儿寄存器的操作了.
上面的意思, 其实就是切换PA_7的模式, 控制模式的寄存器叫CRL跟CRH, 如下图:
CRL(引脚0-7):

CRH(引脚8-16):

研究了一下,
GPIOA->CRL&=0X0FFFFFFF;
GPIOA->CRL|=(u32)8<<28;
的意思 先都置0, 得0000, 然后1000B, 左移28位, 得1000, 分别是将CRL的31到28bit位置1000, 查下面的表:

1000意思就是Input模式, Input pull-down/pull-up
GPIOA->CRL&=0X0FFFFFFF;
GPIOA->CRL|=(u32)3<<28;
3换成2进制是0011, 结合上面的就是00就是outpu的push-pull, 11表示速度是50MHz
那么, 如果要修改PA_11的配置, 就修改CRH, 移动3*4次就好,
#define SDA_IN() {GPIOA->CRH&=0XFFFF0FFF;GPIOA->CRH|=(u32)8<<12;}
#define SDA_OUT() {GPIOA->CRH&=0XFFFF0FFF;GPIOA->CRH|=(u32)3<<12;}
经验证, 成功.
STM32的寄存器控制SDA_IN()/SDA_OUT()的更多相关文章
- STM32串口寄存器操作(转)
源:STM32串口寄存器操作 //USART.C /************************************************************************** ...
- Arduino库和STM32的寄存器、标准库、HAL库、LL库开发比较之GPIO
标题: Arduino库和STM32的寄存器.标准库.HAL库.LL库开发比较之GPIO 作者: 梦幻之心星 sky-seeker@qq.com 标签: [#Arduino,#STM32,#库,#开发 ...
- stm32之时钟控制
本文提到的有以下内容: 时钟系统与总线矩阵 SysTick系统定时器 RTC实时时钟 看门狗定时器 通用定时器 一.时钟系统与总线矩阵 stm32F4的时钟树如下图所示: 在STM32中,有五个时钟源 ...
- WS2812B彩灯详细讲解篇(STM32 PWM+DMA控制 STM32 HAL库编程 循环延时控制多种控制方式)
一.效果展示 观看演示效果:https://www.bilibili.com/video/BV1JT4y1P72Q 二. 基础认识 (一) 小理论 WS2812B是一种智能控制LED光源,将控制电路 ...
- stm32之外设控制
本文将提到以下内容: 蜂鸣器 按键控制 电容触摸 温度传感器 红外 TFTLCD触摸屏 MPU6050传感器 SPI-FLASH SDIO_SD卡 ucos-III移植 一.蜂鸣器 蜂鸣器是一种一体化 ...
- stm32 IDR寄存器软件仿真的BUG
/* * 函数名:Key_GPIO_Config * 描述 :配置按键用到的I/O口 * 输入 :无 * 输出 :无 */ void Key_GPIO_Config(void) { GPIO_Init ...
- STM32 GPIO寄存器 IDR ODR BSRR BRR
IDR是查看引脚电平状态用的寄存器,ODR是引脚电平输出的寄存器 下面内容的原文:http://m646208823.blog.163.com/blog/static/1669029532012931 ...
- STM32 STM32F4 寄存器怎么配置不上, 无法往寄存器写入数据
当出现这个问题时,往往是因为你没有在RCC寄存器中把相关的时钟使能打开. 配置寄存器之前记得调用"RCC_AxxxPeriphClockCmd"先打开需要配置的时钟源,别调用了“R ...
- 推荐 的FPGA设计经验(4) 时钟和寄存器控制架构特性使用
Use Clock and Register-Control Architectural Features FPGAs provide device-wide clocks and register ...
随机推荐
- Xcode编译错误和警告汇总<转>
1.error: macro names must be identifiers YourProject_prefix.pch 原因: 因为你弄脏了预处理器宏,在它处于<Multiple Val ...
- C# GridControl 行背景颜色
使用C# DevExpress_gridControl 行号行样式显示行背景颜色,必须取消自动变换行色属性 取消Focus变色,属性为OptionSelection--EnableAppearance ...
- Java基础——数组Array
一.数组基本概念 数组是相同类型数据的有序集合. 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成.其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们. 数组有三 ...
- 第九篇 Integration Services:控制流任务错误
本篇文章是Integration Services系列的第九篇,详细内容请参考原文. 简介在前面三篇文章,我们创建了一个新的SSIS包,学习了脚本任务和优先约束,并检查包的MaxConcurrentE ...
- [转]如何在Windows下使用WebMatrix+IIS开发PHP程序
原文: http://www.cnblogs.com/lucienbao/p/webmatrix_php.html
- HTML页面刷新、跳转
HTML方式 1.页面刷新 <!-- 5秒之后,跳转到http://www.qunar.com页面 --> <meta http-equiv="refresh" ...
- cocos2dx 3.x(捕鱼达人炮台角度换算)
// // GameScence.hpp // NotesDamo // // Created by apple on 16/10/23. // // #ifndef GameScence_hpp # ...
- go 语言的库文件放在哪里?如何通过nginx代理后还能正确获取远程地址
/usr/local/Cellar/go/1.5.1/libexec/src/ 他的RemoteAddr 是从哪里获取? func (c *conn) RemoteAddr() Addr { if ! ...
- WCF笔记
http://msdn.microsoft.com/en-us/library/system.servicemodel.dispatcher.iparameterinspector.aftercall ...
- IntelliJ IDEA 项目相关的几个重要概念介绍
必备材料介绍 IntelliJ IDEA 对其他 IDE 转过来的用户有特别优待,对其专门整理了非常棒的资料,还请其他 IDE 过来的用户抽时间查看,会有很大帮助:Eclipse 用户可以看:http ...