|
代码如下: 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里面的那一位才能写入.具体忘记了.你试试 |
STM8S103飞线外接芯片,I2C不能得到slaveAddress应答,通讯失败。
测试标签123
IAR FOR ARM和IAR FOR STM8无法共存,
STM8L052,液晶内部电源怎么用?
STM8S105C6T6 UART2串口,能接收数据,不能发送数据
STM8S105K4 串口2 无奇偶校验,也能接收 偶校验的 数据
在STM8S的IAP使用中断和APP使用中断问题
STM8L151 SMBUS设计
STM8S103F复位异常
STM8L的LCD调试时不亮
微信公众号
手机版