1.CH32F103FC8T6的芯片准备知识
习惯了STC和Arduino的串口下载,对于arm32-M3指令集的国产芯片CH32F103C8T6,也在摸索着使用串口下载。在开发板的包里,干货满满,但是手头上没有SWD接口的编程器。找了资料,STM32F103是可以用串口下载的。前提是,你要连接好PA9(UART1_TX),以及PA10(UART1_RX)到USB-TLL转接板,比如CH340G的小板。
另外,需要设置BOOT启动的方式。跳线接法: BOOT1 -->GND, BOOT0-->VCC,这样才会从芯片内的出厂固件内存引导启动,这里相当于Arduino的BootLoader的功能。平常的接法是BOOT0-->GND,这是从Flash区运行启动代码,跳过了厂家代码区。
2.硬件准备好后,需要软件。下载WCH_ISP_tool(2.8)下载链接.
安装好后,界面如图。
注意要选择CH32F1系列标签,Keil MDK编译器生成的Hex文件,需要再用户程序文件框内选择。
注意可以多试几次,比如插拔USB转串口小板。还有当出现“解除写保护”,需要先点击“解除保护”按钮。之后再点击下载。
4.测试UART_Printf串口打印功能
开发板的串口调试功能可以方便的输出一些具体的信息,作为程序运行的重要参考。这里我测试了math.h的正弦函数计算功能。算是发挥一下32位CPU的优势。想起来计算氢弹的理论的501机,每秒不过几十万次加法运算。这个机子已经远远超过了当年的庞然大物。
测试的源码:
main.c
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
Delay_Init();
USART_Printf_Init(115200); /* printf using USART1 */
printf("SystemClk:%d\r\n",SystemCoreClock);
printf("This is printf example\r\n");
printf("sin(pi/3)=%f",sin(PI/3));
while(1)
{
}
}
使用串口助手来接收信息。
附阅读材料:中国计算机60年国产计算机前史
|