完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
用CH32V103C8T6作时间中断,PA0和PA1各控制一个LED
根据例程,如下程序已经实现两个LED都在闪烁,即时间中断功能已经实现 int main(void) { u8 j=0; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); Delay_Init(); USART_Printf_Init(115200); LED_Init(); tiM3_Init(4999,7199); printf("SystemClk:%drn",SystemCoreClock); while(1) { GPIO_WriteBit(GPIOA, GPIO_Pin_0, (j==0) ? (j=Bit_SET):(j=Bit_RESET)); Delay_Ms(100); } } void TIM3_IRQHandler(void) { static u8 i=0; if(TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //检查TIM3中断是否发生。 { TIM_ClearITPendingBit(TIM3,TIM_IT_Update); //清除TIM3的中断挂起位。 printf("Enter interruptn"); GPIO_WriteBit(GPIOA, GPIO_Pin_1, (i==0) ? (i=Bit_SET):(i=Bit_RESET)); } } 上述功能正常实现,现程序稍作修改:用一个全局变量Tim3Flag用来标记是否有时间中断产生,在主循环中查询标记,查询到标记置1后将标记清零并闪烁LED , 程序如下: int main(void) { u8 j=0; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); Delay_Init(); USART_Printf_Init(115200); LED_Init(); TIM3_Init(4999,7199); printf("SystemClk:%drn",SystemCoreClock); while(1) { if(Tim3Flag){ Tim3Flag = 0; GPIO_WriteBit(GPIOA, GPIO_Pin_0, (j==0) ? (j=Bit_SET):(j=Bit_RESET)); } } } void TIM3_IRQHandler(void) { static u8 i=0; if(TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //检查TIM3中断是否发生。 { TIM_ClearITPendingBit(TIM3,TIM_IT_Update); //清除TIM3的中断挂起位。 Tim3Flag = 1; printf("Enter interruptn"); GPIO_WriteBit(GPIOA, GPIO_Pin_1, (i==0) ? (i=Bit_SET):(i=Bit_RESET)); } } 上述修改后的程序, 正常情况应该是2个LED同频率闪烁,串口定时收到字符串“ Enter interrupt ” 。现在的情况是:串口能定时收到信息,PA1控制的LED正常闪烁,主循环中查询标记位并由PA0控制的LED不闪烁。说明定时器工作了,主循环查询标记却查询不到,不知是什么原因? |
|
相关推荐
2个回答
|
|
全局变量需要使用volatile定义,这个需要注意一下。
|
|
|
|
加上volatile问题解决了
|
|
|
|
只有小组成员才能发言,加入小组>>
527 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2905 浏览 2 评论
2401 浏览 1 评论
874浏览 2评论
691浏览 1评论
riscv-none-embed-objcopy: \'PWM_Output.elf\': No such file这个咋解决,
422浏览 1评论
534浏览 1评论
请教一下,Mounriver 编译不成功:找不到库文件,怎么整
818浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 16:06 , Processed in 1.186152 second(s), Total 79, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号