这个系列真的很好。i2c看起来很简单但其实好多坑。
第一罪,从机ack拉低sda,主机未完成i2c流程就软复位,导致无法使用i2c。解决:主机scl发9个时钟。
第二罪芯片需要POR电路来进行复位,如果因为别的原因(风扇12v电压通过pwm控制脚倒灌进主控ic,进而倒灌进3.3v的vcc)提前上电,导致POR工作不正常,那么就会有问题。
第三罪scl上升沿上升太慢导致高电平无法检测。太慢源于板子总下拉电容大,可以通过改scl上拉电阻阻值提高上升速度。
第四罪i2c的3.3v转5v设计
第五罪
第六罪
第七罪

坑1

用PIN模拟做时序是万万不能的, 在w601上执行一个pin的0/1转换就需要50us, 做一个utime.sleep_us(1)也需要50us,在us级的时序是无法做的,差不多要到ms级的时序才有可能. 这在很多芯片需要自定义时序的时候就没法子了.
网上说可以打包C库供MicroPython调用.

mpip.install()

支持mpip.install进行额外的库安装,不过就是不知道在哪儿搜索可用的库.

MicroPython语言参考

坑1

除了按官方指导外, 似乎mpy-cross目录下需要单独make一次, 否则会报错找不到mpy-cross.
参考: http://bbs.eeworld.com.cn/thread-579242-1-1.html

坑2

必须使用说明书中推荐的arm-none-eabi-gcc 4.9版本, 而不要用最新的版本(目前是10.x版了).用新版本编译出来的固件会增大不少,导致1M flash里面放不下.
如果已经用高版本arm-none-eabi-gcc编译过, 需要make clean一次后再次make

含电池设备与插电设备区别:

  1. 含电池设备可能处于长期通电状态而不便于断电, 插电设备可以随时断电;
  2. 含电池设备供电电压在一个区间变化, 插电设备供电电压稳定;

设计思考:

  1. 设备长期运行导致的不稳定和bug, 插电设备可以轻易通过断电重启来解决, 而含电池设备必须设计reset接口;
  2. 插电设备可以支持断电升级, 而含电池设备不能支持断电升级, 所以一定要支持有线有电升级;
  3. 含电池设备不同IC输入电压不同, 可能导致有的能工作有的不能正常工作;
  4. 含电池设备在运行时,且超声过程中, 可能被超声震坏, 应休眠后超声.

现在的在线表单一般只解决了一个数据格式化提交和汇总到表格的问题。
OA和流程只解决了一个审批问题。
没有解决的又需要解决的重要问题是什么呢?
1.表格和在线文档解决了整体文档协作问题,又没有解决限制部分内容的协作问题。
2.另外没有解决的就是一个查询问题。
3.另一个解决就是汇总问题,类似于数据透视表。

crontab -e来编辑定时任务
命令格式为min hour day month weekday cmd
min/hout/month/weekday的取值是:

* 取值范围内的所有数字
/ 每过多少个数字
- 从X到Z
,散列数字