自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小灰笔记

学习笔记,仅用于自我参考回忆!

  • 博客(51)
  • 论坛 (1)
  • 收藏
  • 关注

原创 411_spacemacs改变行间距效果

全部的学习汇总: https://github.com/GreyZhang/g_lisp 使用spacemacs有一阵子了,好几次感觉行间距太小,让我看着文本文件的时候有种文字扎堆的感觉,眼睛很累。 今天,对着emacs的手册尝试修改line-spacing的默认值,发现一直没有效果。看起来,这部分行为已经在spacemacs庞大的配置中被修改掉了。 于是,请教了一个叫做“搜索引擎”的大神,找到了一个解决的方案。...

2020-09-30 20:23:26 51

原创 410_Arduino UNO库模块梳理

全部的学习汇总:https://github.com/greyzhang 通过Arduino的IDE帮助菜单,其实能够找到一部分库的文档。首先,内置的标准库有如下的一个概括总结。 上面这个标准的库清单基本上是一个通用的库,其中有几个我基本上用过或者接触过了。接下来一个个看一下。EEPROM,其实这个是AVR单片机里面的一个模块; 以太网,使用以太网的板盾连接以太网。目前,我手里已经有这么一个板盾了,但是更多可能是在用他的SD卡卡槽。后面抽时...

2020-09-26 09:16:41 139

原创 409_spacemacs c-mode中去掉单引号输入自带的斜线

全部的学习汇总: https://github.com/GreyZhang/g_lisp 使用spacemacs的配置,在C代码编写的时候,单引号总是自动带一个转义字符线。具体的状态如下: 我做纯控制,其实其实这样的东西用得少,以前也就直接忍了。最近玩Arduino,一直跟很多字符、字符串打交道,这个确实是让我恼火了一阵子。 网络上查看了一下,其实这个是有一个问题跟踪的:https://github.com/syl20bnr/...

2020-09-25 15:57:25 44

原创 408_在Arduino上尝试实现S19、MOT等文件的解析

全部的学习汇总: https://github.com/GreyZhang/arduino_uno Srecord格式的文件解析其实还是很有规律的,之前看过一个NXP提供的一个解析的功能。但是,功能混在在了串口Bootloader里面,不是很通用。今天在Arduino上,尝试做这样的一个移植修改。 为了这个功能调试,我还参考了其他人网上printf的功能移植,一同放在了这一份代码里面。 为了保证调试的容易,直接使用C模式。...

2020-09-23 22:02:29 58

原创 407_C语言十六进制字符串转数字

习惯了拿来主义,有时候遇到问题之后总是考虑是否有库或者现成的东西可用。结果,有些很简单的问题处理起来忘掉了最基础的技巧。 尝试将十六进制的字符串转换成数字,技巧其实很多。为了练手,利用ASCII码表的顺序关系自己做了一个简单的小函数。 实现功能:合理的单个十六进制字符转换成数字; 合理的两位十六进制字符串转数字;根据自己的设计,测试如下: 测试结果如下: 最后,附加我的全部代码如下:...

2020-09-23 21:14:01 156

原创 406_Arduino EEPROM存储清空例程分析

全部的学习汇总:https://github.com/GreyZhang/arduino_uno 今天有点晚了,本来想就此收住直接休息。正好换了一个九块九包邮的键盘,试试手感,玩玩emacs。于是,又看了这个例程。 例程的代码如下: 跟官方的显示效果或许稍有不同,我按照我的习惯进行了一点排版的调整。 上面的代码太简单了,其实一看就懂。一个for循环,用0填充了整个EEPROM的空间。写完之后,点了一个灯。...

2020-09-22 23:19:30 51

原创 405_Arduino BootLoader实现代码阅读

全部的学习汇总:https://github.com/GreyZhang/arduino_uno 在安装目中找到了Arduino的BootLoader源代码,找出了UNO相关的那一份做了一个简单的代码阅读。 后面会附加全部的代码片段到Github上,代码内容就不在博客中贴了,比较站空间。其中,看到的几点小结如下:里面的延时相对来说都不是很精确的,直接使用了软件CPU死等; 没有用到定时器; EEPROM的编程十分简单; 进入到编程环节之后,...

2020-09-22 20:08:27 34

原创 404_SdFat文件的创建和删除

全部的学习汇总: https://github.com/GreyZhang/SdFatFs 看一下SdFat的文件创建以及删除功能,还是从例程开始。 测试,首先检查是否有example.txt这个文件,并给出结果。然后,尝试打开文件,没有的时候创建。之后,再次测试是否存在,并给出结果。最后删除,在此检查并给出结果。 运行一下效果如下: 接下来,我直接在SD卡中创建一个这样的文件进行测试。...

2020-09-21 21:48:55 35

原创 403_SdFat的文件读取测试

全部的学习汇总:https://github.com/GreyZhang/SdFatFs 想测试一下SdFat的读取功能,根据例程修改一下,读取一个5M的文件,看看速度。读取速度,我按照串口打印的时间戳来算。测试代码如下: 其他的代码,跟例子基本一致。首先,第一次我把全部的数据打印出来做了一次对比,先确认这个读取动作是没有问题的。这一次测试,去掉了串口打印,应该不会减缓文件的读取。但是,目前的读取方式看上去似乎是一个字节一个字节读取而不是一行行读...

2020-09-21 21:04:35 25

原创 402_PETIT FAT文件系统目录读取测试

全部的学习汇总:https://github.com/GreyZhang/SdFatFs 还有一个目录的操作没有测试,干脆测试一下。不然,感觉总有一部分工作没做。在原来的软件上修改测试代码如下: 软件运行效果: 看上去,有一个打印符号弄错了。不过,已经成功找到了磁盘上的文件。这个系统的确是显得有一点点简陋,看起来,后面还是得用一个功能更完整的来继续我的探索。...

2020-09-20 19:48:26 27

原创 401_Petit FAT文件系统在Arduino上的移植测试

全部的学习汇总:https://github.com/GreyZhang/SdFatFs PETIT文件系统其实是FatFs的一个缩减版本,主要面向8bit的MCU等存储资源比较有限的平台。具体的资料参考官方网站:http://elm-chan.org/fsw/ff/00index_p.html。 尝试做了一下移植,我觉得一个文件系统比较理想的移植状态是改一下SPI其他的基本上自动适配。其实,这个基本上就做到了这样子。 整个文件系...

2020-09-20 19:07:44 45

原创 400_magit进行文件差异比对

全部的学习汇总:https://github.com/GreyZhang/magit_skills 之前,使用Git的Tortoise客户端一个很好的功能就是进行变更文件的内容比对。切换到了magit之后,尝试去找了一下这个功能发现不仅有而且看上去还不错。 首先,实现这个功能的emacs命令如下: 其次需要说的是,这个功能的实现需要使用diff命令。因此,在使用这个功能的时候需要保证Path环境变量中有diff命令。至于这个命...

2020-09-20 15:22:45 34

原创 399_FAT文件系统DPT分区表小结

全部的学习汇总: https://github.com/GreyZhang/SdFatFs 一个文件系统的实现,一点点看下来似乎还是很麻烦的。主要是有很多概念性的信息没有弄清楚。 文件系统的区块0是预留区,这里面其实分为两部分:前面的446个字节是MBR,后面的64个自己是DPT分区。这次先小结一下DPT分区的结构。 找到一份微软的FAT文件系统的硬件白皮书,这部分是Arduino的库文件中提到的,发现这部分没有找到描述。不过,比...

2020-09-18 21:20:44 59

原创 398_Arduino上实现SD卡类型判断

全部学习汇总: https://github.com/GreyZhang/SdFatFs 前面已经测试了Card Command的功能正常,接下来使用相应的功能尝试判断SD卡的类型。主要的测试流程在文档中有一个描述: 这里需要注意的是,有些命令比如ACMD41属于Application CMD。发送的方式跟CMD有一定相似,但是多一部分信息。尝试做CMD的发送的时候,我顺便把这个命令实现了,这次正好测试一下。 ACMD的发送实...

2020-09-18 21:14:45 47

原创 397_Arduino SD卡驱动命令测试

SD卡以及文件系统的分析学习整理汇总: https://github.com/GreyZhang/SdFatFs 上次实现了一个SD卡的SPI命令,今天设计一段代码对此进行测试。这个测试可以通过一个SD卡SPI模式的初始化来实现。 直接截取一部分文档信息,这样能够更容易理解。 按照这部分信息,接下来我的测试可以先发至少74个时钟周期信号,这个可以通过发10个字节来实现,正好80个时钟信号,满足要求。接下来,测试CMD0的响应,...

2020-09-18 20:46:23 29

原创 396_Arduino SD卡驱动命令发送C实现尝试

全部的学习汇总:https://github.com/GreyZhang/SdFatFs 这次总结一下Arduino的SD卡驱动实现,并把这部分代码尽量改成更加容易移植的C模式。因为,C模式在C++中依然可用,反之则不然。再者,我现在的工作主要的编程环境还是C。 看一下主要的代码实现: 根据代码,大致分析一下过程。我增加一份加了中文注释批注的代码如下: 这样,比我直接用文本去描述整个过程看起来会更加清晰...

2020-09-17 23:42:46 56

原创 395_使用Arduino学习C++-变量赋值

全部的学习汇总:https://github.com/GreyZhang/Arduino_Cpp 最初觉得像初始化、赋值等都是再通用不过的模式了。但是,现在看来似乎还是有注意的地方,在此放一个例子对比下看看。 软件编译运行效果: 看得出来,可以这样进行批量的统一赋值。 可能是因为之前编程规范的约束,之前一直没有这么用过。接下来,测试下C语言中的相应操作。 代码如下:...

2020-09-17 20:34:41 98

原创 394_Arduino SD卡驱动实现分析-私有成员和方法

全部的学习汇总:https://github.com/GreyZhang/SdFatFs 私有成员变量或者方法,应该类似于C版本设计中的static类的信息,有一定的访问的限制处理。 根据代码,大概总结一下SD卡的操作。先看几个成员变量,包括的信息大概有:块(编号?)、片选管脚、错误码、在块中(操作?)、偏移量(一个块的偏移量?)、部分块读取、状态、类型。 卡命令发送分为两个,一个是应用命令另一个是命令。从是先看,应用命令的实现是一个内联函...

2020-09-17 20:28:01 35

原创 393_Arduino SD卡驱动库实现分析-全局接口

全部的学习汇总: https://github.com/GreyZhang/SdFatFs 对着代码,理解一下做一个SD卡驱动实现所需要的一些功能。代码是用C++实现的,这次了解的主要内容应该是class中的public部分。 我看了一下,代码中这个类的定义挺大。因此,代码分片段一点点来看。 接下来,直接来一个逐行分析。179,是这个类的一个构造函数,指定了一部分成员的初始化数值; 180,获取SD卡的容量大小; 18...

2020-09-17 20:22:49 34

原创 392_magit使用学习-push修改到源仓库

全部的学习汇总: https://github.com/GreyZhang/magit_skills 克隆、提交、推送基本上是我玩Github的三板斧,暂且把这几个功能掌握了,初步就可以全面使用emacs了。 前面已经完成了commit的操作,接下来直接模糊搜索git push出现结果如下: 看上去第一个选项很可能就是我要的结果,选择尝试。 不知道为什么会有两个选择相同,这里我选择第一个p。没看到任何提...

2020-09-16 21:41:44 52

原创 391_magit使用学习-提交一个新文件

全部的学习汇总: https://github.com/GreyZhang/magit_skills 初步掌握了使用magit克隆一个repo,接下来看看是否能够提交新文件成功。操作的repo是我为了学习magit而创建的一个空的repo。看看这次,我能不能提交一个空的README到master,哪怕先不做最终的push。 当前的repo文件状态: 增加一个README文件: 参考了一些网络上的说明,接...

2020-09-16 21:38:13 50

原创 390_magit使用初步-克隆一个仓库

全部的学习汇总: https://github.com/GreyZhang/magit_skills 很久就知道了magit,我使用的spacemacs中也内置了这个插件。不过,我从来没用过,一个Tortoise Git的三板斧基本是我需要的全部Git功能。至少,目前如此。 太多的工具有时候也让我觉得挺费神的,看看如果magit能够用起来的话后续又可以优化我自己的工具箱了。 直接凭借感觉操作了一下Git的clone,看上去是成功了...

2020-09-16 21:32:15 74

原创 389_使用Arduino学习C++-成员的初始化

全部的学习汇总: https://github.com/GreyZhang/Arduino_Cpp 前面,已经小结过通过构造函数完成成员的初始化的方法。其实,还存在其他的方法可以实现,那就是直接在类的成员定义的时候进行初始化。一份测试代码如下: 软件编译之后的运行效果: 这样,在进行成员初始化的时候其实比使用构造函数的方式更加简洁清晰。此外,还有一种专门处理初始化的方式,其方式看上去有点像两种方式的结合。例子如下:...

2020-09-16 21:28:15 67

原创 388_使用Arduino学习C++-private的使用

全部学习的汇总:https://github.com/GreyZhang/Arduino_Cpp 之前总结过了public,在此结合public一起看一下private的使用。之前的一份代码如下: 运行效果: 其实,上面的部分代码等效模式如下: 可以有同样的运行效果。除此之外,需要说明的是public和private可以在一个类中多次出现。比如如下可能: 这样也会有同样的效果...

2020-09-16 21:22:39 52

原创 387_使用Arduino学习C++-在类内实现的函数

全部的学习汇总:https://github.com/GreyZhang/Arduino_Cpp 在小结类内实现的函数之前,先看一个之前总结过的设计。 软件运行效果如下: 接下来尝试在类中实现一个函数,这种使用方式我在Arduino的库实现中是看到了的。按照教程上的描述,其实这是设计了一个内联函数。这种函数一般是使用频繁且涉及简单的函数。上面的例子重新修改如下: 软件重修编译测试结...

2020-09-16 21:13:59 52

原创 386_使用Arduino学习C++-默认的构造函数行为

全部的学习汇总:https://github.com/GreyZhang/Arduino_Cpp 回到之前熟悉的一个状态: 给类增加一个构造函数,这会带来一个问题,如果不进行显式的初始化编译会报错。如下面的代码会报错。 如果避开这个操作如何实现呢?比如,让初始值默认为0?之前也小结过这个问题,当时使用了函数重载的技巧。 修改前面的设计: 这样,软件可以正常编译通过。...

2020-09-15 20:48:39 52

原创 385_使用Arduino学习C++-函数的默认参数

全部的学习汇总:https://github.com/GreyZhang/Arduino_Cpp 看一个函数参数默认值的处理,设计如下测试代码: 软件可以正常编译通过,运行的结果如下: 从上面的结果看得出,这样的函数其实可以接收变化数目的参数,参数具有缺省的效果。这种行为类似python中的效果了。如果给了明确的参数,则会按照传递的参数进行初始化。如果传递参数少,看结果应该是按顺序传入,后面的采用默认。...

2020-09-15 20:22:37 54

原创 384_使用Arduino学习C++-类以及public参数

全部的学习汇总:https://github.com/GreyZhang/Arduino_Cpp 在进行关于C++ class的小结之前,再次看一下struct。其实,这个在我找到的上一份教程中大量地使用了。 写一段测试代码如下: 以上是对一个类的定义,使用的struct。执行的测试代码如下: 最终的执行效果: 接下来,做一下修改,struct改成class的一种实现:...

2020-09-15 19:57:10 60

原创 383_实现SD卡文件系统所需要的指令梳理

全部的学习记录汇总: 这一份命令集合不是来自于SD卡的文档,尽管我也找那份文档参考过。我整理的主要依据还是Arduino的库文件实现。 涉及到的命令整理如下:CMD0,在片选拉低的时候让SD卡切换到SPI模式; CMD8,验证SD卡接口工作状态; CMD9,读取CSD寄存器,其中CSDN的缩写为:Card Specific Data; CMD10,读取SD卡的ID信息; CMD13,读取卡的状态信息; CMD17,从SD卡中读取单个bl...

2020-09-14 22:00:59 33

原创 382_使用Arduino学习C++-namespace的用法

全部学习笔记汇总:https://github.com/GreyZhang/Arduino_Cpp 之前选择了一本不算是很合适的学习教程,《像计算机科学家一样思考C++》版本。可能这本书的主要目的还是在于教人一套思考的方法而不是教授C++编程本身。 之所以转过来学习C++,主要是我在看Arduino库文件设计的时候看到了一个namespace就完全蒙圈了,不知其意。 重新换了一份教程,C++之父编写的。开篇不远,找到了nameps...

2020-09-14 20:33:43 68

原创 381_使用Arduino学习C++-构造函数

全部的学习记录汇总:https://github.com/GreyZhang/Arduino_Cpp 前面的方法小结中已经提到了构造函数,但是这个使用似乎还是有更深层次的技巧。搜集了一点资料看了下,简单做一点测试和小结。 使用上一次的测试代码做一下修改,我们先实现一个比较简答的结构体描述。代码如下(部分还会用到的信息,保留成了注释): 接下来,尝试创建两个对象: 测试结果如下: ...

2020-09-13 20:39:27 59

原创 380_使用Arduino学习C++-方法

全部的学习笔记汇总: https://github.com/GreyZhang/Arduino_Cpp 看了一天的资料,感觉终于算是进入到正题了,学习一下C++中的方法。先按照教程的指点,写了一个简单的例子如下: 一个函数是一个普通函数还是一个方法,很关键的一点在于它声明的位置。如果是一个方法,那么它的声明位置应该在一个结构体中。而这个方法的实现,需要增加一个结构体名称::的修饰。 在方法实现的时候,第11行代码中用到了一个t...

2020-09-13 18:34:08 105

原创 379_使用Arduino学习C++-值传递以及引用

全部的学习汇总:https://github.com/GreyZhang/Arduino_Cpp 接下来总结一下值传递以及引用,其实这里涉及到的概念主要是函数参数的处理。对应的操作分别是C语言中的普通数据类型传入参数和指针类的传入参数。 设计两个测试函数如下: 对于两个函数的测试如下: 测试结果如下: 这两个函数中,第二种加了&的方式就叫做引用。从效果看,有C语言中指针的...

2020-09-13 16:14:24 122

原创 378_使用Arduino学习C++-结构体

全部的学习汇总:https://github.com/GreyZhang/Arduino_Cpp 总体看来,C++中的结构体跟C语言中的结构体效果差不多。根据我看的教程中的例子,结合我以前的经验把与我C语言编程体验不同的地方梳理一下。 测试代码如下: 直接在一个函数体内定义结构体,这还是我第一次尝试,但是在C++的环境下似乎就是这么灵活。 程序运行效果: 几点需要注意的的知识点...

2020-09-13 15:39:31 147

原创 377_使用Arduino学习C++-字符串

全部的学习笔记汇总:https://github.com/GreyZhang/Arduino_Cpp 接下来,小结一下字符串的简单使用。我先按照教程中尝试了spstring,结果没成功。正好在前面的SD卡例子分析中看到了Arduino中字符串的操作,直接按照Arduino的思路尝试一下几个测试。 测试代码如下: 上面的代码中测试了字符串的定义以及初始化,通过字符串的可变赋值可以看出这里有一个空间动态分配的动作。操作字符串的时候,经...

2020-09-13 14:51:08 74

原创 376_使用Arduino学习C++-函数重载

全部的学习总结在此:https://github.com/GreyZhang/Arduino_Cpp关于函数重载,通过教程的信息我觉得似乎就是一个关键点:函数重载在C++中是允许的,只要保证参数不同。这里没有要求返回值不同,其实是可以理解的。因为程序可以运行带有返回值的函数,然后放弃返回结果。如果是这样的话,肯定会有语义上的差异。或许,这样编译器就不好识别究竟该使用什么参数了。按照这个描述,写测试代码如下:运行结果如下:尽管存在只声明了一个函数这...

2020-09-13 12:02:07 52

原创 375_使用Arduino学习C++-函数

全部的学习记录汇总:https://github.com/GreyZhang/Arduino_Cpp 小结调试一下简单的函数概念,这里有一些小细节之前注意到了,这里正好总结一下。尤其是跟我现在的C规范不是很一致的地方。 上面的代码是跟前面的例子大致相同的,只是多了一个函数化。这里,与我先前习惯或者经验不同的地方在与当函数不需要参数的时候,C规范中一般会加上一个void。而我最近接触到的Arduino的C++代码中这个似乎都是没有的。然而,我测试了...

2020-09-13 11:27:22 42

原创 374_使用Arduino学习C++-数据计算

全部的学习记录汇总:https://github.com/GreyZhang/Arduino_Cpp 按照C++的教程看,C++可以提供大量的数学运算的功能。几乎包括你能够想到的一切数学计算。我想这部分应该不会是语言本身的行为,可能是依赖于一些库的功能吧?偏巧教程上也没这方面的完整代码,而我使用Arduino测试的时候一切默认PASS。 测试了几个简单的数学运算如下: 运行结果: 运算十分顺利,看上去结...

2020-09-13 10:25:22 29

原创 373_使用Arduino学习C++-安静的转换

全部的学习记录汇总:https://github.com/GreyZhang/Arduino_Cpp 这个标题来自于《C专家编程》,我印象中那本书中有这么一个章节用来介绍数据类型的转换。这里,通过几个例子来看看C++中的注意点。我参考的教程是《像计算机学家一样思考C++版本》。在语言本身的细节上不一定会很细致,这是第一本,后面还可以继续“刷题”。 写测试代码如下: 运行结果: 先额外说一点昨天忘记记录的...

2020-09-13 09:43:39 67

原创 372_使用Arduino学习C++-数据类型与转换处理

全部的学习记录汇总:https://github.com/GreyZhang/Arduino_Cpp看到了教程中关于数据类型的处理以及转换行为的描述,感觉这部分跟C语言还是有不同之处。在此做一个整理小结。 C语言的行为在此不做陈述,毕竟我写的只是学习笔记而不是教程。 关于C++,写一份测试代码如下: 执行结果如下: 这里有两点需要注意:同一个函数可以有不同的行为,这个我大概了解过可能是重载功能;...

2020-09-12 22:43:01 60

空空如也

grey_csdn的留言板

发表于 2020-01-02 最后回复 2020-05-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除