STM32/STM8技术william hill官网
直播中

贾飞小

7年用户 1763经验值
私信 关注
[问答]

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



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

MCU做master,芯片做slave。


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







回帖(13)

卢家辉

2019-1-21 07:02:24
你需要多看芯片的资料!!!
举报

贾飞小

2019-1-21 07:14:30
芯片资料告诉了,寄存器推荐值。

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

卢家辉

2019-1-21 07:23:04
用const数组!!!
举报

贾飞小

2019-1-21 07:29:31
const数组能把值存下来。那地址呢,如何把地址与数据一对一的存下来?

有不有什么数据结构,像上位机语言的dictionary类那样的。
举报

卢家辉

2019-1-21 07:46:20
都可以。。。实际情况来看!!!
举报

甘璐妲

2019-1-21 07:54:41
芯片一般有burst write。把芯片寄存一下dump出来。修改过后。写回去。
举报

贾飞小

2019-1-21 08:04:25
问一下,芯片上点后,其寄存器的值是default值,还是都是0?

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



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

贾飞小

2019-1-21 08:23:41
page、address、data如何关联保存,用什么数据结构?
举报

甘璐妲

2019-1-21 08:34:36
顺序保存
举报

甘璐妲

2019-1-21 08:40:53
可以保存到一个结构体里,但要注意数据对齐。也可以顺序保存到一个数组里。
举报

贾飞小

2019-1-21 08:58:14
举报

甘璐妲

2019-1-21 09:10:48
可以。
举报

贾飞小

2019-1-21 09:20:43

OK. 多谢
举报

更多回帖

发帖
×
20
完善资料,
赚取积分