- 博客(14)
- 资源 (1)
- 收藏
- 关注
原创 C#队列的线程安全问题
C#队列的线程安全问题 在上一篇博客https://zhuanlan.zhihu.com/p/412083493里提到了用队列这种数据结构来存储串口数据的方法,看评论里有提到我的队列没有加锁,线程不安全,仔细研究了下,确实不安全,这里感谢大佬提醒。 队列是其元素以**先进先出(FIFO)**的方式来处理集合,先入队的元素会先读取。 队列在现实生活中的例子数不胜数。例如:排队打饭,排队购买机票,打印队列中等待处理的打印业务等 解决方法: 使用ConcurrentQueue类来代替Queue类。 测试代码: 这
2021-09-28 17:10:05
1381
原创 C#写入CSV文件操作
C#写入CSV文件操作 使用StreamWriter类进行操作 创建文件: string timeStr = DateTime.Now.ToString("yyyyMMddHHmmssffff"); //生成时间序列字符串 string filePathOne = Path.Combine(@"D:\UEP4data\", timeStr + @".csv"); //文件路径结合 fileWriter = new StreamWriter(filePathOne, true, Encoding.Defa
2021-09-24 14:10:20
1489
原创 C#解决串口数据丢失问题
C# 解决串口数据丢失问题 C # 串行类( SerialPort )是.NET Framework version 2.0 中一个新增的类,该类将串口操作了封装,从而为串口通信提供了简便方法。 但在实际串口通信的应用中,在串口高波特率大信息量的数据通信时,会出现丢失数据的问题。 通常我们使用SerialPort类接收串口发送过来的数据时,只需要写一个事件函数。 即DataReceived 事件绑定一个处理函数,然后就可以在该函 数中实现对串口数据的读取。 这个函数的内容可以根据我们的需求自行修改。就单纯从
2021-09-19 19:02:49
4513
1
原创 lightingchart最简单的曲线图
使用lightingchart绘制最简单的曲线图 第一步:往from中添加lightchart控件 向from.cs文件中添加代码 跟大部分画图的库一样操作,需要修改轴的标题,图表的标题,添加数据序列。 public ChartForm() { InitializeComponent(); double[] samples = { 1, 2, 3, 3, 4, 5 }; //随机定义一个序列 SampleDataSeries series = new SampleDataSerie
2021-09-11 15:56:08
1486
1
原创 QT--串口读取数据并展示实时波形图
QT-串口读取数据并展示实时波形图 1.串口助手部分 这一部分可以参考我的上一篇博客: https://blog.csdn.net/qq_41816727/article/details/118297850 展示实时波形图(使用QCharts) 1.QCharts的使用可以参考官方example 想要绘制曲线图需要定义画布 , 线 , 轴 代码如下 series=new QLineSeries(); serialchart=new QChart(); timer_draw =new
2021-07-02 14:02:18
3335
9
原创 基于Qt5的串口助手(自动刷新串口支持热插拔,附带源码)
基于Qt5的串口助手(自动刷新串口支持热插拔,附带源码) qextserialport库下载链接: http://code.google.com/p/qextserialport/ 由于即将读研,暑假长而无聊,开始学习QT开发桌面软件。这是我学习过程学的第一个小项目,算demo吧,参考了正点原子的XCOM和友善串口助手的优点。项目本身很简单,但由于实在没有经验花了一定时间。 1.添加源码到工程 将qextserialport-1.2rc.zip解压,将解压后的src目录拷贝到项目里的子目录SerialSrc
2021-06-28 11:27:41
4643
2
原创 QT主窗口框架
QT主窗口框架 主窗口提供了完整的用户窗口界面的框架,Qt用QMainWindow和相关的类来管理主窗口。QMainWindow 是从QWidget类继承来的,所以主窗口也是一个窗口部件Widget。只是QMainWindow定义了主窗口所需的布局部件,如菜单条、工具条、状态条、停靠部件区中心部件区,如图所示。 )] ...
2021-06-17 13:52:57
387
原创 python 数字信号产生并求其FFT
python 数字信号产生并求其FFT 本文写了一篇关于数字信号发生和做FFT处理的文章。 信号产生模块 这个模块用于产生单位阶跃信号、单位脉冲信号、简单的锯齿波信号。 也就是常用的数字信号处理中常用的序列。 话不多说,直接上代码: signal_module.py: import numpy as np def saw_tooth(n0,n1,n2): # Generates x(n)=saw_tooth # ----------------------------------------- #
2021-06-02 15:17:54
490
原创 stm32红外讲解与编程实战
红外遥控器 编码 NEC Protocol的PWM(脉冲宽带调制)和Philips RC-5 Protocol的PPM(脉冲位置调制)。 NEC协议特征 8位地址和8位指令长度 地址和命令2次传输 PWM脉冲宽度调制,以发射红外载波的占空比代表“0”和“1”; 载波频率为38Khz 位时间为1.125ms或2.25ms NEC码位定义 位: 一个脉冲对应560us的连续载波+一段低电平 一个逻辑1传输需要带2.25ms(560us脉冲+1680低电平) 一个逻辑0的传输需要1.125ms(560us脉
2020-06-25 10:31:11
896
原创 tf for input arguments of type double解决
tf for input arguments of type double解决 今天使用Matlab的时候,想用系统传递函数获取系统冲激响应,于是写下了: tf(4,[1,2,10,8]) 于是… … ‘tf’ for input arguments of type ‘double’. 百度过后发现tf()函数来自于Matlab的 Control System Toolbox 工具包 然后在命令行输入了ver来检查自己装了那些工具包 没有安装 Control System Toolbox 于是重新下载
2020-05-20 16:21:57
2293
1
原创 python数字信号处理,产生单位阶跃序列,单位脉冲序列
python数字信号处理,产生单位阶跃序列,单位脉冲序列 最近在学matlab数字信号处理,想到了python,于是便用python将matlab的作业全做一遍 这里用numpy库产生了单位阶跃序列,单位脉冲序列 代码如下: DSP.py: import numpy as np def impseq(n0,n1,n2): #Generates x(n)=delta(n-n0);n1<=n,n0<=n2 #----------------------------------------- # [
2020-05-18 17:59:53
6263
2
原创 嵌入式系统考点
嵌入式系统考点 文章目录嵌入式系统考点linux系统命令常用的u-boot命令重要的定义交叉编译器交叉编译根文件系统嵌入式系统的分层结构串口驱动开发的一般方法socket开发和三次握手APP(应用)的开发方法设备驱动的Hello World模块嵌入式考点 linux系统命令 1. Ctrl+Alt+T:进入terminal终端 2. cd命令 用于切换当前目录,它的参数是要切换的目标路径,可以是绝...
2020-04-30 07:08:37
533
原创 一种让数码管闪烁算法
数码管闪烁算法 最近做了一个大作业,在用数码管显示rtc时间时想让某个数码管位置闪烁,虽然不难,感觉还是能常用到的。 代码如下,这里让case5和7位置闪烁 /********************************************************** 数码管显示年月日 **********************************************...
2020-03-26 20:45:02
3100
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人