[导读]▼点击下方名片,关注公众号▼欢迎关注【玩转单片机与嵌入式】公众号,回复关键字获取更多免费资料。回复【STM32】,获取STM32相关设计和视频教程回复【PCB】,获取PCB设计相关的资料回复【硬件知识】、【硬件设计】,获取硬件开发工程必备手册回复【经典电路】,获取5000个经典电...
▼点击下方名片,关注公众号▼单片机与嵌入式" data-alias="xyzn003" data-signature="专注单片机、嵌入式、学习资料、最新设计、案例等。以单片机为起点,带你玩转单片机、嵌入式设计。" data-from="0">欢迎关注【玩转单片机与嵌入式】公众号,回复关键字获取更多免费资料。回复【STM32】,获取STM32相关设计和视频教程回复【PCB】,获取PCB设计相关的资料回复【硬件知识】、【硬件设计】,获取硬件开发工程必备手册
回复【经典电路】,获取5000个经典电路
回复【论文】,获取毕业设计、电子竞赛、学术专业等相关论文资料回复【电容】,获取电容、元器件选型相关的内容;
回复【阻抗匹配】,获取电磁兼容性、阻抗匹配相关的资料回复【资料】,获取全部电子设计、单片机开发相关的资料回复【终端电阻】,获取CAN终端电阻相关的资料回复【单片机】,获取单片机全套视频教程和参考设计…………
欢迎关注【玩转单片机与嵌入式】公众号。本公众号会以连载的形式推出一系列关于STM32学习的教程,欢迎关注。今天分享一篇单片机程序框架的文章。程序架构重要性很多人尤其是初学者在写代码的时候往往都是想一点写一点,最开始没有一个整体的规划,导致后面代码越写越乱,bug不断。最终代码跑起来看似没有问题(有可能也真的没有问题),但是要加一个功能的时候会浪费大量的时间,甚至导致整个代码的崩溃。所以,在一个项目开始的时候多花一些时间在代码的架构设计上是十分有必要的。代码架构确定好了之后你会发现敲代码的时候会特别快,并且在后期调试的时候也不会像无头苍蝇一样胡乱找问题。当然,调试也是一门技术。在学习实时操作系统的过程中,发现实时操作系统框架与个人的业务代码之间的耦合性就非常低,都是只需要将业务代码通过一定的接口函数注册好后就交给操作系统托管了,十分方便。但是操作系统的调度过于复杂,这里就使用操作系统的思维方式来重构这个时间片轮询框架。实现该框架的完全解耦,用户只需要包含头文件,并且在使用过程中不需要改动已经写好的库文件。Demo首先来个demo,该demo是使用电脑开两个线程:一个线程模拟单片机的定时器中断产生时间片轮询个时钟,另一个线程则模拟主函数中一直运行的时间片轮询调度程序。#include #include #include #include "timeslice.h"
// 创建5个任务对象TimesilceTaskObj task_1, task_2, task_3, task_4, task_5;
// 具体的任务函数void task1_hdl(){ printf(">> task 1 is running ...\n");}
void task2_hdl(){ printf(">> task 2 is running ...\n");}
void task3_hdl(){ printf(">> task 3 is running ...\n");}
void task4_hdl(){ printf(">> task 4 is running ...\n");}
void task5_hdl(){ printf(">> task 5 is running ...\n");}
// 初始化任务对象,并且将任务添加到时间片轮询调度中void task_init(){ timeslice_task_init(
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
SHT11是Sensirion公司推出的数字式温湿度传感器,采用CMOSens™技术将温湿度传感、信号放大、A/D转换、校准数据存储及I²C类串行接口集成于单芯片。与标准I²C协议不同,SHT11的接口为“类似I²C”的...
关键字:
SHT11
单片机
I²C
很多嵌入式开发者天天写单片机代码、烧录程序调试功能,却很少真正把它的完整运行逻辑串起来。你可能知道单片机里有CPU、RAM、ROM,也知道写的C代码会被编译成机器指令,但你未必清楚从按下复位键的那一刻开始,芯片内部的每一...
关键字:
单片机
芯片
在2000年到2010年的单片机黄金时代,消费电子、工业控制设备里跑的几乎都是8位、16位的早期MCU芯片。那时候没有现在成熟的硬件加密核、OTA固件签名这类方案,开发者却要面对固件被轻易破解、山寨产品快速抄板的行业痛点...
关键字:
单片机
MCU
很多单片机开发者在调试通信功能时,都遇到过类似的“玄学”问题:同样的代码在实验室里跑完全正常,拿到量产设备里就随机丢包;I2C传感器偶尔返回乱码,用示波器抓波形却看不出明显异常;UART串口在高波特率下,只要设备靠近电机...
关键字:
单片机
传感器
在汽车电子、石油钻探和工业控制领域,单片机往往需要在-40℃至125℃的极端温差下持续工作。片内SRAM通常只有几十KB,难以满足数据采集和缓冲需求,而外部SRAM提供了容量扩展的可能,但高温环境对其稳定性构成了严峻挑战...
关键字:
工业高温场景
单片机
在物联网与工业控制设备的实际运行中,系统状态的可观测性直接决定了故障排查的效率。然而,许多低成本单片机受限于内部RAM资源,难以长期驻留大量运行日志,一旦遭遇异常重启或意外断电,内存中的调试信息便会瞬间丢失,导致售后团队...
关键字:
单片机
NOR Flash
在工业控制与物联网终端设备中,EEPROM存储的计数器数据(如设备开机次数、运行时长)常因突发断电导致数值丢失或错乱。传统方案采用页写入模式,单次修改需重写整页数据(通常64-128字节),不仅加速存储器磨损(EEPRO...
关键字:
EEPROM
单片机
在资源极度受限的8位单片机场景中,64B RAM往往是整机系统最稀缺的硬件资源——除去堆栈、全局变量和寄存器映射占用的空间后,留给用户自定义数据的可用内存通常不足30B,想要同时实现3路传感器的实时缓存几乎是常规编程思路...
关键字:
8位
单片机
RAM
外部脉冲明明到了,计数却偶尔少一次,这类故障常被误判成传感器抖动。单片机中断链路如果把屏蔽窗口、标志位和优先级混在一起处理,真实边沿很容易在软件忙碌时消失。
关键字:
单片机
中断
屏蔽窗口
在嵌入式产品的全生命周期里,STM32的Flash就像设备内部的“数字保险柜”,既存放着工程师熬夜写出来的核心固件代码,也保存着设备运行过程中积累的关键校准参数、用户配置数据。
关键字:
STM32单片机
单片机
ATMEGA8是Atmel公司(现已被Microchip收购)推出的8位AVR架构单片机,自问世以来就凭借高性能、低功耗、高性价比的特点,成为嵌入式入门开发、小型控制项目的首选芯片,至今仍是电子爱好者和工业小型控制场景的...
关键字:
单片机
电源
TI 大学计划深耕校企合作三十载,依托实验室、赛事与课程改革,协同高校培育电子信息领域创新人才。
关键字:
AI
智能汽车
单片机
PWM 波形偶尔抖一下,后级电机或电源环路就可能把它放大成噪声和发热。单片机定时器虽然能自动翻转引脚,但更新时刻和死区配置不对,输出并不会天然稳定。
关键字:
单片机
PWM
定时器
I2C 偶发不响应时,复位主控往往只能暂时恢复,因为总线状态可能已经被外部器件留在半截事务里。单片机若没有处理 SDA 锁低和上拉边界,软件重新初始化也未必能重新拿回总线。
关键字:
单片机
I2C
SDA
参数偶尔丢失或升级后配置变乱,常常不是存储单元突然坏了,而是写入流程没有尊重 Flash 的物理边界。单片机内部 Flash 若把擦写粒度和掉电窗口处理得太粗,少量配置也会被写成高风险操作。
关键字:
单片机
Flash
掉电保护
ADC 数值缓慢漂移时,问题未必在传感器,也未必靠平均就能消掉。单片机内部转换器如果没有满足采样保持和参考回流条件,软件读到的只是前端妥协后的电压。
关键字:
单片机
ADC
传感器
看门狗本该抓住死机,却常在现场变成莫名重启的来源。单片机系统如果没有把喂狗条件和最坏执行时间绑定,复位既可能误触发,也可能在真正卡死时失效。
关键字:
单片机
看门狗
复位
设备偶发重启时,很多人先怀疑程序跑飞,其实更常见的是电源刚好落在不稳定边界。单片机若没有把欠压复位和上电延时配成一条完整启动链,复位脚会比软件更早暴露问题。
关键字:
单片机
复位
晶振
计时偏差通常不是某个 delay 写错,而是时间基准从源头就不稳定。单片机定时若同时受晶振误差、分频取整和同步延迟影响,软件看到的一秒就可能不是硬件世界的一秒。
关键字:
单片机
计时偏差
晶振
待机电流比预算高,问题不一定出在芯片休眠模式选错,而是板上仍有电气状态没有收干净。单片机进入低功耗前,如果 IO 和唤醒源没有逐项定义,电池寿命会被细小电流慢慢吃掉。
关键字:
单片机
耗电
IO