收集的常用模块开发板引脚图
[ESP32]HardwareSerial库使用
简介
HardwareSerial 库是c++编写的,应用于esp32 Arduino应用环境的串口驱动库,我们在安装好ESP32的Arduino开发环境后就已经集成了这个串口操作库,在实际应用时直接引用就可以了。
注意:ESP32共有3个UART端口, 其中UART1用于Flash读/写,我们使用串口1时需要注意,需要将串口1映射到其他GPIO上即可,我测试了一下GPIO12、GPIO13,使用串口1时可以完美运行
串口名 | Arduino名 | TX | RX |
---|---|---|---|
UART0 | Serial | pin1 | pin3 |
UART1 | Serial1 | pin10 | pin9 |
UART2 | Serial2 | pin17 | pin16 |
效果演示
demo程序,将串口0接收到的数据传个串口1,再将串口1接受到的数据传输得串口0
[OpenWrt]源码编译修改默认IP地址和网关DNS地址
Python 创建TCP服务器的方法
问题
你想实现一个服务器,通过TCP协议和客户端通信。
解决方案
创建一个TCP服务器的一个简单方法是使用 socketserver 库。例如,下面是一个简单的应答服务器:
1 | from socketserver import BaseRequestHandler, TCPServer |
在这段代码中,你定义了一个特殊的处理类,实现了一个 handle() 方法,用来为客户端连接服务。 request 属性是客户端socket,client_address 有客户端地址。 为了测试这个服务器,运行它并打开另外一个Python进程连接这个服务器:
[OpenWrt]vmware中openwrt设置网络
1) openwrt的虚拟机选择NAT模式,vmware的编辑菜单中的虚拟网络编辑器里查看NAT模式的虚拟网卡的子网地址,假设是192.168.61.0
启动openwrt虚拟机,修改/etc/config/network,把lan网卡的地址设为192.168.61网段的地址
2) 参考ubuntu虚拟机的网关设置,在ubuntu机器上输入route命令,看它的默认网关设置是多少。
3) 在openwrt上添加默认网关
修改/etc/rc.local 在文件里添加命令:1
route add default gw (your ip)
4)设置dns:
编辑/etc/resolv.conf
增加一行1
nameserver 8.8.8.8
5) reboot
linux命令之scp命令
C#根据特定字符截取字符串
1、单个字符分隔用split截取1
2
3
4string str = "GT123_1";
string[] strArray = str.Split('_');
//输出:sArray[0]="GT123"
// sArray[1]="1"
2、利用多个字符来分隔字符串1
2
3
4
5
6string str = "GTAZB_JiangjBen_123";
string[] strArray = str.Split(new char[2] { 'j', '_' });
//输出:sArray[0]="GTAZB"
// sArray[1]="Jiang"
// sArray[2]="Ben"
// sArray[3]="123"
3、根据字符串或字符串组来截取字符串1
2
3
4
5string str = "GTAZB_JiangjBen_123";
string[] strArray = str.Split(new string[] { "Ji", "jB" }, StringSplitOptions.RemoveEmptyEntries);
//输出:sArray[0]="GTAZB_"
// sArray[1]="ang"
// sArray[2]="en_123"。
[OpenWrt]手动安装ipk时遇到的问题
[OpenWrt]MT7628-MT7688修改串口2作为调试串口
MTK的芯片设计有些让人搞不懂,非得将串口作为启动选择引脚;
MT76x8 参考其datesheet,TXD0 启动时必须为低电平,TXD1启动时必须保持高电平;
一共最多3个串口,唯独UART2不影响启动;但是UART2与 NET PORT2是复用的;使用uart2必须牺牲1个网口;
准确来说是牺牲所有网口(PORT0除外),因此MT76x8 要么作为单网口使用要么作为5网口使用,没有中间模式;这一点也比较蛋疼;
但这不是我们今天要关心的;今天只谈uart2作为启动串口;
[OpenWrt]各种默认配置文件所在目录
openwrt版本为15.05.1,以mt7620为例,其他类似。
1.wifi的默认开启方式、ssid、加密方式等配置
1 | `package``/kernel/mac80211/files/lib/wifi/mac80211``.sh` |
2.硬件资源的配置(usb、gpio、flash等),即dts
1 | `target``/linux/ramips/dts/``下文件` |
3.镜像生成方式控制
1 | `target``/linux/ramips/image/Makefile` |