你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

如何向芯片的寄存器写入一系列值

[复制链接]
ctang 提问时间:2017-9-25 16:20 /
本帖最后由 ctang 于 2017-9-25 16:28 编辑

MCU用的是STM32L0系列。
有一个37053A的芯片。需要通过I2C通信,向该芯片的一系列寄存器,写初始值。

MCU做master,芯片做slave。


问:
①初始值存在哪?
②将值写入寄存器的代码,如何设计,是写一个值调用一次I2C读写函数,还是其他简洁操作?

1.jpg







收藏 评论13 发布时间:2017-9-25 16:20

举报

13个回答
MrJiu 回答时间:2017-9-25 16:22:20
你需要多看芯片的资料!!!
ctang 回答时间:2017-9-25 16:27:24
MrJiu 发表于 2017-9-25 16:22
你需要多看芯片的资料!!!

芯片资料告诉了,寄存器推荐值。

我的意思是,写500个值,用500行I2C写函数,还是有其他简化代码?
MrJiu 回答时间:2017-9-25 16:32:32
ctang 发表于 2017-9-25 16:27
芯片资料告诉了,寄存器推荐值。

我的意思是,写500个值,用500行I2C写函数,还是有其他简化代码? ...

用const数组!!!
ctang 回答时间:2017-9-25 16:52:49
MrJiu 发表于 2017-9-25 16:32
用const数组!!!

const数组能把值存下来。那地址呢,如何把地址与数据一对一的存下来?

有不有什么数据结构,像上位机语言的dictionary<key, value>类那样的。

MrJiu 回答时间:2017-9-25 17:04:27
ctang 发表于 2017-9-25 16:52
const数组能把值存下来。那地址呢,如何把地址与数据一对一的存下来?

有不有什么数据结构,像上位机语 ...

都可以。。。实际情况来看!!!
斜阳__ 回答时间:2017-9-26 09:07:57
芯片一般有burst write。把芯片寄存一下dump出来。修改过后。写回去。
ctang 回答时间:2017-9-26 10:36:55
斜阳__ 发表于 2017-9-26 09:07
芯片一般有burst write。把芯片寄存一下dump出来。修改过后。写回去。

问一下,芯片上点后,其寄存器的值是default值,还是都是0?

这款芯片有page和address,部分截图如下。你所说的一下dump出来,是指:
①用I2C读函数读取所有字节,保存在byte数组里面吗?
②然后按数组下标,修改要修改的寄存器?

2.JPG

下位机编程的思路,跟上位机好像不一样。如果是上位机的话,就很好用哈希表把地址和数据一对一保存下来,然后用for循环遍历所有元素。
ctang 回答时间:2017-9-26 13:23:20
MrJiu 发表于 2017-9-25 17:04
都可以。。。实际情况来看!!!

page、address、data如何关联保存,用什么数据结构?
斜阳__ 回答时间:2017-9-26 14:08:05
顺序保存
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版