本帖最后由 Kalman 于 2022-7-13 08:38 编辑

非常感谢面包板和沁恒给予这次测评开发板的机会,熟悉开发板后,先来个点灯测试
1.开发环境设置
点击SDK Manager,安装支持包
forum.jpg
勾选1.0.8版本,点击安装1资源包
forum.jpg
安装完成后显示
forum.jpg
RTT Studio已安装1.0.3版本WCH-LINK,可安装升级至1.0.4版本
forum.jpg

2.新建工程
文件新建RTThread项目,在新建项目界面中,project name设置为CH32V307_LED,选择基于开发板,开发板选择CH32V307V-R1,点击完成
forum.jpg
新建项目工程列表如下
forum.jpg

3.硬件
LED2与PA1连接
forum.jpg
forum.jpg
forum.jpg

4.软件
PA1引脚可复用作TIM2_CH2  PWM输出
forum.jpg

TIM2CH2配置PWM输出
void TIM2_PWMOut_Init( unsigned short arr, unsigned short psc, unsigned short ccp )
  • {
  •     GPIO_InitTypeDef GPIO_InitStructure={0};
  •     TIM_OCInitTypeDef TIM_OCInitStructure={0};
  •     TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure={0};
  •     RCC_APB1PeriphClockCmd( RCC_APB1Periph_TIM2, ENABLE );
  •     RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE );
  •     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
  •     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  •     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  •     GPIO_Init( GPIOA, &GPIO_InitStructure );
  •     TIM_TimeBaseInitStructure.TIM_Period = arr;
  •     TIM_TimeBaseInitStructure.TIM_Prescaler = psc;
  •     TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
  •     TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;
  •     TIM_TimeBaseInit( TIM2, &TIM_TimeBaseInitStructure);
  •     TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
  •     TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  •     TIM_OCInitStructure.TIM_Pulse = ccp;
  •     TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
  •     TIM_OC2Init( TIM2, &TIM_OCInitStructure );
  •     TIM_CtrlPWMOutputs(TIM2, ENABLE );
  •     TIM_OC2PreloadConfig( TIM2, TIM_OCPreload_Disable );
  •     TIM_ARRPreloadConfig( TIM2, ENABLE );
  •     TIM_Cmd( TIM2, ENABLE );
  • }
  • 复制代码
    主函数
    int main(void)
  • {
  •     rt_kprintf("MCU: CH32V307\n");
  •         rt_kprintf("SysClk: %dHz\n",SystemCoreClock);
  •     rt_kprintf("www.wch.cn\n");
  •         LED1_BLINK_INIT();
  •         GPIO_SetBits(GPIOA,GPIO_Pin_0);
  •         TIM2_PWMOut_Init(300, 144-1, 0);//144M/144=1M(1us),300*1us=300us
  •         while(1)
  •         {
  •             for(LEDPwmVal = 0; LEDPwmVal < 300; LEDPwmVal++)
  •             {
  •                 TIM_SetCompare2(TIM2, LEDPwmVal);
  •                 rt_thread_mdelay(10);
  •             }
  •             for(LEDPwmVal = 300; LEDPwmVal > 0; LEDPwmVal--)
  •             {
  •                 TIM_SetCompare2(TIM2, LEDPwmVal);
  •                 rt_thread_mdelay(10);
  •             }
  •         }
  • }
  • 复制代码
    5.编译调试
    点击编译
    forum.jpg
    forum.jpg
    点击下载
    forum.jpg
    显示WCH RISC-V MCU ProgramTool窗口,①Dev Mod选择WCH-LinkRV,②MCU Series选择CH32V30x,③Chip Mem选择192KROM+128KRAM后点击Set设置,设置成功后,显示Succeed to set chip flash allocation,④Tar File选择编译待烧录的.bin文件,⑤点击Execute执行下载
    forum.jpg
    下载成功后显示Succeed
    forum.jpg
    6.呼吸灯显示
    WeChat_20220712215406_ (1).gif