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

2019-07-14 14:28发布



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

MCU做master,芯片做slave。


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







友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
Green_LJ
1楼-- · 2019-07-14 17:52
芯片资料告诉了,寄存器推荐值。

我的意思是,写500个值,用500行I2C写函数,还是有其他简化代码?
jfuwre
2楼-- · 2019-07-14 18:43
用const数组!!!
Green_LJ
3楼-- · 2019-07-14 22:54
const数组能把值存下来。那地址呢,如何把地址与数据一对一的存下来?

有不有什么数据结构,像上位机语言的dictionary<key, value>类那样的。
jfuwre
4楼-- · 2019-07-15 03:12
 精彩回答 2  元偷偷看……
youpukeji668
5楼-- · 2019-07-15 07:56
芯片一般有burst write。把芯片寄存一下dump出来。修改过后。写回去。
Green_LJ
6楼-- · 2019-07-15 11:37
问一下,芯片上点后,其寄存器的值是default值,还是都是0?

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



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

一周热门 更多>