• 沁恒CH32F103C8T6(一): Keil5环境配置,示例运行和烧录


    目录

    概述

    CH32F103系列是沁恒生产的32位Cortex-M3 MCU, 片上集成了时钟安全机制、多级电源管理、 通用DMA控制器等. 具有 2 路 USB2.0接口、多通道 TouchKey、 12 位 DAC 转换模块, 多通道 12 位 ADC、 多组定时器、 CAN 通讯控制器、 I2C/USART/SPI 等丰富的外设资源.

    • 与STM32F103系列芯片相比, 管脚和寄存器兼容, 增加了USB功能, 有2个USB, 一个Host, 一个Device, 增加了DAC, 供电兼容5V
    • Flash下载算法和内部BootLoader和STM32不兼容, 需要使用沁恒提供的算法, 或者使用沁恒的下载软件通过串口和USB下载.

    产品特点

    • Cortex-M3内核, 72MHz系统主频
    • 单周期乘法和硬件除法
    • 20KB SRAM, 64KB CodeFlash
    • 供电范围: 2.7V-5.5V, GPIO同步供电电压
    • 多种低功耗模式: 睡眠/停止/待机
    • 上电/断电复位(POR/PDR)
    • 可编程电压监测器(PVD)
    • 7通道DMA控制器
    • 12位模数转换ADC, 1us转换时间
    • 16路TouchKey通道检测
    • 12位数模转换DAC
    • 7个定时器
    • 1个USB2.0 FullSpeed主机/设备接口(全速和低速)
    • 1个USB2.0 FullSpeed设备接口(全速和低速)
    • 1个CAN控制器(2.0B主动)
    • 2个I2C接口(支持SMBus/PMBus)
    • 3个USART接口
    • 2个SPI接口(支持Master和Slave模式)
    • 51个I/O口, 所有IO口都可以映射到16个外部中断
    • CRC计算单元, 96位芯片唯一ID
    • 串行单线调试(SWD)接口
    • 封装形式: LQFP64M、LQFP48、QFN48

    Keil MDK 开发环境配置

    1. 器件库代码示例和工具下载

    2. 在Keil MDK中添加器件

    • 打开Keil MDK, 点击菜单 Project -> Manage -> Pack Installer
    • 等打开的窗口载入完毕, 点击 File -> Import , 选择Keil.WCH32F1xx_DFP.1.0.1.pack
    • 完成后, 可以在Device Tree上看到 WCH 以及下面的 4 个型号

    3. 导入示例项目

    EVT包中, EXAM目录下是各个外设的演示代码, 如果要复制到你的工作目录, 务必将 EXAM/SRC 这个目录也复制过去, 在工作目录中保持这个结构

    ├─GPIO
    │  └─GPIO_Toggle
    └─SRC
        ├─CMSIS
        ├─Debug
        ├─Startup
        ├─StdPeriphDriver
        │  ├─inc
        │  └─src
        └─USBLIB
            ├─CONFIG
            └─USB-Driver
                ├─inc
                └─src
    

    通过Keil MDK的 Project -> Open Project 打开 CH32F10x.uvprojx 文件打开示例项目. 如果左侧文件树没有显示黄三角的警告, 文件载入正常, 就可以编译了.

    4. 修改GPIO_Toggle为板载LED(对应C13)的闪灯

    将main.c代码替换为以下内容, 代码和STM32F103几乎是一样的

    #include "debug.h"
    
    
    void GPIO_Toggle_INIT(void)
    {
        GPIO_InitTypeDef  GPIO_InitStructure;
    
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);	    
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;              
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;           
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Init(GPIOC, &GPIO_InitStructure);                  
    }
    
    int main(void)
    {
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        Delay_Init();
        USART_Printf_Init(115200);
        GPIO_Toggle_INIT();
        printf("SystemClk:%d\r\n", SystemCoreClock);
        printf("GPIO Toggle TEST\r\n");
    
        while(1)
        {
            Delay_Ms(250);
            PCout(13) ^= (1<<0);
    	}
    }
    

    烧录/下载

    CH32F103 有三种程序下载方式, 分别为:ST-LINK下载, 串口下载与USB下载

    通过ST-link下载

    • 将开发板通过ST-link连上电脑
    • 在Keil MDK中, 点击项目配置图标, 打开项目选项, 切换到Debug标签
    • 在Use中选择 ST-Link Debuger
    • 点击右侧的 Settings, 在打开的对话框中, Target Com要选择SW, 此时右侧的SW Device, 应该能看到这个ST-Link的信息, IDCODE为0x2Bxxxxx, Device Name为 ARM CoreSight SW-DP 之类的设备名
    • 在上面打开的对话框中, 切换到Flash Download选项, 如果下面的Programming Algorithm中, 不是CH32F1xx Flash, 需要点击下面的add增加算法, 选择CH32F1xx Flash
    • 还是这个对话框, 记得勾选 Reset and Run选项
    • OK保存

    之后, 和STM32的用法一样, 点击F8就可以直接下载

    串口下载

    1. 硬件连接

    Rx  -> A9
    Tx  -> A10
    GND –> GND
    VCC –> 3V3
    

    2. BOOT0设置

    跳线BOOT0设置为高电平

    3. 使用软件 WCHISPTool 下载

    • 下载方式: 选择串口
    • 使能USB内部上拉电阻: 如果usb有上拉电阻可以不勾选
    • 选择下载串口
    • 选择要下载的HEX或者bin文件
    • 点击下载

    USB下载

    1. 硬件连接

    CH32F103有2个USB口, 一个是主机USB, 一个是设备USB, 分别对应不同的管脚

    HUSB

    PB7 -> D+
    PB6 -> D-
    

    USB

    PA12 -> D+
    PA11 -> D-
    

    软件默认下载使用HUSB, 可以用一个USB转Dip的小模块和开发板连接

    2. BOOT0设置

    跳线BOOT0设置为高电平

    3. 使用软件 WCHISPTool 下载

    • 下载方式: 选择USB
    • 解除读保护
    • 看到usb设备
    • 选择要下载的HEX或者bin文件
    • 点击下载

    参考

  • 相关阅读:
    db2新添用户
    merge的用法
    oracle常用命令
    oracle建用户
    获得当前时间的PRO
    全部快捷方式图标变成LNK文件怎么办
    随机生成数据的三种方法
    db2查看表空间
    db2疑难解决
    AVG()和to_date()函数的使用
  • 原文地址:https://www.cnblogs.com/milton/p/15840921.html
Copyright © 2020-2023  润新知