在DelayMS加入bsp_Idle,把单片机延时空闲利用起来

在单片机应用中,使用延时函数 DelayMS() 会导致程序在延时期间无法执行其他任务,

这可能影响系统对一些响应时间要求较高的任务的处理。

为了提高系统的响应速度和利用单片机的空闲时间,可以在延时函数中加入 bsp_Idle() 函数,

以允许在延时期间执行一些低优先级的任务或处理其他需要即时响应的操作。

像 modbus 数据解析这样的通讯任务,在需要及时响应的情况下,

利用单片机的空闲时间通过 bsp_Idle() 来处理这类任务能够显著提高通讯的响应速度。

这种做法对于确保通讯的稳定性和即时响应至关重要,而不至于被延时函数影响而导致通讯出现问题。

c 复制代码
void bsp_DelayMS(uint32_t n)
{
	DISABLE_INT();
	s_uiDelayCount = n;
	s_ucTimeOutFlag = 0;
	ENABLE_INT();  			

	while (1)
	{
		bsp_Idle();			
		if (s_ucTimeOutFlag == 1)
		{
			break;
		}
	}
}

void bsp_Idle(void)
{
    if( HS_MOD1_MODE ==0) 
			MODS_Poll(0);
		else
			MODH_Poll(0);		
}
相关推荐
悠哉悠哉愿意2 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
Lester_11012 天前
STM32霍尔传感器输入口设置为复用功能输入口时,还能用GPIO函数直接读取IO的状态吗
stm32·单片机·嵌入式硬件·电机控制
LCG元2 天前
低功耗显示方案:STM32L0驱动OLED,动态波形绘制与优化
stm32·嵌入式硬件·信息可视化
三佛科技-187366133972 天前
120W小体积碳化硅电源方案(LP8841SC极简方案12V10A/24V5A输出)
单片机·嵌入式硬件
z20348315202 天前
STM32F103系列单片机定时器介绍(二)
stm32·单片机·嵌入式硬件
Alaso_shuang2 天前
STM32 核心输入、输出模式
stm32·单片机·嵌入式硬件
脚后跟2 天前
AI助力嵌入式物联网项目全栈开发
嵌入式硬件·物联网·ai编程
2501_918126912 天前
stm32死锁是怎么实现的
stm32·单片机·嵌入式硬件·学习·个人开发
z20348315202 天前
STM32F103系列单片机定时器介绍(一)
stm32·单片机
星马梦缘2 天前
驱动层开发——蜂鸣器驱动
stm32·单片机·嵌入式硬件·hal·驱动