- 博客(38)
- 资源 (4)
- 收藏
- 关注
原创 C语言:对于宏的一些概念及技巧
格式:#define 宏名 表达式例如:#define PI3.1415格式: # define 宏名 表达式 例如: # define PI 3.1415 //程序在预处理阶段会将PI替换为3.1415定义: # define 宏名(参数 1 ,参数 2 , . . . . . ) 表达式 调用:宏名(实参 1 ,实参 2 , . . . . . . . . . . . )例如:定义: # define getMax(a , b) a > b?
2023-11-07 17:51:55
496
原创 FFmpeg音视频处理技术:基于Linux下QT Creator的FFmpeg环境搭建(史上最全)
阅读本文章的小伙伴需要注意,本作者主要是从4个方面进行FFmpeg环境的搭建(完全适应利用常见操作系统平台进行FFmpeg音视频开发),大家根据需要自行选择相应的环境进行搭建:(1)(2)(3)(4)
2023-08-10 17:41:40
2317
1
原创 Linux配置QT Creator环境:ubuntu中安装QT Creator环境
目前市面上很多公司使用QT Creator进行界面开发,基本都会选择在Linux环境进行,优点不仅是市场所需,更是方便后期代码的移植,相较于Windows系统,Linux系统移植性非常好。故此篇文章,介绍如何在Linux环境中安装QT Creator环境(注:本作者以QT Creator 5.14.2进行介绍,大家可以根据实际情况需要下载相应的版本即可)
2023-08-09 12:44:25
2551
原创 Windows下QT Creator安装MinGW 32bit编译器
注:本作者是基于FFmpeg开发需要,故在Windows下QT Creator中安装MinGW 32bit编译器!其它型号编译器参照此文章基本可以实现!
2023-08-04 16:28:40
7838
9
原创 人工智能:关于PyCharm里使用tensorflow建立实际问题模型遇到的问题
【代码】人工智能:关于PyCharm里使用tensorflow建立实际问题模型遇到的问题。
2023-01-29 17:41:00
1792
1
原创 OpenCV基础(python版):关于使用opencv对图像的操作详细版本
本篇文章是关于opencv(python版本)基础的详细版本,适用于人脸识别以及对图像等的操作!!!
2022-12-06 17:10:39
1348
原创 C++报错:fatal error LNK1169: 找到一个或多个多重定义的符号
使用visual studio编写C++代码时,为了书写规范与标准,往往需要创建多个源文件与头文件(并且源文件中需要包含相关头文件),这不仅能锻炼你的模块化思维,还能及时定位是哪一个模块发生了错误;但是有利就有弊,大家想一想,C/C++都是编译型语言,那么编译型语言是不是需要经过:预处理、编译、汇编、链接阶段?(1)预处理将头文件(.h)的内容全部加入到源文件(.cpp)中条件编译(#ifdef…#define…#endif等等)宏替换(#define num 100:将num替换为100)...
2022-08-09 11:49:32
5636
原创 传感器:MQ-5燃气模块测量燃气值(底部附代码)
本篇文章介绍使用MQ-5燃气模块测量燃气值,CPU还是选择单片机,MQ-5主要使用的技术为ADC,燃气对于单片机来说是模拟信号,需要转换为数字信号,再经过相关计算公式将燃气模拟值转换成对应的燃气数值,便于人们方便查看。例如家庭使用燃气模块测量燃气值,如果燃气值超过一定的范围,可以外设一个报警装置,保证家庭的生命安全。(1)ADC(analog to digital converter)即模数转换器,它可以将模拟信号转换为数字信号。按照其转换原理主要分为逐次逼近型、双积分型、电压频率转换型三种。STM32F1
2022-06-09 10:21:45
9769
8
原创 传感器:SHT30温湿度传感器检测环境温湿度实验(底部附代码)
SHT30温湿度传感器模块是通过IIC驱动,所以大家使用该模块时,需要具备IIC的基本知识,这篇文章带领大家一起使用SHT30模块进行温湿度的测量,当然DHT10/DHT10原理都一样,好了,一起来学习学习吧!I2C(Inter-Integrated Circuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。I2C总线只有两根双向信号线。
2022-06-08 11:14:18
12760
3
原创 uc/OS-II操作系统:uc/OS中的任务_下(如不懂——>请收下我的膝盖)
注:本章接着上一章节书写六、任务的挂起和恢复(1)挂起一个任务,就是暂停这个任务的调度。(2)挂起任务的 TCB 还存在系统中,只是该任务的状态是 “挂起” ,对挂起态的任务uC/OS-II不再调度运行。(3)挂起的任务恢复后即可参与uC/OS-II的任务调度。(4)uC/OS-II中,可挂起除 “空闲任务”(OSTaskIdel( )) 外的任何任务。(5)挂起/恢复使用系统函数OSTaskSuspend( ) / OSTaskResume( ) 实现。1、挂起任务的函数原型INT8U
2022-03-25 15:30:22
3065
原创 visual studio使用问题:出现E169无法打开源文件“iostream”“cmath““cstring“等等
一、问题概述1、使用visual studio建立C++工程,工程名为Test,源文件名为test1.cpp,如下所示:2、Test工程建立完成之后,关闭该工程,然后重新打开该工程,打开工程后如下注意:我这里重新打开工程是直接点击:Test.vcxproj或Test.lsn(后面报错也是因为这个原因)大家可以清晰的看到,直接点击打开Test.vcxproj或者Test.lsn会报错提示E1696无法打开源文件”iostream“、”cmath“、”cstring“、”malloc.h“等。
2022-03-18 10:00:44
7370
2
原创 uc/OS-II操作系统移植:uc/OS-II移植到STM32流程(文章末尾附实例)
一、实验目的1、掌握在STM32上移植嵌入式实时操作系统uC/OS-II的方法2、掌握在STM32上移植uC/OS-II的基本步骤3、掌握uC/OS-II的文件OS_CPU.H编写4、掌握uC/OS-II的文件OS_CPU_C.C编写5、掌握uC/OS-II的文件OS_CPU_A.S的编写二、实验原理uCOS也叫uC/OS-II,它是由美国人Jean .J.Labrosse在1992年编写的一个嵌入式多任务实时操作系统。它具有以下特点:(1)微型化。嵌入式系统芯片内部存储器的容量通常不会很
2022-03-17 09:47:09
9735
原创 uc/OS-II操作系统:uc/OS中的任务_中(如不懂——>请收下我的膝盖)
注:本章接着上一章节书写四、任务就续表及任务调度1、什么是多任务系统并发: 同一个处理器轮换地运行多个程序。或者说是由多个程序轮班地占用处理器这个资源。且在占用这个资源期间,并不一定能够把程序运行完毕。那么处理器如何进行程序的切换呢?两句话:(1)处理器是个傻瓜,PC让它干啥,它就干啥。(2)PC是个指路器,它指向哪儿,处理器就去哪儿。从此可以知道,哪个程序占有了PC,哪个程序就占有了处理器。深刻地理解PC是理解系统进行程序切换动作的关键。那么我们如何操作PC?(1)数
2022-03-16 14:33:16
759
原创 uc/OS-II操作系统:uc/OS中的任务_上(如不懂——>请收下我的膝盖)
uc/OS中任务的学习目录注:本章未写完的在后面章节会继续书写(1)任务的基本概念(2)任务堆栈(3)任务控制块及任务控制块链表(4)任务就绪表及任务调度(5)任务的创建(6)任务的挂起和恢复(7)其他任务管理函数(8)uC/OS-II的初始化和任务的启动涉及到的基本问题:(1)任务的特性(2)任务的划分目标(3)任务的划分方法(4)任务的可调度性分析(5)任务的执行分类和优先级安排(6)任务设计中的问题(7)系统设计编码实现过程(8)中断服务程序的设计一、任务的基
2022-03-15 09:38:21
3180
原创 Linux系统:常用Linux命令大全(在座的各位赶紧收藏,滑稽.jpg)
一、文件目录类命令(1)浏览目录命令:cd、dir、ls、ll(2)浏览文件命令:cat、more、less (3)目录操作命令:mkdir、rmdir (4)文件操作命令:touch、rm、cp、mv、ln、tar、gzip、gunzip、whereis、whatis 1、列出文件列表的ls命令》显示指定工作目录中所包含的内容的指令是ls,要说明的是ls命令列出文件的名字,而不是文件的内容。该命令的使用方式如下:ls [选项] [文件目录列表] ls命令中的常用选项如下:
2022-03-14 15:45:05
1733
原创 QT教程:基本控件及相关类的介绍和使用
一、QString类:Qt提供了自己的字符串处理类,不用担心内存分配以及关于\0结尾的这些注意事项,QSting会自动对占用的内存进行扩充,链接非常的迅速实例: QString str = "hello"; str += "world"; //拼接字符串操作 对象函数: str.append("hello"):在字符串末尾追加一个字符串,也是拼接动作 str.setNum(数值):将数值转为字符串存放 str.toLower():将字符串转为全小写并返回 str.toUpper(
2022-03-11 09:53:12
3108
原创 uc/OS-II操作系统:uc/OS基本概念及认识(从零到负,打通你的任督二脉)
一、什么是计算机操作系统简而言之,OS就是一个屏蔽层,屏蔽了计算机的具体硬件,向使用者提供了一台虚拟的计算机开发、使用环境。二、计算机操作系统的作用1、它在计算机应用程序与计算机硬件系统之间,屏蔽了计算机硬件工作的一些细节,并对系统中的资源进行有效的管理。2、通过提供函数(应用程序接口(API)),从而使应用程序的设计人员得以在一个友好的平台上进行应用程序的设计和开发,大大地提高了应用程序的开发效率。从用户的角度看,API就是一堆函数,提供操作系统的各种资源,包括读、写、查询硬件等功能三、计算
2022-03-10 10:40:58
8426
原创 人工智能:手把手教你搭建多层神经网络
简介1、在上一篇文章中已经介绍需具备的基本知识以及工具如何安装,不明白的小伙伴可以去我博客主页查看,在这里就不过多叙述2、基本知识一定要去了解,深入理解代码底层的原理一、导入相关包1、tensorflow包作用:引入神经网络2、matplotlib.pyplot包作用:绘图3、numpy包作用:矩阵的相关运算代码如下:#首先导入tensorflow包、numpy包、matplotlib包import tensorflow as tfimport numpy as npimport
2022-03-09 10:37:47
2573
原创 人工智能:手把手教你搭建单层神经网络(思路清晰&简单易懂&上手快)
搭建单层神经网络首先需具备的知识如下:1、人工智能基本理论2、深度学习基本知识3、机器学习基本知识4、tensorflow基本知识5、numpy(矩阵运算)基本知识6、神经网络(搭建模型)基本知识7、matplotlib(绘图)基本知识8、pandas(python语言编写的软件库)基本知识》不要吓到了,慢慢来,查查资料就能懂了(来自小白的仰望)一、人工智能开发环境的安装(以下安装在Anaconda Prompt终端输入即可)1、安装tensorflowpip install --u
2022-03-08 10:50:17
3968
原创 Anaconda:Anaconda的介绍及基本命令
一、Anaconda与numpy基本介绍1、Anaconda是啥?Anaconda是一个包管理器和环境管理器(1)管理包:如果你想要一个包,它会很好的帮助你在计算机上安装和管理这些包,包括安装、卸载和更新包(2)管理环境:有很多项目使用的包版本不同,比如不同的pandas版本,不可能同时安装两个Numpy版本,用户需要做的是为每个Numpy版本创建一个环境,然后在项目的对应环境中工作。2、numpy是啥?numpy(numerical python)是python的一种开源的数值计算扩展,这
2022-03-07 10:40:30
797
原创 python基础:从入门到精通(史上最简)
一、注释以“#”开头,即可以进行注释,增加程序的可读性二、python打印函数print()的使用输出可以加一个反斜杠“\t”,表示顶格输出输出也可以加一个换行符“\n”,表示换行输出,当然还有其它的输出,大家可以自行下去了解即可print('hello world')print("你好今天是2022年03月04号\n好的,我知道你是来自未来!")hello world你好今天是2022年03月04号好的,我知道你是来自未来!三、if True 和 else的使用#bool类型:T
2022-03-06 12:58:19
2917
2
原创 人工智能:jupyter安装及基本命令
一、安装Miniconda》网上有各种资源包(或者直接从官网上下载),有需要的可以联系我邮箱:Zhangyc_Engineer@qq.com二、安装jupyterwindows下安装:使用pip进行安装代码:pip install jupyter(注:jupyter安装需要Python 3.3或更高版本,或Python2.7)升级以后安装的操作:pip install --upgrade pip //安装过程比较漫长,大概需要5分钟左右或者:conda install jupy
2022-03-04 20:08:58
1723
原创 QT教程:多线程&互斥锁(互斥锁有实例)
一、主线程每个应用程序启动后,拥有的第一个线程称为主线程。QT中创建的第一个桌面应用程序(QDialog、QMainwindow or QWidget)开始运行,那么这个桌面应用程序就是主线程,也成为GUI线程。另外,子线程即工作线程,主要负责处理GUI线程的耗时工作(耗时工作例如,开启视频、打开图片的同时,通过window串口向GUI界面传输数据),QT中所有的组件类和几个相关的类只能工作在GUI线程,不能工作在子线程。二、子线程QThread线程类是Qt线程中一个公共的线程类,所有的线程类都是从Q
2022-02-25 14:49:02
11477
4
原创 QT教程:QT的基本了解
一、Qt是什么1、C++的一个框架,也是一款图形界面应用程序框架(GUI库){包含500多个类,9000多个函数,并且被分成了多个模块在C++基础上有了更高级的接口和机制}2、主要应用于桌面应用程序的开发二、开发工具1、Qt Creator2、VS3、其他三、QT的优势(短平快–投资少、周期短、见效快、效益高)1、跨平台,几乎支持所有的平台(Linux、Windows、Unix、Mac等),一次编码,随处编译2、接口简单,容易上手3、开发效率高,能够快速构建应用程序4、很好的
2022-02-06 18:15:02
4122
原创 传感器:HC-SR04超声波传感器原理(底部附代码)
一、超声波测距原理》》超声波测距原理是在超声波发射装置发出超声波,在发射超声波的同时开始计时,超声波在空气中传播,在传播的时刻碰到障碍物,就会返回一个信号给超声波接收器,超声波接收器接收到信号后立即停止计时,这时候会有一个时间t,而超声波在空气中传播的速度为340m/s,通过公式s=340 x t / 200,即可计算出待测距离是多少。(公司用的是HC-SR04,可提供2cm-400cm的非接触式测距功能)1、采用单片机I/O口TRIG触发测距,给定至少10us的高电平;2、模块自动发送8个40khz
2022-01-25 20:06:45
21922
4
原创 STM32:串口基本配置代码
STM32串口1(PA9 & PA10)的基本代码配置如下:void USART1_Configuration(void)//串口1的配置函数{ GPIO_InitTypedef GPIO_InitStructure; USART_InitTypedef USART_InitStructure; NVIC_InitTypedef NVIC_InitStructure;//使能时钟频率 RCC_APB2PeriphClockCmd(RCC_APB2Peri
2022-01-24 23:35:57
1563
原创 STM32:中断的详细介绍及使用流程
一、中断介绍1、中断概念》》CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序(中断服务子程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。引发中断的事件称为中断源。比如:看电视时突然门铃响,那么门铃响就相当于中断源,有些中断还能够被其它高优先级的中断所中断,那么这种情况又叫做中断的嵌套。》》 STM32F10x芯片有84个中断通道,包括16个内核中断和68个可屏蔽中断,这些中断通道已按照
2022-01-24 09:08:25
20330
1
原创 STM32教程(CubeMx版):STM32CubeMx开发实例教程
基于STM32库函数开发教程(代码+教程文档)需要的联系邮箱:Zhangyc_Engineer@qq.com(注:不免费)
2022-01-23 17:28:06
2548
原创 STM32教程(库函数版):STM32库函数开发实例教程
基于STM32库函数开发教程(代码+教程文档)需要的联系邮箱:Zhangyc_Engineer@qq.com(注:不免费)
2022-01-23 17:22:39
3256
原创 cjson:json字符串的理解
一、cjson概念cJSON是一款开源的轻量级数据格式解析封装库,在嵌入式中的应用场景是非常多的,其中就有我们日常使用的天气,还有很多公司让cJSON和MQTT协议相结合,终端用它来向服务器上报参数、日志信息或者服务器向终端发送指令。这就需要用到cJSON来将这串字符串解析成我们需要的数据,或者将需要上报的信息封装成cJSON格式,这样相互通信的两端才能得到自己想要的数据。过一个具体的例子来说明一下,首先去官网把这个库下载下来,官网的地址:https://sourceforge.net/projects/
2022-01-23 17:16:38
619
原创 C语言:堆区、栈区、静态区、常量区、代码区
C语言的内存模型分为5个区:栈区、堆区、静态区、常量区、代码区。每个区存储的内容如下:1、栈区:存放函数的参数值、局部变量等,由编译器自动分配和释放,通常在函数执行完后就释放了,其操作方式类似于数据结构中的栈。栈内存分配运算内置于CPU的指令集,效率很高,但是分配的内存量有限,比如iOS中栈区的大小是2M。(栈是先进后出,队列是先进先出)2、堆区:就是通过new、malloc、realloc分配的内存块,编译器不会负责它们的释放工作,需要用程序区释放。分配方式类似于数据结构中的链表。“内存泄漏”通常说的
2022-01-23 17:09:30
2633
原创 C语言:Sprintf、Strcpy、Memcpy、Memset、Strcmp、Strlen
一、sprtinf1、定义sprintf指的是字符串格式化命令,是把格式化得数据写入某个字符串中,即发送格式化输出到string所指向的字符串,直到出现字符串结束符‘\0’为止。2、声明int sprintf(char *string , char *format [, argument , …]);3、参数列表(1)char *string :这是指向一个字符数组的指针,该数组存储了C字符串;(2)char *format :这是字符串,包含了要被写入到字符串str的文本,它可
2022-01-23 17:01:01
995
原创 matlab:matlab神经网络工具的使用
步骤如下:1、打开matlab,点击“app”,图示“三角形”图标。2、图中圈出工具箱,即为神经网络工具箱工具箱。这四种分别为BP、拟合、模式识别和时间序列神经网络。这里我们使用时间序列神经网络。3、图示,右边即为选择问题处理方式,第一个有出入有反馈,第二个有反馈无输入,第三个无反馈有输入。4、选择有输入有反馈方式,点击next。5、图示选择好输入输出,选择时间步骤行或列,然后点击nex。6、选择训练数据、校正数据以及测试数据,然后点击next。7、设置隐藏层以及神经元影响步距,点
2022-01-23 16:53:02
11906
原创 神经网络:BP神经网络
一、概述BP(Back Propagation)神经网络是1986年由Rumelhart和McCelland为首的科研小组提出,参见他们发表在Nature上的论文 Learning representations by back-propagating errors 。BP神经网络是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的 输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断 调整
2022-01-23 16:42:39
2570
原创 项目:基于QT的智能家居系统设计
项目内容涉及QT、数据库、服务器、网关、协调器、传感器等! 邮箱:Zhangyc_Engineer@qq.com(需要的朋友联系我邮箱即可)
2022-01-23 16:32:29
5185
原创 谱中科技STM32F103ZET6学习资料
STM32学习资料(谱中)有需要的自行保存,别忘了点击关注奥!!! **适合初学者**链接:https://pan.baidu.com/s/1isRvPA41ED5mDDCZuJVBmQ提取码:qmcx:有关谱中STM32ZET6教程、开发板原理图、以及实验程序我都打包了。注意!!!链接暂存七天!需要的赶快下载哦,我是你们的张先森,别忘...
2019-12-01 23:37:15
2644
4
QT编写的串口调试助手,包含帧格式设置、信号与槽机制等
2022-03-29
STM32-PZ6806L开发板原理图.pdf
2019-12-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人