完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用内部时钟16M ,1分频,tiM4定时8us,初始化程序如下:
CLK->PCKENR1 = (uint8_t)(0x1C);//使能定时器和串口 TIM4->PSCR = (uint8_t)(0x07);//定时计数为8us =2^7/16000000 // TIM4->ARRH = (uint8_t)(0x00);// TIM4->ARR = (uint8_t)(0x7D);//定时1ms TIM4->CR1 |= (uint8_t)(0x01);//使能TIM4 TIM4->IER |= (uint8_t)(0x01);//使能TIM4中断 void main() { 。。。。。 __enable_interrupt(); while(1) { if(UART1->SR 0x40 == 0x40)//串口接收到数据 {//程序没法进入这里,但是可以进入TIM4的中断函数,暂停程序全速运行时,RXNE和OR标志位全为1,说明数据已经接收到了,为啥这个函数分支进不来??? STM8S的中断机制是怎么回事,不改软件中断的条件下,开中断程序就乱跑,还请高手指点。 data=UART1->DR;//保存数据 } { } } |
|
相关推荐
1个回答
|
|
首先,我们需要确保STM8S的TIM4中断初始化和配置正确。以下是一些可能的解决方案:
1. 确保中断使能: 在初始化TIM4之前,确保全局中断和TIM4中断已经使能。使用以下代码: ```c __asm__("rim"); // 使能全局中断 TIM4->IER = TIM4_IT_Update; // 使能TIM4更新中断 ``` 2. 检查定时器配置: 确保定时器的配置正确。根据您的描述,您已经设置了定时器的预分频器和自动重载寄存器。请确保这些值正确。以下是您的代码: ```c CLK->PCKENR1 = (uint8_t)(0x1C); // 使能定时器和串口 TIM4->PSCR = (uint8_t)(0x07); // 定时计数为8us = 2^7 / 16000000 TIM4->ARRH = (uint8_t)(0x00); // 自动重载寄存器高位 TIM4->ARRL = (uint8_t)(0xFF); // 自动重载寄存器低位 ``` 3. 检查中断服务例程: 确保您的中断服务例程正确处理了TIM4中断。以下是示例代码: ```c void TIM4_Update_ISR(void) interrupt TIM4_IRQn { if (TIM4_GetITStatus(TIM4_IT_Update) != RESET) { TIM4_ClearITPendingBit(TIM4_IT_Update); // 清除中断标志 // 在此处添加您的中断处理代码 } } ``` 4. 检查定时器模式: 确保您设置了正确的定时器模式。根据您的需求,您可能需要设置为上行计数或下行计数模式。以下是设置为上行计数模式的示例代码: ```c TIM4->CR1 &= (uint8_t)(~TIM4_CR1_DIR); // 清除方向位 ``` 5. 检查定时器启动: 确保在配置完成后启动了定时器。使用以下代码: ```c TIM4_Cmd(ENABLE); // 使能TIM4 ``` 6. 检查其他可能的冲突: 如果问题仍然存在,请检查您的程序中是否有其他可能导致异常的因素,例如其他中断源、硬件冲突等。 按照以上步骤检查和修改您的程序,应该可以解决STM8S TIM4中断异常的问题。如果问题仍然存在,请提供更多关于异常的详细信息,以便进一步分析。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1645 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1564 浏览 1 评论
992 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
691 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1610 浏览 2 评论
1870浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
655浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
525浏览 3评论
541浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
514浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 20:28 , Processed in 0.951912 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号