分享

MRS2 IDE搭配CH585多模无线SoC,LCD开发手记

 TopSemic嵌入式 2025-02-20 发布于北京

首先简单介绍一下开发环境。CH585使用沁恒的MounRiver IDE开发,可以在官方网站mounriver.com下载,软件完全免费,没有代码尺寸限制,目前已经更新迭代到MRS V2.1.0版本。MounRiver Studio Ⅱ(MRS2)为MounRiver Studio的升级版本,从V2.1.0开始,框架更换至更现代的VSCode,界面相比Keil更加简约大气,操作更加流畅,在工程管理、代码编辑、编译、调试等方面均兼容之前版本,效率和功能等方面也有所提升。

安装非常简单,将下载的压缩包解压后,直接双击exe文件安装即可。

到这里我终于明白了MounRiver的含义,原来是指山河,取自“天圆地方,山河相依”。

CH585的SDK位于芯片详情页下方,供了丰富的参考应用示例。

我们打开EVTEXAMLCD例程,编译一下,MRS2速度感觉比我之前使用的MRS快了很多,看来是做了不少的优化。

生成的hex文件位于obj文件夹下

开发板未自带LCD段码屏,我用手上的一块4COM屏通过飞线连接,虽然看起来较乱,但调试功能不受影响。

D:wangwenxueWeChat FilesWeChat Filesqq787671932FileStorageTemp378b8d49fedc7d398cbe8a1d3868522.jpg

段码屏的引脚只有COM和SEG引脚,连接方式按照手册里COM和SEG对应的MCU引脚连接即可。

有的小伙伴可能会问,管脚是不是必须要完全对应着接,即LCD屏幕的COM0必须接MCU的COM0管脚,答案当然不是必须的,顺序是可以任意打乱的,只要不是COM接到SEG上去就行。能顺序接尽量顺序接,这样软件代码实现上好对应,不是顺序也没有问题。

CH585支持USB和UART下载,我这里使用USB进行下载,只要连接一个Type-C数据线到电脑就可以了。

下载软件WCHISPTtool位于以下MounRiver安装目录。

D:\MounRiver\MounRiver_Studio2\resources\app\resources\win32\components\WCH\Others\WCHISPTool\default\WCHISPTool_CH57x-59x

按下板子上Download按键(PB22引脚接到GND),重新上电后,设备列表里会显示CH58x设备,

选中要下载的文件,点击下载按钮就可以下载了。下载完成后界面如下:

如果遇到USB无法正常识别的问题,更新下驱动就能解决,

起初是以为板子有问题,后来在沁恒的社区论坛里找到了解决办法,安装CH343SER.EXE和CH372DRV.EXE两个驱动后,问题就解决了。驱动直接在沁恒官网上搜索对应名称就能找到。这里和大家推荐下沁恒的这个bbs论坛:https://www./bbs,非常好,上面有很多有价值的帖子,遇到问题时可以先上去查一查,上面也有沁恒的技术人员做解答。

原始的示例代码下载进去LCD上显示一片混乱,这个很正常,因为使用的屏幕不同,代码肯定也需按照实际使用屏的真值表进行修改才行。

修改了一个显示”87654”一串数字的显示效果:

下面告诉大家怎么改,

首先要理解CH58x_lcd.h代码里这一串LCD_WriteData宏定义的含义。

要理解它,就得看明白手册里LCD RAM0、RAM1、RAM2、RAM3这4个寄存器的含义。CH585 RAM寄存器的定义和我之前用的其他MCU不太一样。其他MCU一般单个RAM寄存器的32位分别对应着32个SEG段,4个RAM寄存器对应着4个COM。而CH585单个RAM寄存器对应8个SEG段,每一段4位,分别对应着4个COM。

上述代码中每一个宏定义参数是1个字节8位,对应操作了2个SEG。

理解上述含义之后,再对照着LCD屏的真值表就可以按照自己想要的进行显示了。

比如上述1号位要显示数字8,对应1A、1B、1C、1D、1E、1F、1G全为1,P1为0

调用以下语句即可实现:

LCD_WriteData1( 0x7F );

1号位要显示数字7,对应1A、1B、1C为1,1D、1E、1F、1G 、P2为0

调用以下语句即可实现:

LCD_WriteData2( 0x51 );

除了上述修改,还需调整LCD的驱动电压。需注意,CH585仅支持2.5V和3.3V两档

代码里默认是3.3V,我这里将它修改为了2.5V,显示效果更好

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多