OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3629|回复: 6

iic 串口通信时候,单片机跟arm方式咋不一样呢

[复制链接]

58

主题

139

帖子

0

精华

高级会员

Rank: 4

积分
662
金钱
662
注册时间
2014-10-30
在线时间
81 小时
发表于 2016-6-18 22:26:52 | 显示全部楼层 |阅读模式
3金钱
这是我截图后单片机跟arm不一样  我就纳闷了
iic  read modor.png
QQ Photo20160618222717.jpg
uuu.jpg

最佳答案

查看完整内容[请看2#楼]

STM32的程序是为了兼容性写成这样的,因为24C16以上的地址有2Byte。ARM的程序只考虑了1Byte地址的情况,兼容性不够好
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

548

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1383
金钱
1383
注册时间
2015-2-3
在线时间
197 小时
发表于 2016-6-18 22:26:53 | 显示全部楼层
STM32的程序是为了兼容性写成这样的,因为24C16以上的地址有2Byte。ARM的程序只考虑了1Byte地址的情况,兼容性不够好
回复

使用道具 举报

34

主题

388

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4090
金钱
4090
注册时间
2012-10-21
在线时间
642 小时
发表于 2016-6-19 00:04:21 | 显示全部楼层
当用的EEROM低于24C16时,地址为是低于16位的,/256只是防止你写的地址写成16位只处理低8位而已
这东西不管什么MCU,单片机ARMDSP等等,用IIC协议就要遵照协议来,肯定是相同的
回复

使用道具 举报

58

主题

139

帖子

0

精华

高级会员

Rank: 4

积分
662
金钱
662
注册时间
2014-10-30
在线时间
81 小时
 楼主| 发表于 2016-6-19 09:03:12 | 显示全部楼层
PCA 发表于 2016-6-19 00:04
当用的EEROM低于24C16时,地址为是低于16位的,/256只是防止你写的地址写成16位只处理低8位而已
这东西不 ...

address.jpg 按你的意思,那个椭圆形里面的IIC_Send_Byte(WriteAddr%256);   //发送低地址写的是对的,但是方框里面写的IIC_Send_Byte(0XA0+((WriteAddr/256)<<1));   //发送器件地址0XA0,写数据 不对吧 应该把那个+((WriteAddr/256)<<1) 去掉才对吧 ,同时那个高地址向左移动一位,也不知啥用意
回复

使用道具 举报

34

主题

388

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4090
金钱
4090
注册时间
2012-10-21
在线时间
642 小时
发表于 2016-6-19 11:48:05 | 显示全部楼层
妙手书生 发表于 2016-6-19 09:03
按你的意思,那个椭圆形里面的IIC_Send_Byte(WriteAddr%256);   //发送低地址写的是对的,但是方框里面写 ...

对于2C416一下的,WriteAddr/256就是0,你移动多少位它还是0,就是发送给一个器件地址0x0A
回复

使用道具 举报

58

主题

139

帖子

0

精华

高级会员

Rank: 4

积分
662
金钱
662
注册时间
2014-10-30
在线时间
81 小时
 楼主| 发表于 2016-6-19 15:26:37 | 显示全部楼层
PCA 发表于 2016-6-19 11:48
对于2C416一下的,WriteAddr/256就是0,你移动多少位它还是0,就是发送给一个器件地址0x0A

怎么能从资料里面看出那个16地址中的高8位为0呢 还是在 2C416以下是这样规定的了 ,一直以为是16位地址包括两个字节地址呢,好比1号16地址是2,3号8位地址的合并呢,
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-6-22 22:28:11 | 显示全部楼层
妙手书生 发表于 2016-6-19 15:26
怎么能从资料里面看出那个16地址中的高8位为0呢 还是在 2C416以下是这样规定的了 ,一直以为是16位地址包 ...

看24C02、08/16/32/64等的手册,对比下,你就发现规律了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 13:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表