学习笔记
文章平均质量分 94
生活在别处u
生活是冷冷清清的风风火火
展开
-
Pytorch学习笔记
????️ Pytorch学习笔记文章目录:parking: Pytorch学习笔记1.可视化模块1.1.Tensorboard1.1.1.SummaryWriter():用于创建一个Tensorboard项目1.1.2.writer.add_image():用于写入图片1.1.3.writer.add_scalar():用于写入标量,即绘图1.1.4.tensorboard --logdir=logs:运行1.1.5.示例代码2.数据转换2.1.transforms2.1.1.ToTensor():转化原创 2021-10-16 10:22:13 · 193 阅读 · 0 评论 -
Linux驱动基础
Linux驱动基础1. Linux设备驱动概述1.1. 设备驱动的作用 在使用printf()函数输出信息的时候,应用软件工程师并不需要知道底层是如何把相应的信息输出到屏幕或者串口上。对他来说,硬件好像是不存在的。实现硬件隐形的工作,就是驱动工程师的工作。 对设备驱动最通俗的解释就是“驱使硬件设备行动”。驱动与底层硬件直接打交道,按照硬件设备的具体工作方式,读写设备的寄存器,完成设备的轮询、中断处理、DMA 通信,进行物理内存向虚拟内存的映射等,最终让通信设备能收发数据,让显示设备能显示文字和画原创 2021-03-17 09:58:17 · 290 阅读 · 0 评论 -
C语言应用3:环形队列
1 环形队列第一讲(C语言应用1:队列)的时候我们讲了用链表实现队列,这种方式虽然效率高,但是频繁地在堆(heap)上分配和释放空间,由于单片机或者模组上没有内存管理机制,且堆空间小,这样的操作会导致内存碎片增多,很容易使系统崩溃。而环形队列可以很好的解决这个问题。环形队列基于数组和指针实现,数组在存储中是线性的,通过两个移动的指针将首尾“对接”,实现环形的存储效果。环形队列有以下的特性:1.先进先出;2.大小固定,建议根据数据的传输量确定合适的大小;3.稳定性高,数组确定下来,不存在分配和释放空间原创 2020-06-28 10:52:19 · 703 阅读 · 0 评论 -
C语言应用2:函数指针
函数指针在嵌入式设备中的实际应用原创 2020-06-23 11:48:36 · 168 阅读 · 0 评论 -
C语言应用1:队列
1.队列队列是一种先进先出的线性表,每次操作只允许删除表的前端节点或者后端节点。2.应用领域2.1.AT指令:使用2G/3G/4G模块时,定时向服务器传输数据时,可能会产生冲突。比如定时2s通过AT_CMD1发送温湿度数据,定时10s通过AT_CMD2发送电量数据。那么每过10s就可能出现AT指令冲突。使用队列可以规避这种冲突,每隔一段时间需要发送数据时的时候,将对应的AT传入队列中,由队列进行统一管理,并定时(这个时间可以短一些,决定精度)检测队列里是否有数据,有就上传服务器。如下图所示。2.原创 2020-06-22 10:17:08 · 779 阅读 · 0 评论 -
ESP8266+FreeRTOS学习笔记1:搭建【思维导图】
原创 2020-03-16 11:14:52 · 613 阅读 · 0 评论 -
读书笔记:《C++大学教程》第六章:函数和递归入门(2)
读书笔记:《C++大学教程》第六章:函数和递归入门(2)1.引用和引用形参1.1函数的参数传递分为两种按值传递:函数结束后自动销毁,不改变传入实参的值。按引用传递:在形参类型后加个&,不用返回便可修改传入实参的值。1.2引用变量必须在它们的声明中完成初始化,并且不能在指定为其他变量的别名.1.3从函数返回引用:虚悬引用...原创 2020-01-09 17:48:17 · 102 阅读 · 0 评论 -
读书笔记:《C++大学教程》第六章:函数和递归入门(1)
《C++大学教程》第六章:函数和递归入门1.重要概念1.1.函数模块化程序有以下几个原因一是“分而治之”法的使用二是软件复用三是避免重复代码四是把程序分解成有意义的函数也使其更容易调试和维护1.2.全局函数像main函数之类的不属于任何类对象函数的函数,他的原型放在头文件中1.3.数据升级和转换float -->int 结果可能不正确,应当避免int --> f...原创 2020-01-06 11:35:54 · 133 阅读 · 0 评论 -
读书笔记:《C++大学教程》第四章,第五章:概念拾遗
读书笔记:《C++大学教程》第四章1.重要概念1.1算法:对任何可求解的计算机问题来说,都能够以特定的顺序执行完成,解决问题的步骤称为算法。1.2.控制语句顺序,选择,循环1.3.转换显式转换 static_cast<double>(x)隐式转换 bug源泉,尽量避免1.4.浮点数的格式化#include<iomanip>cout << s...原创 2020-01-03 09:41:15 · 83 阅读 · 0 评论 -
读书笔记:《C++大学教程》第二章,第三章 (2):接口与实现相分离
第二章,第三章 (2):接口与实现相分离1.代码书写一套实用的面向对象代码需要实现以下三点1.这个类是可复用的。2.这个类的客户知道该类提供了什么成员函数,如何调用它们,以及期望的返回值类型。3.客户不知道这个类的成员函数如何实现。因此我们将代码放在三个文件中Gradebook.h#include <string>class GradeBook{public: ...原创 2019-12-28 14:12:39 · 144 阅读 · 0 评论 -
读书笔记:《C++大学教程》第二章,第三章 (1): 实现第一个面向对象的程序
第二章,第三章 : 实现第一个面向对象的程序1.书写程序建立文件GradeBook.h#include <iostream>#include <string>class GradeBook{public: explicit GradeBook(std::string name) { courseName = name; ...原创 2019-12-27 11:38:02 · 127 阅读 · 0 评论 -
读书笔记:《C++大学教程》第一章:计算机与C++简介
第一章 计算机与C++简介1.计算机1.1.计算机组成单元:输入单元,输出单元,内存(RAM),辅助存储单元(ROM),中央处理器,算数逻辑单元(ALU)。1.2.摩尔定律:当价格不变时,集成电路上可容纳的元器件数目,每隔18-24个月便会增加一倍,性能也会增加一倍。1.3.数据层次结构:位(最小单元) ——>字节(8个位)——>字段(有意义的一些字节的集合体)——>...原创 2019-12-27 10:30:56 · 121 阅读 · 0 评论 -
BLE学习笔记4:协议栈初始化
BLE协议栈的初始化实现了三个部分的功能:初始化时钟,协议栈使能,回调派发函数使能。1.初始化时钟BLE协议栈时钟有一下三个选项,功耗由低至高排序:#define NRF_CLOCK_LF_SRC_XTAL (1) /**< LFCLK crystal oscillator. */#define NRF_CLOCK_LF_SRC_...原创 2019-03-27 21:29:40 · 750 阅读 · 0 评论 -
BLE学习笔记3:GAP初始化
GAP(Generic Access Profile),即通用访问规范。以下是搜索软件提供的解释:GAP定义了蓝牙设备如何发现和建立与其他设备的安全(或不安全)连接。它处理一些一般模式的业务(如询问、命名和搜索)和一些安全性问题(如担保),同时还处理一些有关连接的业务(如链路建立、信道和连接建立)。GAP规定的是一些一般性的运行任务。因此,它具有强制性,并作为所有其它蓝牙应用规范的基础。GAP...原创 2019-03-27 16:13:41 · 2146 阅读 · 0 评论 -
BLE学习笔记2:广播
1. 广播初始化广播初始化主要配置两个结构体advdata广播参数和option广播方式。1.1 advdata在初始化advdata之前,先使用 memset(&advdata, 0, sizeof(advdata))语句将advdata结构体中的所有数置零。下图是advdata结构体列表参数,在蓝牙示例程序中,我们需要配置name_type(名称类型,注意这里并不是名称,名称定义...原创 2019-03-26 11:25:51 · 1191 阅读 · 0 评论 -
BLE学习笔记1:修改LED和按键程序
1.开发准备1.nRF51/52开发板,这里我使用的是nRF52832开发板,店家提供的资料很多2.开发环境,这里我不详细介绍2.修改LED程序由于nRF历程把LED的特性(charateristic)的值(value)固定了,所以这里我们添加的功能的,收到1是不止点亮LED3,并反转LED4的状态。具体实现步骤如下:1.先初始化LED4,添加的位置在main.c#define LE...原创 2019-03-21 17:27:25 · 394 阅读 · 0 评论 -
matlab学习笔记3:自守数的两种解法
1自守数的概念:自守数是指某个数的平方的末尾几位数等于这个数的数,比如5,由于5*5=25,5为25的尾数,因此5是自守数。2循环和矩阵解法:根据自守数的定义,对于一个十进制数x,其位数为n,若x2%10n=x,则x为自守数。规定0,1非自守数。循环解法:j = 0;for n = 5:100000 temp = floor(log10(n))+1; %temp为当前n的位...原创 2019-02-14 23:38:54 · 352 阅读 · 0 评论 -
matlab学习笔记2:搭建简易的串口,并将数据保存至csv
1搭建简易串口使用matlab搭建串口需要注意以下几个注意事项:1.进行串口初始化之前先删除所有串口设备,这可以有效防止由于串口被占用造成的串口初始化失败。2.初始化串口需要配置串口号,波特率,触发方式以及回调函数入口3.每次中断成功之后都会跳转至回调函数,在回调函数中使用主函数的变量,必须在回调函数的()内部声明,或者使用全局变量。基本声明形式为function Callback(ob...原创 2019-01-14 10:35:01 · 3179 阅读 · 0 评论 -
matlab学习笔记1:使用串口将多路传感器数据导入csv表格,并使用matlab绘图
1.使用串口将多路传感器数据导入csv表格逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号)。通过在打印文本的时候加入“ ,”或者“ /r/n ”可以实现换列和换行。使用串口助手接受数据到文件,文件命名为XXX.csv。STM32单片机端程序的处理其实就是通过合理的运用分隔符实现表格的合理排序,便于...原创 2019-01-11 13:06:05 · 1729 阅读 · 1 评论