51单片机等串口缓存队列
来源:互联网 发布:python java socket 编辑:程序博客网 时间:2024/06/06 16:42
C语言实现的串口query 缓存 8 bit一存,一帧一取,欢迎大家使用。
.c文件
/* *先入先出队列 */uint8_t receive_buff[QUEUE_SIZE] = { 0 };uint8_t front = 0;uint8_t rear = 0;bool QueryPush(uint8_t dat){ if (((front + 1) % QUEUE_SIZE) != rear) //队列没满 { receive_buff[front++] = dat; front %= QUEUE_SIZE; return TRUE; } else return FALSE;}bool QueryPop(uint8_t *dat){ if (front != rear) //队列不为空 { *dat = receive_buff[rear++]; rear %= QUEUE_SIZE; return TRUE; } return FALSE;}/*Modbus一帧数据出栈*/bool PopFreame(uint8_t *buffer){ uint8_t data = 0; uint8_t count = 0; while ((count < FREAME_SIZE) && QueryPop(&data)) { buffer[count++] = data; } if (count != FREAME_SIZE) return FALSE; else { count = 0; return TRUE; }}
.h文件
#ifndef __QUEUE_H_#define __QUEUE_H_#include "stm8s.h"#define QUEUE_SIZE 32 //需要定义的空间大小为帧大小*帧数,例如帧大小为8B共4帧则为32bool QueryPush(uint8_t dat);bool QueryPop(uint8_t *dat);bool PopFreame(uint8_t *buffer);#endif
阅读全文
0 0
- 51单片机等串口缓存队列
- 51单片机串口通信 环形缓冲区队列(FIFO)
- 51单片机串口
- 51单片机的串口
- 51单片机串口通信
- 51单片机串口通讯
- 51单片机串口程序
- 51单片机串口通信
- 51 单片机串口实验
- 51单片机 串口通信
- 利用“串口调试助手”等软件调试 PROTEUS 环境中 51单片机 的串行通信
- 51单片机串口通讯程序代码
- 51单片机的串口通讯
- 51单片机口串口程序
- 51单片机 串口通信 中断
- 51单片机的串口参数
- 51单片机汇编语言使用串口
- 51单片机串口通信实例
- vagrant global-status查到的情况
- call()和apply()的区别
- Selinux(持续ing)
- 算法-O(1)时间删除链表的指定结点
- 优雅的调试手机中的数据库:SQLiteStudio(实时调试)
- 51单片机等串口缓存队列
- 2017 Multi-University Training Contest
- Struts2 官方教程:表单验证(Form Validation)
- Java复习笔记+经验总结-04 java异常 常用工具类
- 极限与连续的区别
- 迷宫问题的分析与实现
- php微信开发源码
- pandas官方文档cookbook(6)中Split&Pivot&Apply翻译
- c++函数的重载