音箱可视化彩屏-入门到进阶开发指导
📎 原始文档:https://www.kdocs.cn/l/chwFstfLwzpb 音箱可视化彩屏-入门到进阶开发指导
目前支持内容:
- 彩屏:701 703
- 外挂FLASH放资源:701
- UNICODE字库:701 703 更为详细的问题可以参考手表UI使用指南:
穿戴手表JL701N-入门到进阶开发指导.otl
文字、图片、切图、时间等UI的简单入门实例:
UI入门简单实列.otl
701和703彩屏方面区别:
701:支持IMB+FLASH_SFC读取,在推屏UI处理上有优势。
703:只支持IMD推屏,UI效率不如701。
尽量选用701做彩屏开发,DEMO更完善,彩屏方面的外设更多,在UI不复杂情况下也可选用703.
701DEMO程序:(屏幕接口和外挂FLASH接口都是固定接口)
feature_701_leaudio_214_QSPI_4线SFCFLASH.zip
feature_7012_leaudio_214_SPI7789_双线FLASHSFC.zip
703DEMO程序:(屏幕接口接口是固定接口)
feature_703_LCD_ST7789.zip
- 功能模块调试:
- UI
- 注意事项:所有UI线程的控件操作都需要在UI线程下调用。具体传递消息的方法可以参考第三部分的 跨线程如何控制UI的控件
- 字库 ASCII 码是最早的字符编码标准,用于表示英文字符和一些特殊符号。
GB2312 和 GBK 是用于简体中文的字符编码标准。
Unicode 是为了解决全球字符集的统一而设计的,提供了唯一的字符标识。
UTF-8 和 UTF-16 是 Unicode 的变长字符编码方案,用于存储和传输 Unicode 字符,其中 UTF-8 在互联网上得到广泛应用。
可视化公版使用的字库为UNICODE字库,只支持使用UTF8编码和UTF16进行显示,其余编码如GBK GB2312等内码需要进行转换。具体转换实现参考第三部分文字编码。
- 自己产生字库参考:字模提取工具说明.otl 只有text类型的字库才会调用字库,这也是歌词显示使用的数据类型

- 外设模块调试
- 外挂FLASH 由于芯片内部使用的是IMB硬件加速模块进行UI合成,需要对FLASH进行直接地址访问,所以FLASH只能使用SFC方式进行读取,使用的IO固定。
- 硬件 四线接法:
双线接法:
701:该IO口不能映射
双线情况使用CLK DO DI,其余D2 D3接高电平。
703:
还未调试 - 软件
- 下载打包
isd_config_rule.c配置:
- 如何检验你的文件是否正常打开
通过fopen打开对应路径的资源文件,读出开头的一段的字符,和你打包进去的文件做对比。
u8 buf_test[128];
FILE *fp=fopen("storage/virfat_flash/C/JL/JL.sty","r"); //内置FLASH用open_resfile
if (!fp)
{
printf(">>>JL.sty open fail");
}else{
fread(buf_test, sizeof(buf_test), 1, fp);
printf("read buf:");
put_buf(buf_test,128);
fclose(fp);
fp = NULL;
printf(">>JL.sty open succ\n");
}
- 屏幕
- 硬件 支持:SPI DSPI QSPI 8线MCU推屏 701和703系列均使用固定IO。
701和703系列使用的IO口不一样,一定要注意!
701系列使用的IO口:
例如:7789类型普通SPI口使用的IO为: CLK-> PA7 DAT->PA8 (DC/RS 数据命令选择脚可以映射)
📌QA:如7012CPA9的IO口没有引出来怎么办?
使用另一组IMD的IO口:具体IO参考对应芯片datasheet。
703系列使用的IO口:
例如7789系列的屏幕:CLK-> PA6 DAT->PA7 。(DC/RS 数据命令选择脚可以映射)
其余屏驱类型的用法和接法以数据手册说明为准。
- 软件 注意:屏幕驱动使用的是IMD推屏,和SPI无关


- 屏幕驱动代码说明
屏驱配置参考文档:(701和703是同样的):
701N屏幕驱动配置说明.pdf - 如何点亮自己的屏幕 在确保IO连接正确的情况下,参考上面的文档,看对应的屏幕波形图示例,自己的屏幕符合哪一种波形时序图,去进行对应的配置
如果还是不亮,打开屏幕驱动的debug模式,这种情况下UI会持续的推纯色数据,逻辑分析仪抓取初始化数据和颜色数据是否正确,如果都是正确无误的,联系屏幕提供方协助看看。
- 触摸TP
- 硬件 触摸TP使用的硬件IO可以任意,能实现IO中断捕获功能即可
- 软件 在io触发的中断中,iic获取到此时的触摸数据后,通过ui_touch_msg_post往UI层传递坐标,其余效果实现都由UI层处理,用户只需要关注IO中断正常,IIC能正常读取到触摸数据即可。

常用功能调试 UI简单入门使用参考:
UI入门简单实列.otl歌词 通过TCFG_BT_MUSIC_INFO_ENABLE 控制,在蓝牙回调user_get_bt_music_info 中获取到歌词,专辑名,播放时间等
图片 支持蓝牙BIP图显。
跨线程如何控制UI的控件
- 消息类事件 如蓝牙连接成功、开始播放音乐等系统事件等需要在UI线程中做处理的。
通过UI_MSG_POST将消息发送到UI线程进行处理 - 数据类事件 如歌词等,需要使用全局buf传递。数据接收完成后,发送消息让UI线程读取buf进去处理。
- 文字编码 常用文字编码分为内码和UNICODE码两种。
- 内码 (GB2312 GBK 1152字库) 内码是各国根据本国语言