嵌入式开发
OneAero
这个作者很懒,什么都没留下…
展开
-
ucosⅢ时间管理相关函数的区别
1.OSTimeDly 将任务延时一段时间并执行一次任务调度void OSTimeDly (OS_TICK dly, OS_OPT opt, OS_ERR *p_err){ CPU_SR_ALLOC();#ifdef OS_SAFETY_CRITICAL if (p_err == (OS_原创 2017-07-10 14:55:23 · 870 阅读 · 0 评论 -
ucosIII中断代码管理
有一些代码不能被打断,这些代码就是临界段代码,临界段代码需要保护#define OS_CFG_ISR_POST_DEFERRED_EN 0u进入临界区的时候ucosIII采用关中断的方式,退出临界区后重新打开中断#define OS_CFG_ISR_POST_DEFERRED_EN 1u进入临界区前是给调度器上锁,并在退出临界区的时候给调度器解锁。原创 2017-07-10 17:23:19 · 482 阅读 · 0 评论 -
红外遥控系统之红外通信协议分析
红外通信过程主要由红外发射和红外接收两个过程组成。首先将一帧数据(数字信号)送给红外发射电路,经调制转换成红外光信号在空中传输,然后红外接收电路收到该红外光信号,经过该电路的解调,将此红外光信号还原成可被单片机处理的数字信号,由单片机内部处理得到原来的数据。本协议制定的原则:(1)采用自动重传的停止等待协议,即源点传输一数据帧后,必须等待一个确认;在终点的确认返回源点之前,源点不能 发送其他原创 2013-09-02 12:24:23 · 2427 阅读 · 0 评论 -
STM32 常用知识初探
1.命名规则 2.#pragma pack使用**#pragma pack 1**保证字节对齐 置结构体的边界对齐为1个字节,也就是所有数据在内存中是连续存储的struct s{ char ch; int i;};char 1个字节 int 4个字节若不加#pragma pack ,则占内存4+4=8个加上#pragma pack, 则占内存4+1=5个字节3原创 2017-07-03 18:17:02 · 1126 阅读 · 0 评论 -
ucosⅢ任务管理
ucosⅢ任务管理功能1.ucosⅢ初始化和启动首先OSInit()初始化ucosⅢ,然后创建一个start_task()任务,最后调用OSStart()函数开启ucosⅢ。tips:在调用OSStart()之前,一定要至少创建一个任务int main(void){ OS_ERR err; CPU_SR_ALLOC(); //这个地方是定义了一个cpu_sr变量,原创 2017-07-12 16:52:26 · 669 阅读 · 0 评论 -
I2C设备地址(7位地址左移)
鹏程万里--扬帆起航目录视图摘要视图订阅从创业到再就业,浅述对程序员职业生涯的看法 征文 | 你会为 AI 转型么? 赠书:7月大咖新书机器学习/Android/pythonI2C设备地址2013-04-16 09:10 10925人阅读 评论(0)收藏举转载 2017-07-17 17:26:55 · 5991 阅读 · 0 评论