CH32v003J4M6入门踩坑

烧录

按照下面步骤:
1. Clear All Code Flash-By Power off
2. MounRiver Studio 正常下载
在这里插入图片描述

硬件概述

在这里插入图片描述
VDD = 2.7~5.5V
J4M6内存:16KB flash + 2kSram+ 64B 配置
GPIO 分为 A C D三类
可以重新映射:UART x1, SPI x1, I2C x1, 3 组 GPIO x18, SWIO x1

时钟Clock包括: 内部高频 RC 振荡器(HSI 24M)、内部低频 RC 振荡器(LSI 128K)、外接高频振荡器(HSE)
时钟产生

  • LSI->gpio / wdg / pwr
  • HSI->DIV/mux->SYSCLK/AHBCLK
  • AHBCLK prescaler -> AHB peripheral / Core System Timer / TIM2/TIM1/ADC / Flash/ SRAM/DMA

基本编程基础

常见流程

初始化过程

NVIC_PriorityGroupConfig 配置中断优先级分组
SystemCoreClockUpdate 更新系统时钟
Delay_Init delay函数初始化
EXTI_INT_INIT 外部中断使能
RCC_APB2PeriphClockCmd 模块上电
GPIO_Init 初始化GPIO

模块上电

AHB_peripheral
RCC_AHBPeriph_DMA1:直接存储器访问(DMA)控制器
RCC_AHBPeriph_SRAM:静态随机存取存储器(SRAM)的时钟使能位。

APB2_peripheral
RCC_APB2Periph_AFIO:模拟功能IO(Alternate Function IO)和中断/事件控制器(EXTI)的时钟使能位。
它用于配置GPIO引脚的复用功能、重映射功能以及管理外部中断。
RCC_APB2Periph_GPIOA/GPIOC/GPIOD:分别代表GPIOA、GPIOC、GPIOD端口的时钟使能位
RCC_APB2Periph_ADC1:模拟数字转换器(ADC)
RCC_APB2Periph_TIM1:定时器1的时钟使能位。定时中断、PWM输出等功能的定时器。
RCC_APB2Periph_SPI1:串行外设接口(SPI)1的时钟使能位
RCC_APB2Periph_USART1:通用同步异步收发传输器(USART)

APB1_peripheral
RCC_APB1Periph_TIM2:定时器2的时钟使能位。与TIM1类似,但属于APB1总线。
RCC_APB1Periph_WWDG:窗口看门狗(Window Watchdog)的时钟使能位
RCC_APB1Periph_I2C1:I2C(Inter-Integrated Circuit)接口1的时钟使能位
RCC_APB1Periph_PWR:电源控制(Power Control)的时钟使能位。PWR模块用于控制STM32的电源管理功能,如低功耗模式Stanby等。

2. 低功耗设计

2.1 电压与功耗

实际测试2.9V为临界电压.当 VDD < 2.9V 时,电流功耗会增大。

2.2 频率与功耗

在这里插入图片描述
方案1.调节运行时,CPU 频率
SystemInit()需要自定义

修改clock
SystemCoreClockUpdate() 执行的是乘法
SystemCoreClock = SYSCLK_FREQ_8MHz_HSI 是除法申明, 两个不冲突
如果继续修改更低的频率
	1. 需要自定义
		#define DIV_NUM 8    //RCC_HPRE_DIV support: 1 2 3 4 5 6 7 8 16 32 64 128 256 
		#define SYSCLK_FREQ_CUSTOM_HSI    (24000000/(DIV_NUM)) // (8000 * 1000)
	 2. 同时需要修改
	 debug.c中
		 Delay_Init
		 	static float  p_us = 0;
		 	p_us = SystemCoreClock / 8000000.0;  // us休眠,默认只支持>=8M的clock,改为浮点,否则p_us=0
		 Delay_Us
		 	p_us 加类型强制转换

2.3 睡眠sleep和待机Standby

在这里插入图片描述
在这里插入图片描述

  1. GPIO 全部下拉
    https://www.wch.cn/bbs/thread-96767-1.html

PWM设置

在这里插入图片描述
周期= sys clk / psc
占空比 = cpp / arr

编程pwm开启过程

  • 开启时钟
  • 配置定时器
  • 配置比较通道
  • 配置PWM输出端口

LinkE 升级

  1. 打开 WCHLinkEJtagUpdTool.exe
    注意:WCHLinkEJtagUpdTool.exe只要打开就会进入 Update模式,无法退出。除非重新烧录。
  2. 选择
    a. 第一个:C:\MounRiver\MRS_Community\ExTool\SWDTool\Firmware_Link\FIRMWARE_CH32V305.bin
    b. 第二个:C:\MounRiver\MounRiver_Studio\ExTool\SWDTool\Firmware_Link\FIRMWARE_CH549.BIN
  3. 烧录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值