正点原子stm32中hal库iic模拟`#define SDA_IN() {GPIOB->MODER=~(3<<(9*2));GPIOB->MODER|=0<<9*2;}` //PB9 输入模式
正点原子hal库模拟iic中涉及到
#define SDA_IN() {GPIOB->MODER&=~(3<<(9*2));GPIOB->MODER|=0<<9*2;}
//PB9 输入模式
#define SDA_OUT() {GPIOB->MODER&=~(3<<(9*2));GPIOB->MODER|=1<<9*2;}
//PB9 输出模式
stm32中文参考手册中I/O 端口控制寄存器的解释如下:
每个 GPIO 有 4 个 32 位存储器映射的控制寄存器( GPIOx_MODER、 GPIOx_OTYPER、GPIOx_OSPEEDR、 GPIOx_PUPDR),可配置多达 16 个 I/O。 GPIOx_MODER 寄存器用于选择 I/O 方向(输入、输出、 AF、模拟)。 GPIOx_OTYPER 和 GPIOx_OSPEEDR 寄存器分别用于选择输出类型(推挽或开漏)和速度 (无论采用哪种 I/O 方向,都会直接将 I/O 速度引脚连接到相应的 GPIOx_OSPEEDR 寄存器位)。无论采用哪种 I/O 方向, GPIOx_PUPDR 寄存器都用于选择上拉/下拉。
GPIO 端口模式寄存器 (GPIOx_MODER) (x = A…I)如下图
可通过软件的方式修改寄存器的值,来决定I/O的方向。
前部分GPIOB->MODER&=~(3<<(9*2))
; 是将十进制的3(二进制是11)左移(9*2)个位,也就是将18,19位置置为11,然后取反变为00,再和GPIOB->MODER与运算,此时GPIOB->MODER的18,19位变为00。第一句也就是将GPIOB->MODER的18,19位置0.此时PB9为输入模式
后部分GPIOB->MODER|=0<<9*2
和GPIOB->MODER|=1<<9*2
也就是根据参考手册的输入输出给这两个位置赋值,过程和上面是一样的。
还有一种标准库的方法寄存器操作端口模式#define SDA_IN() /#define SDA_OUT()(正点STM32-IIC实验)
正点原子stm32中hal库iic模拟`#define SDA_IN() {GPIOB->MODER=~(3<<(9*2));GPIOB->MODER|=0<<9*2;}` //PB9 输入模式相关推荐
- 正点原子STM32(基于HAL库)3
目录 高级定时器实验 高级定时器简介 高级定时器输出指定个数PWM 实验 高级定时器输出指定个数PWM原理 TIM1/TIM8 寄存器 硬件设计 课堂源码(输出指定个数PWM灯就闪几次) 程序设计 下 ...
- 正点原子STM32(基于HAL库)5
目录 SRAM 实验 存储器简介 SRAM 方案简介 硬件设计 程序设计 程序流程图 程序解析 下载验证 内存管理实验 内存管理简介 硬件设计 程序设计 程序流程图 程序解析 下载验证 SD 卡实验 ...
- 正点原子STM32(基于HAL库)0
目录 开发环境搭建与使用 常用开发工具简介 MDK 安装 仿真器驱动安装 CH340 USB 虚拟串口驱动安装 使用MDK5 编译例程 使用串口下载程序 使用DAP 下载与调试程序 使用DAP 下载程 ...
- 正点原子STM32(基于HAL库)4
目录 ADC 实验 ADC 简介 单通道ADC 采集实验 ADC 寄存器 硬件设计 程序设计 下载验证 单通道ADC 采集(DMA 读取)实验 ADC & DMA 寄存器 硬件设计 程序设计 ...
- STM32中HAL库与标准库的区别
这是扒的某网站上大佬们的见解. 1.HAL库就是封装的比较猛,移植性比较强,标准库就是将寄存器封装好,移植性没有HAL好. 2.HAL库可以用ST的软件CUBE生成初始化工程.3.HAL库最方便的就是 ...
- THWATCH-01 陀螺仪 MPU6050 HAL库 正点原子 STM32驱动 计步
THWATCH-01 陀螺仪 MPU6050 HAL库 正点原子 STM32驱动 计步 一级目录 二级目录 三级目录 一.cubemx配置 1.使用cubemx配置串口 2.配置IIC1 3.配置时钟 ...
- 【正点原子STM32连载】第四十二章 FLASH模拟EEPROM实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
1)实验平台:正点原子MiniPro H750开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=677017430560 3)全套实验源码+手册+视频 ...
- 【STM32】HAL库 STM32CubeMX教程十二---IIC(读取AT24C02 )
前言: 本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 在之前的标准库中,STM32的硬件IIC非常复杂,更重要的是它并不稳定,所以都不推荐使用. 但是 ...
- 【STM32】HAL库 STM32CubeMX教程十五---FMC-SDRAM(一)
前言: 本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 本文 1首先讲解什么是FMC及SDRAM,W9825G6KH芯片原理,2基于CubeMx创建工程 ...
最新文章
- 在CentOS 6.2上搭建vim开发环境
- 使用editcap命令将ERF格式转换为pcap格式
- Linux Sed命令具体解释+怎样替换换行符quot;\nquot;(非常多面试问道)
- PostgreSQL 10.1 手册_部分 II. SQL 语言_第 9 章 函数和操作符_9.15. JSON 函数和操作符...
- c将字符串拆分,并存入结构体
- 红帽系列linux自行配置本地yum源
- 第68节:Java中的MYSQL运用从小白到大牛
- 1.6 logistic回归的keras实现
- Transformer入门Transformer和CNN之间的区别
- LeetCode-21. 合并两个有序链表_JavaScript
- 人脸服务器如何与门禁系统对接,人脸识别终端门禁系统解决方案
- 股票经典书籍推荐(豪华版)
- linux cad 安装教程视频,在Deepin Linux系统中安装Freecad后再安装assembly2插件的方法...
- 在北京注册科技类公司的经历(一):名称预审
- 房产中介 二手房中介小程序 一流开发 抓住小程序热潮
- 两步实现安卓手机秒变网络摄像头
- 计算机页面里的坚果云删不了怎么回事,我的坚果云文件夹为什么无法删除
- 网络安全进阶篇之免杀(十四章-7)C#加载器过360
- 抖音上超火的3D立体动态相册表白特效(29)
- VC 不愿承认的 4 个暗黑事实