- 博客(28)
- 收藏
- 关注
原创 Python数据分析与展示-1
维度是一组数据的组织形式。数据维度就是在数据之间形成特定关系表达多种含义的一个概念。一维数据:一维数据由对等关系的有序或无序数据构成,采用线性方式组织。对应列表、数组和集合等概念。列表和数组:一组数据的有序结构。区别:列表:数据类型可以不同数组:数据类型相同二维数据:二维数据由多个一维数据构成,是一维数据的组合形式。表格是典型的二维数据。其中,表头是二维数据的一部分多维数据:多维数据由一维或二维数据在新维度上扩展形成。例如增加时间维度的表格高维数据:高维数据仅利用最基本的二元关系展
2022-02-14 23:49:42 547 1
原创 小熊派学习2
GPIOGPIO的功能不仅是设置为普通的GPIO还可以进行设置TXD,PWM波等以下功能ADC是指将连续变量的模拟信号转换为离散的数字信号的器件。实例操作GPIO控制ledADC函数
2022-02-08 14:13:34 499
原创 小熊派学习1
1.写代码时xxx.c为业务代码,xxx.gn为编译脚本2.头文件ohos_init.h 提供用于在服务开发期间初始化服务和功能的条目(不必深入理解)3.截图代码中最后一句,必须有APP_FEATURE_INIT(Hello_World)才能让自己写的代码运行,其中INIT定义在头文件#include "ohos_init.h"中,如果没有头文件的话,这行代码没有作用。4.static_library中指定业务模块的编译结果,为静态库文件libmyapp.a,开发者根据实际情况完成填写。 作用是将
2022-02-05 23:38:19 3431
原创 嵌入式C-2
1.指针指针是包含内存地址的变量,这个地址是内存中另一个对象(通常是另一个变量)的位置。例如如果一个变量包含另一个变量的地址,我们说第一个变量指向第二个变量。比如此时,定义指针为a,那么此时a指向的便是88,在后面移动指针a+6,那么此时b=*a=40.而接下来,我们区别一下几种写法:int p=1;就是定义整形变量p,并赋值为1.Int p=1;是定义整形指针p 并且指向的地址为1;它此时只有地址,地址里没有值。intp=&a; 意思就是定义指针p 并且指向的地址为a的地址;此时指针
2022-02-04 12:44:17 582
原创 嵌入式C-1
进制转换进制概念在计算机语言中常用的进制有二进制、八进制、十进制和十六进制,十进制是最主要的表达形式。二、八、十、十六进制基数对照表二进制转八进制方法:八进制数从低位到高位(即从右往左)计算,第0位的权值是8的0次方,第1位的权值是8的1次方,第2位的权值是8的2次方,依次递增下去,把最后的结果相加的值就是十进制的值了。八进制就是逢8进1,八进制数采用 0~7这八数来表达一个数。例:将八进制的(53)O转换为十进制的步骤如下:第0位 3 x 8^0 = 3;第1位 5 x 8^1
2022-01-29 15:59:35 643
原创 sqlite数据库基础学习
1.sqlite数据库简介sqlite是一款轻型的嵌入式数据库,它占用资源非常的低,它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口。sqlite数据库的优点:在读取数据的时候可以减少网络访问的消耗, 简化数据库的管理, 程序的部署也比较容易.简单,访问速度快(最好不要把它看做一个数据库,而是一个文件系统)支持常见的SQL语法,包括常见数据库功能: 事务、索引、视图、触发器的部分功能. (麻雀虽
2022-01-27 23:49:10 1427
原创 pymysql连接数据库实现增删改查
经过上次,我们已经学会使用python导入pymysql然后连接数据库。而今天我们想使用pymysql来构建一个⾯向对象版学员管理系统,能够连接数据库,对数据进行增删改查等操作。一.首先我们导入各个模块,与数据库进行连接。import threading # 导入模块import pymysql as pymysql # 导入模块# 获取数据库连接对象db = pymysql.connect(host='localhost', user='root', password='123456',
2022-01-16 01:49:49 246
原创 pymysql的基本使用
PyMySQL是在 Python3.x 版本中用于连接 MySQL 服务器的一个库。接下来将介绍一些PyMySQL的一些基本操作。1.数据库连接import pymysql # 打开数据库连接db = pymysql.connect(host='localhost', user='testuser', password='test123', database='TESTD
2022-01-13 21:04:38 2257
原创 python定时器
一、定时器在实际应用中,我们需要使用定时器去触发一些事件。Python中的定时器是timer。首先看个例子:import datetime # 导入datetime模块import threading # 导入threading模块def run(): # 定义方法 print(datetime.datetime.now()) # 输出当前时间 timer=threading.Timer(1,run) # 每秒运行 timer.start() # 执行方法
2022-01-11 20:48:51 15526
原创 python信号量、条件变量、事件
一.信号量信号量和锁相似,锁同一时间只允许一个对象(进程)通过,信号量同一时间允许多个对象(进程)通过。1.semaphore信号量原理多线程同时运行,能提高程序的运行效率,但是并非线程越多越好,而semaphore信号量可以通过内置计数器来控制同时运行线程的数量,启动线程(消耗信号量)内置计数器会自动减一,线程结束(释放信号量)内置计数器会自动加一;内置计数器为零,启动线程会阻塞,直到有本线程结束或者其他线程结束为止;2.semaphore信号量相关函数介绍acquire() — 消耗信号量,内
2022-01-10 11:25:59 125
原创 python多线程的特性、线程锁、递归锁
多线程的特性多线程类似于同时执行多个不同程序,多线程运行有如下优点:使用线程可以把占据长时间的程序中的任务放到后台去处理。用户界面可以更加吸引人,比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度。程序的运行速度可能加快。在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下我们可以释放一些珍贵的资源如内存占用等等。而初始化多线程有两种方法第一种是函数方法:import threadingimport timedef te
2022-01-08 20:03:26 398
原创 python动态给类添加方法、运算符重载
1.动态给类添加方法对于动态给类添加方法,首先我们应该定义好一个类和一个方法,随后通过实例化对象,将这个方法赋予给实例化对象,最后调用即可。from types import MethodType #导入MethodType方法class cat: #定义猫类 def eat(self): #定义吃的方法 print("猫猫喜欢吃小鱼饼干") #输出猫猫喜欢吃小鱼饼干def run(self): #定义跑的方法 print("猫咪跑的非常快") #输出
2022-01-06 17:16:02 1113
原创 python的类、继承和多态
1.类类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。而在类中定义的函数则成为方法。下面是定义类。class MyClass: """一个简单的类实例""" i = 12345 def f(self): return 'hello world' # 实例化类x = MyClass() # 访问类的属性和方法print("MyClass 类的属性 i 为:", x.i)prin
2022-01-04 11:17:37 664
原创 CNN卷积神经网络
一、卷积神经网络的定义卷积神经网络由一个或多个卷积层、池化层以及全连接层等组成。与其他深度学习结构相比,卷积神经网络在图像等方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他浅层或深度神经网络,卷积神经网络需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。在CNN的一个卷积层中,通常包含若干个特征平面(featureMap),每个特征平面由一些矩形排列的的神经元组成,同一特征平面的神经元共享权值,这里共享的权值就是卷积核。卷积核一般以随机小数矩阵的形式初始化,在网络的训练
2021-09-04 16:02:07 972
原创 初识BP神经网络
BP神经网络的认识BP神经网络是最基础的神经网络,其输出结果采用前向传播,误差采用反向(Back Propagation)传播方式进行。在我看来BP神经网络就是一个”万能的模型+误差修正函数“,每次根据训练得到的结果与预想结果进行误差分析,进而修改权值和阈值,一步一步得到能输出和预想结果一致的模型。举一个例子:比如某厂商生产一种产品,投放到市场之后得到了消费者的反馈,根据消费者的反馈,厂商对产品进一步升级,优化,从而生产出让消费者更满意的产品。这就是BP神经网络的核心。看这样一个问题,假如我手里有一笔钱
2021-08-29 12:57:18 1125
原创 支持向量机SVM
SVM是什么SVM(全称Support Vector Machine)中文名称支持向量机。SVM是一种二分类算法,所谓二分类即把具有多个特性(属性)的数据分为两类。它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。线性分类如果需要分类的数据都是线性可分的,那么只需要一根直线f(x)=wx+b就可以分开了,如下图所示,现在有一个二维平面,平面上有两种不同的数据,分别用圈和叉表示。由于这些数据是线性可分的,所以可以用一条
2021-08-26 18:26:38 1257
原创 KNN算法
KNN算法什么是KNN算法KNN可以说是最简单的分类算法之一,同时,它也是最常用的分类算法之一。KNN的全称是K Nearest Neighbors,意思是K个最近的邻居,从这个名字我们就能看出一些KNN算法的蛛丝马迹了。KNN的原理就是当预测一个新的值x的时候,根据它距离最近的K个点是什么类别来判断x属于哪个类别。如下图,绿色圆要被决定赋予哪个类,是红色三角形还是蓝色四方形?如果K=3,由于红色三角形所占比例为2/3,绿色圆将被赋予红色三角形那个类,如果K=5,由于蓝色四方形比例为3/5,因此绿色圆
2021-08-24 16:55:00 480
原创 ESP8266WiFi模块的使用以及arduino调试
WiFi模块ESP8266的使用以及arduino调试一、WiFi模块调试USB转TTL模块与ESP8266 WIFI模块的接线:RXD、TXD、GND、VCC,分别和USB转TTL模块的TXD、RXD、GND、VCC相连接。需要注意两点:1、ESP8266的RXD(数据的接收端)需要连接USB转TTL模块的TXD,TXD(数据的发送端)需要连接USB转TTL模块的RXD,这是基本的;2、关于VCC的选取,在USB转TTL模块上有3.3V和5V两个引脚可以作为VCC,但是一般选取5V作为VCC
2021-05-14 22:26:48 5732
原创 C++面向对象
一、类和对象类定义是以关键字 class 开头,后跟类的名称。类的主体是包含在一对花括号中。类定义后必须跟着一个分号或一个声明列表。例:class Box{ public: double length; double breadth; double height;};类提供了对象的蓝图,所以对象是根据类来创建的。声明类的对象,就像声明基本类型的变量一样。例:int main( ){ Box Box1; // 声明 Box1
2021-04-25 21:50:06 526
原创 C语言位域,字节序,文件包含
一、什么是位域?有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字节的二进制位域来表示。一、位域的定义和位域变量的说明位域定义与结构定义相仿,其形式为:struct 位
2021-04-18 17:05:45 272
转载 结构体,结构体指针,结构体参数传递
C语言结构体与结构体指针的使用 tips:最近要好好学习一下数据结构,所以必不可少的就是c语言的结构体和结构体指针了,所以就整理一下这些基础知识 c语言结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合。说的通俗一点就是一个集合。c语言是一门面向过程的编程...
2021-04-18 16:22:33 3909
原创 条件编译和内存操作
一·条件编译 在程序设计时,可以根据条件编译告诉编译器的条件执行或者忽略代码。例如在配置从机(eg: 模拟前端)的寄存器时,需要确认数据写入是否成功,进行读出和重写!此时可选择性的选择是否重写和重写次数。如下: SendDataToAddr(ADDR_AFE_BIM1,Body_FWR_50KHz);#if(DEBUG_CS1258_REWRITE == 1)
2021-04-18 15:04:42 147
转载 宏定义详解
宏定义的黑魔法 - 宏菜鸟起飞手册 宏定义在C系开发中可以说占有举足轻重的作用。底层框架自不必说,为了编译优化和方便,以及跨平台能力,宏被大量使用,可以说底层开发离开define将寸步难行。而在更高层级进行开发时,我们会将更多的重心放在业务逻辑上,似乎对宏的使用和依赖并不多。但是使用宏定义的好处是不言自明的,在节省工作量的同时,代码可读性大大增加。如果想成为一个能写出漂亮优雅代码的开发者,宏定义绝对是必不可少...
2021-04-18 11:13:44 2729 2
原创 Typedef的用法
这讲介绍C语言中很常用的一个关键字—typedef。 一、typedef作用简介 我们可以使用typedef关键字为各种数据类型起别名。 1 #include <stdio.h> 2 3 typedef int Integer; 4 typedef uns...
2021-04-18 11:06:03 1920 1
原创 变量和关键字
常用的关键字静态变量与动态变量的基本概念静态变量:指的是在编译时(compiling-time)变量的地址和大小都已经确定下来的变量动态变量:指的是在运行时(run-time)变量的地址和大小才开始确定。这个确定不是持续长久的,当程序使用完后,系统会自动删除回收在嵌入式系统中,为了追求项目的可靠性,因此会较常使用静态变量。static的作用1.先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加 static 前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来
2021-04-10 11:57:55 236
转载 嵌入式C语言位运算之清位置位
如题,在嵌入式开发中,掌握位运算是节省开发时间和提高开发效率的一种高效方式。 我们不得不去熟悉如何快速掌握位运算这种高效的技巧,接下来看看程序。. #include <stdio.h>#include <stdlib.h>int main(void){ unsigned char num = 0xfe ; //1111 1110 num &am...
2021-04-04 02:17:31 400
转载 嵌入式linux C语言(一)——位运算的使用
嵌入式linux C语言(一)——位运算的使用 ARM是内存与IO统一编址,SoC中有很多控制寄存器,通过对这些寄存器进行位运算对这些控制寄存器进行设置,进而控制外设功能。在修改寄存器某些位的过程中不能修改其他的位。一、位运算基础C语言基本的位操作符有与、或、异或、取反、左移、右移六种位运算符。如下表所示:符号 描述 ...
2021-04-04 02:03:41 695
原创 城市流浪宠物疫情监控系统
城市流浪宠物疫情监控系统城市流浪宠物疫情监控系统是梅克尔工作室于2020年疫情期间提出的一套专门针对宠物的项目,本项目通过对宠物进行分析与监控从而帮助主人更好的照顾宠物。接下来将从这几个方面介绍本项目。1 项目目的与意义以及发展项目的原因2 项目创新点3 项目的技术难点4 类似产品与比较5 市场痛点1 项目的目的与意义以及发展项目的原因由于疫情期间人们和宠物大都待在家中而无法外出,并且宠物需要进行整体的监控,这样能够帮助主人更好的了解自己宠物的身体健康状态,生活习惯……于是提出了城市宠物
2021-04-04 01:40:42 308
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人