| 
 
| 本帖最后由 w494143467 于 2020-11-1 13:59 编辑 
 1.介绍
 这次设计一个简易水平仪,之前驱动过ADXL362,所以一开始觉得应该是非常容易,采用的也是之前驱动的主控芯片,然而各种坑就来了,让我细细道来!
 2.踩坑之路
 上面也说到,之前驱动过,不以为然,用着之前驱动的代码,先将OLED屏幕显示起来,这个地方其实就出现坑了,使用的是NRF52832的开发板,用硬件IIC驱动OLED屏幕,发现居然有时候会出现死机的现象,当时以为是刷新太快了,就调低了速度,出现频率降低了,但是还是会出现,这个是肯定不行的,之后就被迫改成了软件IIC驱动。太难了~~~
  ,下图1是进入时显示的内容。 
 
 图1 ok,显示部分没啥大问题了,那么就开始驱动ADXL362吧,用着之前的驱动程序,发现获取不到ID。进入调试,找不到问题,因为是硬件SPI,这次又改成软件SPI,依旧驱动不起来,这时候有点怀疑人生了
  ,想了一想,买了一个逻辑分析仪,等了3天逻辑分析仪到了,查看逻辑发现有一个引脚起不来。。。一看原理图,  ,,,好吧,被别的外设占着,改引脚,发现可以通信了,心里美滋滋,截图了逻辑分析仪的图片(图2),准备发帖来着,后来发现数据又问题,而且读的ID也不对,查看手册ID是0xF2,而我的是0xF0(图3),这时心里想。。。好吧,又开始各种查,无果。感觉又是引脚的锅(这个芯片的引脚任意映射),换了引脚出现一个神奇的现象,读出来的ID变了,变成了0xE0  ,什么鬼啊,感觉是芯片问题,在公司换了ADXL362芯片,回家后一读还是0xE0  。最后感觉是开发板的问题,换了STM32的开发板(这里没有吹捧的意思,因为手头上熟悉的就只有这个板子了),之后一切就顺畅起来了,真的!!!这个坑我记住了  。 
 
 图2 
 
 图3 3.结论
 那么这里的锅应该让NRF52832来背了。使用STM32做主控的话就和第一篇讲的设计不太一样了,不过没有关系,我最终功能还是一样的,只是使用了两个开发板,下一篇给大家展示一下,这么多坑踩出来的作品,虽然不高大上,但是满是泪水和黑眼圈。
 后续通道:
 我的硬件狂想作品-简易水平仪 Part1开箱与设计:https://bbs.21ic.com/icview-3039430-1-1.html
 我的硬件狂想作品-简易水平仪 Part3成果与经验:https://bbs.21ic.com/icview-3042366-1-1.html
 
 
 
 | 
 
×本帖子中包含更多资源您需要 登录 才可以下载或查看,没有账号?注册 
  |