ctang 发表于 2017-9-25 16:20:07

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

本帖最后由 ctang 于 2017-9-25 16:28 编辑

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

MCU做master,芯片做slave。


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









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数组里面吗?
②然后按数组下标,修改要修改的寄存器?



下位机编程的思路,跟上位机好像不一样。如果是上位机的话,就很好用哈希表把地址和数据一对一保存下来,然后用for循环遍历所有元素。

ctang 发表于 2017-9-26 13:23:20

MrJiu 发表于 2017-9-25 17:04
都可以。。。实际情况来看!!!

page、address、data如何关联保存,用什么数据结构?

斜阳__ 发表于 2017-9-26 14:08:05

顺序保存
页: [1] 2
查看完整版本: 如何向芯片的寄存器写入一系列值