非常感谢面包板和沁恒给予这次测评开发板的机会,熟悉开发板后,先来个点灯测试
1.开发环境设置
点击SDK Manager,安装支持包
勾选1.0.8版本,点击安装1资源包
安装完成后显示
RTT Studio已安装1.0.3版本WCH-LINK,可安装升级至1.0.4版本
2.新建工程
文件新建RTThread项目,在新建项目界面中,project name设置为CH32V307_LED,选择基于开发板,开发板选择CH32V307V-R1,点击完成
新建项目工程列表如下
3.硬件
LED2与PA1连接
4.软件
PA1引脚可复用作TIM2_CH2 PWM输出
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.编译调试
点击编译
点击下载
下载成功后显示Succeed
6.呼吸灯显示