完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
初始化
Systick->CNTL0 =0; SysTick->CNTL1 =0; SysTick->CNTL2 =0; SysTick->CNTL3 =0; SysTick->CNTH0 =0; SysTick->CNTH1 =0; SysTick->CNTH2 =0; SysTick->CNTH3 =0; i=FSYS/8/4; SysTick->CMPLR0 = (u8)(i & 0xFF); SysTick->CMPLR1 = (u8)(i >> 8); SysTick->CMPLR2 = (u8)(i >> 16); SysTick->CMPLR3 = (u8)(i >> 24); SysTick->CMPHR0 =0; SysTick->CMPHR1 =0; SysTick->CMPHR2 =0; SysTick->CMPHR3 =0; SysTick->CTLR=1; NVIC_EnableIRQ(SysTicK_IRQn); 中断程序翻PB8闪灯: GPIOB->OUTDR^=1<<8; SysTick->CNTL0 =0; SysTick->CNTL1 =0; SysTick->CNTL2 =0; SysTick->CNTL3 =0; SysTick->CNTH0 =0; SysTick->CNTH1 =0; SysTick->CNTH2 =0; SysTick->CNTH3 =0; 单独这样跑没有问题, 随便增加USART1发送一字节,就不闪了,CPU没有死,读systick值,CNT在增加,就是不进中断 |
|
相关推荐
3个回答
|
|
GPIOB->CFGHR=0x44444442;
USART1->BRR=FSYS/115200; USART1->CTLR1=1<<13|3<<2; GPIOA->BSHR=1<<10; //IO置位 GPIOA->CFGHR=0x44444894; //PA9 PA10 AFR Usart1SendByte(0x55); //查询方式发送 这样增加几行就只能进一次中断,杠掉最后一行,闪灯恢复正常 |
|
|
|
void SysTick_Handler(void) __attribute__((interrupt("WCH-Interrupt-fast")));
void SysTick_Handler(void) { GPIOB->OUTDR^=1<<8; 仿照官方程序,中断这样写就对了,问题解决 管理员如果看到的话,说说道理 |
|
|
|
您好,关于中断声明函数:void XXXX_IRQHandler(void) __attribute__((interrupt("WCH-Interrupt-fast")))函数,其用于保证中断执行完成之后程序正常运行。若不添加此函数,中断执行完成之后,中断执行之前保存的信息将不会被返回,中断会被认为一个正常程序继续执行下去,但中断之后并没有程序,从而导致程序出现类似跑飞状况。添加此函数,中断执行完成之后,中断执行之前保存的信息将会被返回,从而程序可以继续正常执行,如图所示。
|
|
|
|
只有小组成员才能发言,加入小组>>
474 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2873 浏览 2 评论
2361 浏览 1 评论
817浏览 2评论
CH569通过HSPI实现USB3.0和FPGA高速双向通讯
640浏览 1评论
498浏览 1评论
CH32F103C8T6使用当前官网上的CDC例程会出现设备描述符请求失败
364浏览 1评论
639浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 11:11 , Processed in 1.858971 second(s), Total 83, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号