爱大客 - 2017年7月
type: channel
link: https://www.idarc.cn/index.php/2017/07/
description: Every piece of all creatures in this freezing world, are racing for freedom.
items: utf8格式的文本文档
items: ESPTOOL
items: 将数组展开的赋值法
items: linux若干方法
items: linux find用法
items: Lua的for循环略显奇葩
items: TCP UDP调试的好工具 TCP/IP builder
items: arduino在中断回调中执行的程序, 确实是无法使用delay的
items: Arduino 串口发送注意

utf8格式的文本文档
type: item
date: 2017-07-31T15:03:11+08:00
description: utf8格式的文本文档以0xEFBBBF开头, 后面才是正式文本, 千万别搞错了.

ESPTOOL
type: item
date: 2017-07-31T12:01:00+08:00
description: 官方文档 乐鑫官方的ESPtool是python版本的, 也就是esptool.py, 不过发现arduino上面ESP兼容版用的ESPtool是一个exe版本,找了一下,发现是github上的esptool-ck 这儿放几个用法: 从app.elf转app_00000.bin, app_40000.bin.4M flash空间. esptool -bz 4M -eo app.elf -bo app_00000.bin -bs .text -bs .data -bs .rodata -bc -ec -eo app.elf -es .irom0.text app_40000.bin -ec 上传固件到COM5, 波特率115200, 手动重启方式上传. esptool -cp COM5 -cd none -cb 115200 -ca 0x00000 -cf 00000.bin -ca 0x40000 -cf 40000.bin 也可以这样 esptool -cp COM5 -cf 00000.bin -ca 0x40000 -cf 40000.bin 清空NodeMCU的Flash esptool -cp /dev/ttyUSB0 -cd nodemcu -ce 上传固件到espduino/nodemcu,带比较详细一点儿的输出 esptool.exe -vv -cd nodemcu -cb 921600 -cp COM13 -ca 0x00000 -cf ./nh_fixed.bin

将数组展开的赋值法
type: item
date: 2017-07-29T18:16:45+08:00
description: 通常要将一个数组复制,或者与另一些值连接在一起,会使用concata = [1,2,3] b = a.concat() //1,2,3 c = a.concat(4,5,6) //1,2,3,4,5,6 现在有更优雅的方式: 三个点展开数组d = [...a, 7,8,9] //1,2,3,7,8,9 在数组内使用...可以展开另一个数组, 就好像是吧这个数组的方括号[]给去掉了一样另外, function的成员 arguments不是真正的数组, 它没有Push/pop这些方法,但有...方法. 要转换为真正的数组,可以的方法有:arr1 = [...arguments] arr2 = Array.from(arguments)

linux若干方法
type: item
date: 2017-07-26T09:10:33+08:00
description: linux修改root密码 哦,这儿说的是比较常规的方式. 改自己密码当然是passwd 然后输入旧密码, 新密码x2. 如果你有sudo权限,可以试着这样修改root密码:sudo passwd root 然后输入自己的密码, root的新密码x2 删除非空目录 这时候rmdir无论如何都是用不了的, 使用rm -rf 目录名

linux find用法
type: item
date: 2017-07-19T14:59:17+08:00
description: 虽然我习惯用mlocate,不过这个命令太高级不通用,有的linux上没装,有的linux上没有(openwrt) 所以还是用find吧find / -name ps find / -iname *ps 这个意思是在根目录/及其子目录下查找ps命令,额,大多数情况这样就够了 后面一条命令的意思是忽略大小写, 查找以ps结尾的文件名.

Lua的for循环略显奇葩
type: item
date: 2017-07-17T18:52:10+08:00
description: 递增循环， 是start, end, step...好吧， 基本还是跟C一样，C是start, condition, cmd 枚举循环，有个ipairs/pairs是什么鬼？for i = 0,10,1 do -- something cmd end a = {'a','b','c'} o = {x=1,y=2} for k,v in ipairs(a) do -- some code end for k,v in pairs(a) do --some code end 原来是不同的迭代器：迭代文件每行的(io.lines)，迭代table元素的(pairs)，迭代数组元素的(ipairs)，迭代字符串中单词的 (string.gmatch)等等 ipairs和pairs什么区别？ipairs从1开始遍历，每次递增1，也就是1/2/3/4...，遇到没有了就停止遍历。pairs遍历所有的key。

TCP UDP调试的好工具 TCP/IP builder
type: item
date: 2017-07-10T14:40:54+08:00
description: 简单好用又开源! 下载地址

arduino在中断回调中执行的程序, 确实是无法使用delay的
type: item
date: 2017-07-10T11:49:30+08:00
description: arduino在中断回调中执行的程序, 确实是无法使用delay的, delay似乎就失效了. 所以中断还是应该尽快返回, 在主程序逻辑中执行. 较长的逻辑可以通过设置标志位, 在主程序中进行检测并执行, 执行完后清除标志位即可. 如果是设置标志位的方式, 在主程序运行中, 新的中断当然会不断地重设标志位, 然而在主程序运行后将清除标志位 , 因此不会重复执行任务. 如果无论主程序是否在执行 ,每次中断任务都需要被完整执行的话, 则可以用计数器替代标志位, 中断时计数器+1, 执行一次再-1, 直到计数器为0时停止执行.

Arduino 串口发送注意
type: item
date: 2017-07-04T14:23:45+08:00
description: Arduino串口发送注意, 在发送结束后要调用flush, 尤其是在休眠以前, 否则可能发不完哦!