首先简单介绍一下开发环境。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屏通过飞线连接,虽然看起来较乱,但调试功能不受影响。 ![]() 段码屏的引脚只有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,显示效果更好 ![]() |
|
来自: TopSemic嵌入式 > 《待分类》