一、前言
首先感谢面包板和富芮坤给了本次试用FR3068E-C开发板的机会,之前对富芮坤的芯片有一定了解,使用过FR8000系列芯片做过BLE项目。最近也在对项目做芯片选型,看了目前市面上支持低功耗蓝牙同时兼任CAN总线的芯片方案比较少,恰好富芮坤推出了FR3068这款芯片,支持BLE和CAN总线以及RGB屏幕驱动,解决了目前市面上很多芯片的不足之处。我们来看看开发板的硬件资源,目前看资源非常丰富全面,如图:

既然有屏幕且支持LVGL,打算做一个支持CAN总线的仪表盘,LVGL是比较常用的UI框架。调试了一段时间发现和以往调试过的LVGL图片资源处理有些区别,之前别的平台可以把图片转成.c文件即可调用图片资源,在富芮坤平台上需要将图片资源处理单独烧录进flash对应地址,然后再通过img_def.h图片对应地址列表进行调用图片资源。官方资料包里面目前没有发现图片资源处理的这部分文档说明,希望官方后续能提供相关文档。
本来想自己弄一套UI仪表盘,但是没有图片资源处理的方法文档,就沿用官方LVGL demo里面的一套仪表UI界面进行修改移植。
步骤总的分为两大部分,如下:
二、CAN收发测试
1、硬件连接(开发板PA10-PA11跳线连接上CAN芯片)

2、修改波特率,由于目前手上CAN分析仪只支持2M和4M的CANFD波特率,所以需要把工程里面1M波特率改成2M才能进行正常通信。

3、使用PCAN分析仪测试接收和发送,在定时器里面调用两个发送函数



4、开发板接收显示测试

三、进行仪表盘页面的CAN收发移植和数据显示修改
1、将原有的demo的UI显示屏蔽,修改成只显示仪表盘界面

然后需要熟悉fr_lv_instrument_panel_func函数里面各个部件对应仪表盘显示的关系
2、添加CAN驱动头文件

3、添加初始化CAN总线函数

4、修改定时器执行函数refresh_timer_cb,在里面读取can总线数据

5、修改成全局,方便后面调用


6、解析can总线数据内容,转换成速度更新显示,原demo写的指针旋转角度计算有刻度误差,需要修改计算方法。

7、最后进行通信测试


四、总结
这款FR3068芯片外设资源非常丰富,可以满足大多应用场景。目前调试下来基本上顺利,碰到的一些小问题可以查询提供的手册文档解决。
建议:
1、希望官方提供LVGL图片资源处理相关文档,方便后续开发者进行自定义UI修改。
2、希望官方可以把文档做的更详细一点,比如提供的demo例子出一个文档进行函数说明讲解,方便开发者理解和移植。