摘要:
原文链接:https://blog.csdn.net/llq_the7/article/details/108649569 这篇博客的细思还是有缺点,先给出自己的方案。 仅针对大数据量,其余没有必要使用dma。 1. 解决不定长数据的处理,还是开启dma,并使用空闲中断。 在下面的中断函数里面 vo 阅读全文
摘要:
//数值比较函数 #define MAX(a,b) (((a)>(b))?(a):(b)) #define MIN(a,b) (((a)<(b))?(a):(b)) //一般位操作 #define Set_Bit(val, bitn) ((val) |=(1<<(bitn))) #define Cl 阅读全文
摘要:
这里仅作为个人记录,详细见博客:https://www.cnblogs.com/xiaobingqianrui/p/9547924.html QT提供了五种不同级别的事件处理和过滤: A、重写特定事件处理函数. 最常见的事件处理办法就是重写mousePressEvent(), keyPressEve 阅读全文
摘要:
软件层面的滤波 1 /* 2 @brief: 一阶低通滤波算法, Yn = (1-a)Yn-1 + aXn; 3 y = A * y_1 + C * x_1; 其中y_1是上次滤波值,x是本次采样值 4 @para: last_filter:上次滤波值 5 last_sample:上次采样值 6 n 阅读全文
摘要:
最近需要重写处理串口不定长数据,期望实现一种通用的方法,以便日后处理诸如网口之类的数据包。为了一次性解决不完整包,粘包等特殊数据包,想到了这种方法。 思路就是将所有接受到的数据放入环形缓冲区,那么应用程序就可慢一点过来取数据再处理。 关于环形缓冲区的介绍很多,这里不做详细介绍。这些蛮好的:https 阅读全文
摘要:
74HC/HCT595是高速硅门CMOS器件,与低功率肖特基TTL(LSTTL)兼容。它们符合JEDEC标准第7A。 74HC/HCT595是一个带有存储寄存器和三态输出的8级串行移位寄存器。移位寄存器和存储寄存器有单独的时钟。 数据在SH_CP输入的正跳变上进行移位。每个寄存器中的数据在ST_CP 阅读全文
摘要:
HC165和HCT165是带有互补串行输出的8位并行或串行输入移位寄存器。当并行加载PL输入为LOW时,来自D0到D7输入的并行数据会异步加载到寄存器中。当PL为HIGH时,数据会从DS输入串行输入到寄存器,并且CP每个上升沿时向右移动一个位置(Q0→Q1→Q2等)。这个特性通过将Q7输出连接到下一 阅读全文
摘要:
状态模式,可以很好的解决掉if else或者switch case判断,使用g++ state.cpp statemain.cpp -o microwaveoven在Linux下编译即可执行microwaveoven查看结果 state.h /* @brief: 微波炉状态以及动作切换,三个状态:开 阅读全文
摘要:
前备知识:互斥锁、条件变量。前面博客有相关知识测试代码。 基本思想就是新建若干个线程,统一管理。当需要插入一个任务时,则在线程池里面找一个空闲线程来执行任务。若线程池的所有线程都有任务时,则让任务等待,等有新的线程空闲下来再执行。 示例是线程池开辟10个线程,每个线程处理一个TCP客户端连接,废话不 阅读全文