完善资料让更多小伙伴认识你,还能领取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")))函数,其用于保证中断执行完成之后程序正常运行。若不添加此函数,中断执行完成之后,中断执行之前保存的信息将不会被返回,中断会被认为一个正常程序继续执行下去,但中断之后并没有程序,从而导致程序出现类似跑飞状况。添加此函数,中断执行完成之后,中断执行之前保存的信息将会被返回,从而程序可以继续正常执行,如图所示。
|
|
|
|
只有小组成员才能发言,加入小组>>
261 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2739 浏览 2 评论
2256 浏览 1 评论
BLE-Dongle与CH9141-A核心板进行双向透传,无法接收到串口数据怎么解决?
486浏览 7评论
223浏览 4评论
主机NRF52832从机ch9141,ch9141断电后无法发送数据怎么解决?
406浏览 3评论
294浏览 3评论
279浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-17 14:38 , Processed in 0.940018 second(s), Total 81, Slave 65 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191