760|5

8

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

新手想知道N32G430的I2C怎么使用?我对于I2C的知识面比较窄,真心求助啊! [复制链接]

本帖最后由 骥驹1 于 2023-12-30 17:32 编辑

我想知道现在有两个板子,一个板子是N32G430的最小系统板,另一个板子是一个集成板

 
 

 

   

现在我想用N32G430通过I2C控制集成板里的时钟模块DS1307或者存储芯片24c02

先将集成板电路图附上 halo2015 V2版 电路图.pdf (127.49 KB, 下载次数: 0)
可以看出来连接的是PE1和PE2
附上N32G430系列数据手册 UM_N32G430系列用户手册V1.pdf (11.64 MB, 下载次数: 0)
从中可以看出来其中的I2C1对应的引脚是PB6和PB7
那么我怎么才能在这些已知条件下通过I2C进行控制呢;
比如往储存芯片中写一些数据,或者通过DS1307获取当前时间?
此帖出自单片机论坛

最新回复

除了I2C 还有lin Can 总线   详情 回复 发表于 2023-12-31 23:01
点赞 关注
 

回复
举报

6822

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

I2C与储存芯片中写数据,同样也是 让I2C 控制主机需要首先向总线上发出控制命令

此帖出自单片机论坛
 
 

回复

7244

帖子

2

TA的资源

版主

板凳
 

可以直接看官方给的IIC通信的例子!那里面写的会比较清楚的!

此帖出自单片机论坛
 
 
 

回复

4942

帖子

12

TA的资源

版主

4
 

对哟 去看官方的例程 先跑起来,然后再加入其他代码 精进一下

此帖出自单片机论坛
 
 
 

回复

4942

帖子

12

TA的资源

版主

5
 

除了I2C 还有lin Can 总线

此帖出自单片机论坛
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

6
 

我看了官方给的实例例程里面有个I2C_Master_Int的实例代码,里面也是使用I2c控制24C02存储芯片的。

之后我连上线路之后发现串口只会出现这个情况不能继续向下运行

 

于是我又查阅了关于24C01芯片的使用方法,发现当A1,A2,A3全部接GND之后设备地址为0XA0

于是我查看了示例代码中的地址,发现定义为0x10

 

于是我将设备地址修改为0xa0之后再次运行发现结果并没有变化

还是卡在那里并没有运行结束,于是我再代码各个地方添加了串口输出函数,判断是在那里卡住了

但发现当添加了输出函数之后并不会卡住,于是我就猜想可能是缺少延时,于是我在其中添加了延时函数

 

添加完成之后发现可以正常运行到最后
这时候我发现输出不正确

输出的结果

  所以是写入的数据和输出的数据不一致导致的

于是我添加

  输出结果如图(前面是读出来的数据,后面是写入的数据)

 

结果发现数据是错误的,但我从多次试验数据以及上网查阅了一些资料发现

可能是数据写入和读取的位置不一致导致的

于是我试图定义写入位置已寄读出位置,但很遗憾以失败告终

我并没有查询到关于这方面的内容,也实在是不知道怎么搞

但我从网上查阅资料发现当在写入数据的时候如果你写入的时候正好写入到一页的尾部,那么在读取的时候就会从这个页的初始位置开始读取

于是我修改了写入数据的大小

我查到的博客使用的大小为8,但我通过试验发现是16

 

紧接着我再次运行之后

 

写入数据与读出的数一致了;

至此算是完成了对存储芯片的写入与读出

但是很显然这样是不正确的,我想要的是写入数据,读出数据,我需要知道我将数据写到哪里了,应该从哪个位置读出数据,关于这方面的内容我没有从示例代码中找到

网上也有关于如何将数据写入到指定位置,但我发现他们的方法是这样的

在发送地址及写入位之后发送要写入的内存地址

但我发现

 I2C_7bit_Addr_Send(I2C1, EEPROM_ADDRESS, I2C_DIRECTION_SEND);
    I2C_Data_Send(I2C1, address);  // 发送内存地址
    I2C_Data_Send(I2C1, data);  // 发送数据
都是这样子的,我很好奇这样发送内存地址为啥不会被认为是发送的普通数据

以及读出的时候也要发送,我也搞不明白
总之就是没学会,有没有大佬能帮帮我

 

此帖出自单片机论坛
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表