该项目的核心即是得到角度数据,在LSM303DLHC中,有加速度和地磁两个模块,在此实际上只需要估计地磁数据即可,LSM303DLHC芯片的通讯方式为IIC通讯,在其数据手册中我们可以查阅到地磁模块对应的读与写地址
同样地,亦可以在手册中找到各个控制寄存器和数据寄存器的使用方法,在此不再赘述。需要提及的是,在调试过程中我想通过串口助手查看一下LSM303DLHC输出的角度数据,但始终无法建立其串口通讯,而将官网上串口相关的例程通讯部分替换成我所编写的代码却可正常运行。我到交流群里下载了cubmx教程串口通讯相关的内容进行学习,也并未找到错误原因,我又到其他论坛进行查阅,最终找到了原因所在,即在cubmx建立工程时,假如你使能了串口通讯,在HAL库中的stm32l0xx_hal_conf.h文件开头部分,有如下一些代码,你在cubmx的图形化界面了使能哪个模块,生成代码时软件会将模块对应的宏定义语句取消注释,即实现了其模块的“使能”。找到问题所在后经过验证,得到了正确的角度数据,下面的工作即是将数据传送至WS2812灯珠上了。