2、总体规划

简单的想法

		想做一个手环,首先先定义一下该手环的功能,然后根据定义的功能去做出来一个或者几个实现方案,然后根据实际情况去选择使用哪一个方案。

作为一个手环,最基本的功能要求如下。

  • 看时间
  • 可充电使用

上述两点是最基本的需求了,然后现在市面上大多数手环除去上述功能都还有如下功能。

  • 闹钟
  • 记录运动数据
  • 记录睡眠数据
  • 心率检测

还有一些特殊功能,比如我很喜欢的小米手环4的NFC功能,屏幕壁纸可由用户自定义等等。

我在此只是为了学习LVGL才去做的一个小东西,所以也不想搞那么复杂,大致打算只做以下几个功能。

  • 看时间
  • 闹钟
  • 简单的运动检测
  • 用户通过手机或者按键进行简单的交互

1、硬件框图

根据需求大致定下了如下的硬件框图。
大致框图

其中,MCU使用的是STM32F411,六轴是ST的LSM6D,蓝牙使用的是PW02模块,FLASH使用的是P25Q32H(USON8_3x2mm).
本来MCU是打算使用L452的,但是立创没有货,且这种UFQFPN48封装的芯片要使用风枪焊接,手边缺少工具,只能换成立创给贴的F411了。

这里面LSM6DS和P25Q32H都是第一次使用,也花费了一些时间去查阅资料。

其中,P25Q32H几乎可以完全套用W25Q128的驱动,只需要注意一下两者容量区别就行。
LSM6DS则移植了ST的官方库,底层自己重写就行(只使用了简单的读取6轴数据)。
还有屏幕,使用卖家提供的驱动程序总是概率性的复位后屏幕点不亮,后来将屏幕的初始化程序替换为UP主开源代码中的初始化程序,解决该问题,原因是卖家提供的F1,F4等DEMO程序中的MCU主频是72或者168,但是我使用的是F411,主频设定在了96M,然后导致SPI的时钟频率有误差。
至此,硬件最基本的驱动方面基本解决掉,没有遇到太大的难题。但是只是最基本的功能,在LSM6DS中还有一些内嵌的功能,比如计步及掉落检测等等。因为这些功能的使用涉及到ST的MEMS库,我还没看过,且现阶段的硬件基本满足使用要求了,毕竟主要目的在于使用LVGL,所以关于这些会预留好接口,写好上层应用逻辑后,再掉头回来处理这些驱动。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值