MT7628学习笔记——串口使用测试及编译进固件开机自启动
0 ]7 P# w' T/ B+ M! `
& N* j9 ^/ g: ]3 [4 l- A7 N
3 y, @) H3 E2 Q, o, Y一、简介
6 |* [/ T j7 {8 Q) _$ D/ i. \$ Y' c. ?* j
- MT7628单网口模式下有3个串口,UART0默认为控制台使用,UART1和UART2用作和其他设备通信 。
- 多网口模式下只有两个串口,UART0默认为控制台使用,UART1用作和其他设备通信。. y& H6 Z- m5 O$ w5 ]& v
: z7 |( b% v3 P4 p& x
串口引脚对应关系表: (详细引脚关系对应图参考:MT7628学习笔记(2)——MT7628/MT7688开发板引脚分布及GPIO介绍) UART_RXD0 | GPIO#13 | UART_TXD0 | GPIO#12 | UART_RXD1 | GPIO#46 | UART_TXD1 | GPIO#45 | UART_RXD2 | GPIO#21 | UART_TXD2 | GPIO#20 |
( X, ^- a6 g9 l( y! S二、测试使用stty工具测试:
. g! X0 ^2 K3 W" y* X, U' z1 e$ U- y# e( ^9 @. U9 m7 T% v
安装软件:(安装后可执行文件在:/usr/bin/stty) - #opkg update- N$ }6 ]7 Y( T) u- b& A2 Y
- #opkg install coreutils-stty
复制代码
( D a1 N: T9 b串口参数设置,串口数据收发测试: 显示串口当前参数- #stty -F /dev/ttyS2#stty -a -F /dev/ttyS2
复制代码
, C! o3 q4 J9 L
6 X4 }, `9 H" l2 j4 t4 t$ Q串口参数配置. k D; |3 t' O5 \' R r8 ~
- #stty -F /dev/ttyS2 raw speed 115200
复制代码
/ e" H3 M( a1 ]. [' y& e2 m6 G9 ]8 p4 _5 z4 e( I U$ |. o
串口2 发送数据
, h5 _ _: B y% I, W1 m9 C- #echo "hello" > /dev/ttyS2
复制代码 * g) r$ I5 U9 Y& i- s0 R
3 ^ }/ v; R* F) f
串口2 接收数据#cat /dev/ttyS2
+ L9 d' |& p* m: t X使用uarttest工具测试:$ r2 N/ P/ z I4 U( o1 O- g& \( ~
$ C7 j- z0 U$ h: H串口参数配置(设置完Ctrl + C 退出)* [& r/ b9 p0 B- ?3 d! k1 U3 G
- #uarttest /dev/ttyS2 115200 8 0 1 0
复制代码
+ B$ [7 ^& m3 x H; ]2 D* S, K
4 a' U* D1 R1 k. P串口2 发送数据$ a5 {8 N2 ?# R0 |0 h
- #echo "hello" > /dev/ttyS2
复制代码 ' v0 U! W2 F, e! X$ K4 q
, e+ }0 Y6 z1 D( {# ?6 l串口2 接收数据2 E+ B3 ^$ I* d' `) c; o# o
1 M" Z f9 i' p: h3 k2 B! s- @- ^! P7 ?
三、将stty工具编译进固件
/ E6 x5 G8 Q; ?' [: o4 r/ L/ q$ F5 Q( _( l
1、make menuconfig 进入配置图形界面 2、“/”查找 stty 软件包的位置 3、如图:
" e4 o# T& ~- P. ?4 d" p4、根据提示选中软件包 Utilities ---> <*>coreutils ---> <*>coreutils-stty& g4 K3 s" P6 Z A3 u; {% B
7 i( T- r$ H2 X3 {* y+ R四、将设置加入开机自启动+ I8 X+ U* [# C+ Z- d- w/ w4 Z
4 ~! a/ \% S V- n以上配置在开机后会重置,所以要把相关设置加入开机启动中。 2 l) L) C4 m2 b) k3 N6 x% D
1、当前固件临时添加: cd /etc/init.dtouch usart2chmod 777 usart2
$ O# m0 v P) v8 @; {+ b2、永久性添加 " i9 ]) _2 m+ l( R
在openwrt源码根目录下建一个files文件夹(openwrt/files),再新建openwrt/files/etc/init.d文件夹,新建 usart2 文件,然后给权限。 chmod 777 files/ -Rusart2 内容: - #!/bin/sh /etc/rc.common# ~2 X& A6 X7 m0 F' v& }
- #/etc/init.d/usart2# `" Z- |$ }% N+ h
1 j ~# M2 q. y. W- START=80& ~, C& M1 t/ H3 @$ h
- 6 M, r# W" a# s
- start() {
+ m: {8 u: ~- E& f - /usr/bin/stty -F /dev/ttyS2 raw speed 115200}% m" w% u: G! S0 c* G. \
- , r4 ^' c$ a; Y2 u: y0 j
- stop(){
+ z& R t' S; q1 }. N7 ` - killall usart2
9 P/ h4 F2 u6 P, P9 @' d+ y - }
复制代码
: J, U( J C Y7 v" Z9 q- S6 R4 W# ^# j3 c4 x- M% D* o
: U0 c* G8 D5 U0 { |