一、前言
开发板收到了几天,由于各种琐事缠身,真正可以静下心来研究的时间并不多。
排除所有干扰才能获得一片独属于自己的恬静,开启一段新的开发板探索之旅:

登录沁恒的官网可以获得所需一切:https://wch.cn/
产品手册:CH585DS1.PDF
开发资源:CH585EVT.ZIP
CH585评估板说明及参考应用例程,包含BLE蓝牙应用、MESH组网、2.4G无线、高速USB、USB-Host/Device、ISO14443-3A近场通信NFC、串口、LCD驱动、SPI、I2C、ADC模数转换、RTC、触摸按键Touch-Key、IAP、手机APP、蓝牙空中升级OTA等例程。
需要说明的是CH585DS1.PDF中还包括开发板的原理图
开发IDE环境mounriver:https://www.mounriver.com/
其中MounRiver_Studio_Setup_V220.zip是基于vscode,
MounRiver_Studio_Setup_V192.zip是基于eclipse。
由于之前使用了沁恒的开发板,已安装过早期的MounRiver,本次只是将版本升级到V192。
如果此时在MounRiver新建工程可以看到CH585已经可以找到

ISP下载工具WCHISPTool:
https://www.wch.cn/downloads/WCHISPTool_Setup_exe.html
CH585支持USB和串口方式的ISP下载,所以可以抛开WCH-LINK,因为USB ISP下载真的很方便。
二、点灯验证
MounRiver打开例程中的CH585EVT\EVT\EXAM\GPIO\CH585M_GPIO
主要代码段:
int main()
{
uint8_t len;
HSECFG_Capacitance(HSECap_18p);
SetSysClock(CLK_SOURCE_HSE_PLL_62_4MHz);
GPIOA_SetBits(GPIO_Pin_9);
GPIOA_ModeCfg(GPIO_Pin_8, GPIO_ModeIN_PU);
GPIOA_ModeCfg(GPIO_Pin_9, GPIO_ModeOut_PP_5mA);
UART1_DefInit();
GPIOA_ModeCfg(GPIO_Pin_0, GPIO_ModeOut_PP_5mA);
GPIOA_ModeCfg(GPIO_Pin_1, GPIO_ModeOut_PP_5mA);
GPIOB_SetBits(GPIO_Pin_22);
GPIOB_ModeCfg(GPIO_Pin_22, GPIO_ModeIN_PU);
#if 1
UART1_SendString(TxBuff, sizeof(TxBuff));
#endif
#if 1
while(1)
{
GPIOA_SetBits(GPIO_Pin_0);
GPIOA_ResetBits(GPIO_Pin_1);
DelayMs(500);
GPIOA_SetBits(GPIO_Pin_1);
GPIOA_ResetBits(GPIO_Pin_0);
DelayMs(500);
len = UART1_RecvString(RxBuff);
if(len)
{
UART1_SendString(RxBuff, len);
}
}
#endif
#if 0
UART1_ByteTrigCfg(UART_7BYTE_TRIG);
trigB = 7;
UART1_INTCfg(ENABLE, RB_IER_RECV_RDY | RB_IER_LINE_STAT);
PFIC_EnableIRQ(UART1_IRQn);
#endif
while(1);
}
可以看到,程序初始化了UART1(TX:PA9,RX:PA8)
PA0、PA1用于反转LED
按照沁恒开发板惯例,板载LED不和任何gpio相连,需要自己用杜邦线将PA0<--->LED0,PA1<--->LED1连接
而UART1也需要外接串口工具。
连好线大概是这样:

然后用ISP工具烧录,用法很简单,USB FS接入电脑,S1开关OFF状态按住boot,调整S1开关为ON放开boot,这时,ISP工具已识别USB设备,可以下载了。

运行一下可以看到LED0和LED1交替闪烁,并且在UART1接收到数据后,回显输出
