社区
单片机/工控
帖子详情
IIC_SDA=(txd&0x80)>>7为什么要右移七位?
jiaobiedeng1738
2017-08-20 09:37:57
以前学51的时候,写的I2C是没有右移七位的,然后现在学STM32的时候看到I2C发送函数里面有右移七位,请问这是怎么回事?
...全文
2490
2
打赏
收藏
IIC_SDA=(txd&0x80)>>7为什么要右移七位?
以前学51的时候,写的I2C是没有右移七位的,然后现在学STM32的时候看到I2C发送函数里面有右移七位,请问这是怎么回事?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ckc
2017-08-20
打赏
举报
回复
把最高位转移到最低位吧 51只能一位一位移动,所以这样做很不合适 也许stm32可以一次性移动7位
tianxj001
2017-08-20
打赏
举报
回复
6
IIC_SDA=(txd&0x80)>>7 没看见其他源代码,这里,txd应该是一个寄存器,&0X08 也就是和0B10000000 逻辑与,也就是结果取最高位,然后右移7位,最高位变成最低位,IIC_SDA是一根串口数据, 这个代码的意思就是把txd 最高位 发送到IIC_SDA。 再看看这个代码,如果是这个目的,貌似IIC_SDA=txd>>7; 就可以了,和0X80做逻辑与好像是多余的哈。
关于mpu6050六轴传感器例程中一些位操作
起因 最近在学习stm32开发板,最近学习到了需要
IIC
通信的MPU6050六轴传感器,看了正点原子的例程,发现其中有很多位操作不是很理解。经过补习了一番C语言,总结了一些位操作的知识。 接下来直接贴代码+讲解操作 1. void
IIC
_Send_Byte(u8
txd
) { u8 t;
SDA
_OUT(); ...
【通信协议】
IIC
通信协议详解
IIC
的基本介绍
IIC
总线的发展: 芯片间总线(Inter Interface Circuit,
IIC
),是应用广泛的芯片间串行扩展总线。目前世界上采用的
IIC
总线一共有两个规范,分别由荷兰飞利浦公司和日本索尼公司提出的,现在基本采用荷兰飞利浦的
IIC
总线的技术规范。
IIC
总线的优点: 1、
IIC
总线优点中最主要的优点是其简单性(
IIC
只有两条信号线)和有效性(根据SCL线上的时钟线来判断)。带有
IIC
总线的接口的单片机都可直接与具有
IIC
总线接口的各种扩展器件...
IIC
总线
芯片间总线(Inter Interface Circuit,
IIC
)
I2C 协议
芯片: BH1750FVI 是一种用于两线式串行总线接口的数字型光强度传感器集成电路。这种集成电路可以根据收集的光线强度数据来调整液晶或者键盘背景灯的亮度。利用它的高分辨率可以探测较大范围的光强度变化。工作原理: BH1750的内部由光敏二极管、运算放大器、ADC采集、晶振等组成。PD二极管通过光生伏特效应将输入光信号转换成电信号,经运算放大电路放大后,由ADC采集电压,然后通过逻辑电路转换成16位二进制数存储在内部的寄存器中(光照越强,光电流越大,电压就越大)。
IIC
通信---EEPROM24C02---STMF4
IIC
通信协议
IIC
是同步半双工通信,一个数据线
SDA
和一个时钟SCL线,可以接受和发送数据。在CPU与被控IC之间、IC与IC之间进行双向传送。 空闲状态
IIC
总线的
SDA
和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。 起始信号 当SCL为高期间,
SDA
由高到低的跳转 代码实现为: //产生
IIC
起始信号 void
IIC
_Start(void) {
SDA
_OUT(); //
sda
线输出模式
IIC
_
SDA
=1;
IIC
_SCL=1; delay_us(4)
单片机/工控
27,508
社区成员
28,796
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章