硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1033|回复: 2
收起左侧

[有问必答] STM32F4:裸机BSP中,关于DISABLE_INT()与ENABLE_INT()使用的疑惑,求解惑

[复制链接]

10

主题

29

回帖

59

积分

初级会员

积分
59
发表于 2023-2-1 17:02:49 | 显示全部楼层 |阅读模式
        裸机BSP中,关于DISABLE_INT()与ENABLE_INT()使用的疑惑,求解惑。
例如:如下在软件定时器中,如果进入DISABLE_INT关闭中断后,中断还未开启之前,那其他外接的如串口等外设这时产生一帧主动上报数据,该情况下串口数据会丢失嘛?再者DISABLE_INT()和ENABLE_INT()之间的执行时间较久,是否会出现问题?
void bsp_StartAutoTimer(uint8_t _id, uint32_t _period)
{
        if (_id >= TMR_COUNT) {
                /* 打印出错的源代码文件名、函数名称 */
                //BSP_Printf("Error: file %s, function %s()\r\n", __FILE__, __FUNCTION__);
                while (1); /* 参数异常,死机等待看门狗复位 */
        }

        DISABLE_INT();                  /* 关中断 */

        s_tTmr[_id].Count = _period;                        /* 实时计数器初值 */
        s_tTmr[_id].PreLoad = _period;                /* 计数器自动重装值,仅自动模式起作用 */
        s_tTmr[_id].Flag = 0;                                /* 定时时间到标志 */
        s_tTmr[_id].Mode = TMR_AUTO_MODE;        /* 自动工作模式 */

        ENABLE_INT();                          /* 开中断 */
}

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107077
QQ
发表于 2023-2-1 17:25:55 | 显示全部楼层
针对时间关键类应用,开关中断推荐仅开关影响到自己的中断,比如楼主位的这个,仅开关滴答定时器中断即可

实战技能分享,减小开关中断对系统实时性的影响,提升系统响应速度
https://www.armbbs.cn/forum.php? ... d=109927&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

10

主题

29

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2023-2-2 09:17:31 | 显示全部楼层
eric2013 发表于 2023-2-1 17:25
针对时间关键类应用,开关中断推荐仅开关影响到自己的中断,比如楼主位的这个,仅开关滴答定时器中断即可
...

感谢分享!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-17 04:34 , Processed in 0.217697 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表