完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,
我正在做我的 I2C 示例,我意识到 STM 板找到了一个左移一个的地址。 我将我的 Arduino 地址设置为 70 -> 0x46 用于十六进制
它返回 0-1-130-131(我不知道为什么但不相关。)然后找到 140 和 141 当我检查我的二进制文件时, 70 -> 0100 1100 140 -> 1000 1100 141 -> 1000 1101 当我用 1 位左移 70 时,我得到 140,我不知道为什么我得到 141(最后一位可能不重要?) 所以我只是好奇为什么会这样? 我在这里提供我的项目,我没有添加任何额外的库, 我只使用 CubeMX 和 CubeIDE(甚至不使用 Keil uVision 5) 但是,由于我能够进行 I2C 通信(即使地址发生变化),我希望看到复杂的示例。 现在,我应该发送什么给我的奴隶 Arduino,70 或 140? 此外,当我在 Arduino 上进行扫描时,它会提供一些 I2C 地址,我不确定哪个属于我的 STM32。 STM32和Arduino只有STM32和Arduino与SDA和SCL的连接,它们有额外的4.7k上拉电阻连接到STM32的5V输出,STM和Arduino的地连接。 |
|
相关推荐
1个回答
|
|
>> 所以我很好奇为什么会这样?
I2C 地址为 7 位 + 1 位用于 R/W => 8 位地址 写入 => 位 0 =0 读取 => 位 0 =1 >> 现在,我应该向我的从属 Arduino 发送什么,70 或 140? HAL 层将期望 7 位地址向左移动 1 位,因此,在您的情况下为 140。 根据您正在执行的操作(读取或写入),HAL 函数将处理位 0。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2642 浏览 1 评论
3208 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1783 浏览 1 评论
3611 浏览 6 评论
5988 浏览 21 评论
939浏览 4评论
1316浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
584浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1303浏览 3评论
1360浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 10:30 , Processed in 1.450141 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号