MCU
Wucll
这个作者很懒,什么都没留下…
展开
-
环形队列实现
环形队列在嵌入式开发上有较多的应用,比如任务队列,串行数据缓存等等。使用环形队列可以实现更高效的数据管理。代码实现如下:typedef struct { uint8_t* buf; //指向队列数组的指针 uint16_t maxsize; uint16_t length; //长度 uint16_t head; //队头 uint16_t ...原创 2020-04-20 19:09:23 · 260 阅读 · 0 评论 -
树状菜单实现
多级菜单编程实现1)菜单结构 菜单结构采用树状结构,由若干个节点组成多级菜单。每个节点由当前层级节点数、标题,操作函数、父节点和子节点构成,如下代码所示。typedef struct Menu{ uint8_t MenuNodes; //当前层节点数目 char *MenuName; //菜单标题 void (*func)(uint16_t key); //节点函数 co...原创 2019-11-19 19:42:38 · 1198 阅读 · 1 评论 -
STM32+串口空闲中断实现不定长数据接收
常见的数据帧断帧方式有两种,一种是通过固定的协议格式断帧,另外一个是通过两帧数据的时间断帧,下面介绍最后一种,利用STM32F1的串口空闲中断实现不定长的数据断帧。笔者使用的标准官方库。空闲中断是接受数据后出现一个字节的空闲状态,就会触发空闲中断。利用该特性区分两个不同数据帧。1.初始化USART 按照官方的初始化流程配置,需要注意一点就是需要开启接收中断和空闲中断。/** * @...原创 2019-10-26 15:24:26 · 1309 阅读 · 2 评论