
代码如下: void Clk_Config(void) { CLK_DeInit(); //时钟初始化 CLK_HSICmd(ENABLE); //启动内部时钟16M // CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_HSI); GPIO_Init(GPIOC,GPIO_Pin_4,GPIO_Mode_Out_PP_High_Fast);//初始化端口 CLK_PeripheralClockConfig(CLK_Peripheral_TIM2,ENABLE); //配置TIM2时钟 CLK->CCOR = 0xe2; //CCO输出 } void GPIO_Config(void) { GPIO_Init(LED_PORT,LED_PINS,GPIO_Mode_Out_PP_Low_Slow);//初始化LED端口 GPIO_Init(GPIOC,GPIO_Pin_5,GPIO_Mode_In_FL_No_IT);//初始化输入端口 // GPIO_Init(GPIOC,GPIO_Pin_4,GPIO_Mode_Out_PP_High_Fast);//初始化端口 } void TIM2_Config(void) { TIM2_DeInit(); //初始化TIM2 // TIM2->CR1 = 0x06; TIM2->CCER1 &= 0xee; //禁止输入捕获 TIM2->CCMR1 |= 0x01; //IC1通道被配置为输入,选择TI1FP1通道,8分频 TIM2->CCER1 &= 0xec; //CH1上升沿触发IC1 TIM2->CCMR2 |= 0x02; //IC1通道被配置为输入,选择TI1FP2通道,8分频 TIM2->CCER1 |= 0x20; //CH1下降沿触发IC2 // TIM2->CCER1 = 0x31; //TI1FP1为上升沿有效,TI1FP2为下降沿有效, TIM2->SMCR |= 0x54; //TI1FP1触发复位 TIM2->IER |= 0x06; //允许捕获比较1/2中断 TIM2->CCER1 |= 0x11; //是能输入捕获 TIM2_Cmd(ENABLE); } __interrupt void IRQHandler() { u8 i=0; if(TIM2_GetITStatus(TIM2_IT_CC1)) // if(TIM2->SR1&TIM2_IT_CC1) { TIM2_ClearITPendingBit(TIM2_IT_CC1); ret1 = TIM2_GetCapture1(); //周期 ok = 1; i++; if(i == 0xff) i = 0; } else if(TIM2_GetITStatus(TIM2_IT_CC2)) { TIM2_ClearITPendingBit(TIM2_IT_CC2); ret2 = TIM2_GetCapture2(); //高电平 i++; if(i == 0xff) i = 0; } return; } void main(void) { GPIO_Config(); Clk_Config(); TIM2_Config(); enableInterrupts(); //打开总中断 // IRQHandler(); while(1){ Display(); } } 求大神指点下,谢谢 |
你试试CCMR先修改,再修改CCER.我记得CCMR要先关闭CCER里面的那一位才能写入.具体忘记了.你试试 |
STM8S003无法检测到引脚电平
STM8 @svlreg 问题
STM8AF62XX+L99PM62GXP LIN通讯的电路原理图有吗?官网提供了一套软件,没找到对应的原理图,请大家指教一下
求一个STM8S207例程
初次接触STM8,请问在STVD中,为什么这个Struct会报错
STMS005K6T6 如何采集内部参考电压。
stm8s003 adc中断和通道切换的问题
adc施密特触发器stm8
stm8l051f3 TSSOP20 封装,待机模式下,2天后,电流突然增加到140UA
STM8S用STVP烧录怎么加密?