2022年7月

  • Arduino的开发板是拿来搞开发的,不是拿来搭建应用系统的,nano这样小体积的板子除外。批量应用用ATMEGA328P或ATMEGA2560单片机最小系统搭建即可。

    • 网上找的电路图注意看是对应哪种封装的,DIP封装和TQFP封装的管脚定义不同。PU是DIP封装,AU是TQFP封装。
    • 用ICSP接口灌装bootloader,之后用UART0灌装程序。UART0接口要附带reset,否则无法成功烧录。
    • 如果自制的板子不工作,在电路本身无错误的情况下,大概率是ATMEL芯片引脚出现虚焊、短连等焊接质量问题。
    • 不能盲信嘉立创的自动布线,布线完成后一定要仔细核查DRC,可能出现短连等非正常情况。
    • 绝对不要把系统的复位电路和其他模块的复位电路直接并联,如果电平或复位逻辑不一致会导致复位管脚电平处于浮动状态,会导致一系列匪夷所思的故障。
    • D0口要做外部上拉。会大幅提升供电可靠性。
  • Arduino的内存没那么容易用完。如果编译时提示动态内存太低,肯定是哪个地方没弄对。

    • 用自定义函数,函数内使用局部变量,减少全局变量使用。
    • Serial.print语句用到的固定字符串用F()包起来,这样固定字符串就只占用程序空间而不会占用内存空间。
  • 串口读取数据语法升级。按照一般的Arduino教材(包括中文互联网中)说明,串口读取只能采用read()方法,一次读取一个字节,如果需要读取字符串需要人工构建算法,但实际上现在Arduino已有readString()方法,可直接读取串口接收到的字符串,无需人工构建算法。用英文在google中搜索可以找到相应信息。
  • 有关Arduino扩充串口缓冲区的设置。当一次接收串口数据数百个字节时,因Arduino串口默认发送、接收缓冲区各只有64字节,如接收到的字节数超出64字节,其后的将会被舍弃。因此,必须在Arduino的HardwareSerial.h中设置发送、接收缓冲区尺寸,将字节数扩充到450字节。需要注意的是,必须修改以下目录中的HardwareSerial.h才有效!C:\user\xxxx\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.23\cores\arduino\HardwareSerial.h
    (其中XXXX为所安装机器的用户名) 修改方法:在HardwareSerial.h中开头增加两个宏定义:

    #define SERIAL_RX_BUFFER_SIZE 450
    #define SERIAL_TX_BUFFER_SIZE 450
    两个缓冲区尺寸必须一样,否则无法通过编译。 Arduino IDE如果升级了,一定要再次进入该目录进行修改,否则串口响应会出现问题。
    *《ARDUINO技术内幕》是本好书,深度开发必看。

本记录持续更新中。

        《碧海蓝天》不是一部人人喜欢的电影。The Big Blue,如果它契合了你的心境,你会理解它,会因它而感动,会因它沉默不语,但不会因它而消沉。你会知道这个世界上有人和你一样,你并不孤独。
        人很难被理解,但如果一个人说他喜欢《碧海蓝天》,你可以瞬间了解他。

_P1M0022_小.jpg

_P1M0034_小.jpg

_P1M0040_小.jpg

_P1M0042_小.jpg

_P1M0046_小.jpg

_P1M0053_小.jpg

_P1M0064_小.jpg

_P1M0070_小.jpg

_P1M0071_小.jpg

        这个季节的轿子雪山没有雪,有的只是从山谷蔓延至山巅的水汽,高山草甸中肆意流淌的小溪,漫山遍野抽出新芽的杜鹃花,树干上石头上绿得不真实的青苔,以及那条连绵不绝穿行在林间延伸到山巅的木头栈道。游人很少,青年人很多,呼朋唤友的笑闹声传出很远。海拔四千二的空气,凛冽而清新,连起飞无人机都会提醒你空气稀薄,但是我喜欢。
        我喜欢登高,喜欢任何一个季节,哪怕站在山巅,被满天的云雾遮住远方,看不到天边的群山,看不到脚下的森林与草原。你知道它们就在远方,你知道你就在云里。

_P1M0283_小.jpg

_P1M0285_小.jpg

_P1M0292_小.jpg

DJI_0330_小.jpg

DJI_0341_小.jpg

DJI_0347_小.jpg

DJI_0357_小.jpg

DJI_0358_小.jpg

DJI_0360_小.jpg

DJI_0363_小.jpg

DJI_0367_小.jpg

DJI_0371_小.jpg

_P1M0270_小.jpg

_P1M0277_小.jpg