[STM32F0] 在中断清除某个变量,有时候清除不了

[复制链接]
1291|23
 楼主| spark周 发表于 2021-5-6 22:46 | 显示全部楼层 |阅读模式
用的是stm32f030芯片
juventus9554 发表于 2021-5-6 22:48 | 显示全部楼层

楼主详细说说怎么回事啊,这么说太笼统了
 楼主| spark周 发表于 2021-5-6 22:54 | 显示全部楼层
问题是这样的,串口收数据,波特率9600,开始收数据时候,在主程序中就进入一等待程序,出现问题时候,等待程序还没收完全部数据就退出来了
yszong 发表于 2021-5-6 22:57 | 显示全部楼层
原因就是在中断中
stly 发表于 2021-5-6 22:59 | 显示全部楼层
没有执行A=0;
xxrs 发表于 2021-5-6 23:02 | 显示全部楼层
或者执行了,没起作用。
 楼主| spark周 发表于 2021-5-6 23:04 | 显示全部楼层
这种情况并不是每次都出,是偶尔的
zhaoxqi 发表于 2021-5-6 23:06 | 显示全部楼层
每收一个字节都会进入中断程序?
 楼主| spark周 发表于 2021-5-6 23:08 | 显示全部楼层
嗯,变量A用Volatile修饰没有效果。
chuxh 发表于 2021-5-6 23:11 | 显示全部楼层
可能问题出在哪了呢?
 楼主| spark周 发表于 2021-5-6 23:14 | 显示全部楼层
A为什么赋值失败呢?
renyaq 发表于 2021-5-6 23:17 | 显示全部楼层

楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因
 楼主| spark周 发表于 2021-5-6 23:19 | 显示全部楼层

uint8_t  A=0;


while(A<=150){                //等待1.5mS
        IWDG_ReloadCounter();
        delay_us(10);
    A++;        
                     }                        




void USART1_IRQHandler(void)
{
        if(USART_GetITStatus(USART1, USART_IT_RXNE) == 1)
        {                                                                        
       A=0;         
            }                }
zhanghqi 发表于 2021-5-6 23:21 | 显示全部楼层
中断初始化哪里不对吧
wyjie 发表于 2021-5-6 23:23 | 显示全部楼层
是不是中断向量指向有问题呢
zwll 发表于 2021-5-6 23:29 | 显示全部楼层
开总中断了吗
chuxh 发表于 2021-5-6 23:31 | 显示全部楼层
程序的问题
 楼主| spark周 发表于 2021-5-6 23:34 | 显示全部楼层

其实还是不大明白,我再琢磨琢磨吧,多谢了哈先
keaibukelian 发表于 2021-6-1 21:16 | 显示全部楼层
有些变量是没办法手动改变的
labasi 发表于 2021-6-1 21:19 | 显示全部楼层
非常简单的代码啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

821

主题

10121

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部