2919 lines
62 KiB
Plaintext
2919 lines
62 KiB
Plaintext
STM32 IMX6ULL
|
||
|
||
|
||
|
||
|
||
|
||
STM32 IMX6ULL
|
||
-
|
||
|
||
|
||
|
||
19-1 201908010117
|
||
|
||
|
||
|
||
2022.07.01
|
||
|
||
1
|
||
STM32 IMX6ULL
|
||
|
||
|
||
|
||
%
|
||
|
||
/ %
|
||
|
||
1/
|
||
|
||
/ / 30 / 30
|
||
|
||
2// / / 10 20 30
|
||
|
||
3/ / 10 / 10 20
|
||
4/ 11.1
|
||
5/ 11.2 / / 10 / 10
|
||
|
||
10 / / / 10
|
||
|
||
10 10 50 30 100
|
||
|
||
|
||
|
||
%
|
||
%
|
||
/
|
||
|
||
1/
|
||
2//
|
||
3/ / / /
|
||
4/ 11.1
|
||
5/ 11.2 / /
|
||
|
||
/ /
|
||
|
||
/ / /
|
||
|
||
/ / /
|
||
|
||
|
||
|
||
|
||
|
||
2
|
||
STM32 IMX6ULL
|
||
|
||
STM32 IMX6ULL
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
STM32F407 IMX6ULL
|
||
|
||
IMX6ULL WIFI QT
|
||
|
||
|
||
STM32WIFIIMX6ULL
|
||
|
||
3
|
||
STM32 IMX6ULL
|
||
|
||
SMART HOME SYSTEM BASED ON STM32 AND IMX6ULL
|
||
|
||
ABSTRACT
|
||
|
||
With the advent of the era of knowledge economy and network economy, intelligent housing
|
||
has become the fundamental guarantee for a new way of life in the new century. Today, with the
|
||
rapid development of social informatization, people's attention to housing is no longer limited to
|
||
the living area, surrounding environment, transportation and other aspects, but more attention is
|
||
paid to information services and housing safety. Therefore, smart home came into being, Smart
|
||
home system is one of the hot words in recent years. The implementation of smart home system
|
||
can greatly facilitate people's daily home life and ensure home safety. Under the background of
|
||
current smart home development upsurge, this system has designed a set of home system based
|
||
on stm32f407 development platform and imx6ull development platform, which can control the
|
||
opening and closing of curtains and small lights, detect room temperature and humidity and
|
||
smoke alarm functions through ultrasonic induction of human distance. At the same time, the user
|
||
can also control the home through the WiFi module through the imx6ull terminal, and query the
|
||
temperature and humidity in the room through the QT interface.
|
||
|
||
Key words: Smart home; STM32; WIFIIMX6ULLHuman body sensing module; Smoke
|
||
|
||
alarm
|
||
|
||
4
|
||
STM32 IMX6ULL
|
||
|
||
|
||
|
||
...................................................................................................................................... 5
|
||
1. ....................................................................................................................................... 7
|
||
|
||
1.1 .................................................................................................................. 7
|
||
1.1.1 ............................................................................................ 7
|
||
1.1.2 ............................................................................................ 8
|
||
|
||
1.2 ...................................................................................................... 9
|
||
1.2.1 ..................................................................................................... 9
|
||
1.2.2 ..................................................................................................... 9
|
||
|
||
1.3 ......................................................................................................11
|
||
2. ....................................................................................................................... 12
|
||
|
||
2.1 ................................................................................................................ 12
|
||
2.2 .................................................................................................... 13
|
||
|
||
2.2.1 STM32F407 ................................................................................. 13
|
||
2.2.2 IMX6ULL ............................................................................ 14
|
||
2.2.3 42 .......................................................................................... 14
|
||
2.2.4 HC-SRO4 ................................................................. 16
|
||
2.2.5 MQ2 ............................................................................. 17
|
||
2.2.6 ESP8266 RTL8189WIFI ..................................................... 18
|
||
2.2.7 DHT11 .................................................................................. 19
|
||
2.2.8 QT ................................................................................................. 20
|
||
2.3 ...................................................................................................... 21
|
||
3. ................................................................................................................... 22
|
||
3.1 ............................................................................................ 22
|
||
3.2 ..................................................................................................... 24
|
||
4. ..................................................................................................................... 25
|
||
4.1 ................................................................................................ 25
|
||
|
||
5
|
||
STM32 IMX6ULL
|
||
|
||
4.1.1 .................................................................................. 25
|
||
4.1.2 ...................................................................................... 27
|
||
4.1.3 .............................................................................................. 29
|
||
4.2 HC-SR04 ............................................................................................. 33
|
||
4.2.1 HC-SR04 .................................................................. 33
|
||
4.2.2 .......................................................................................... 34
|
||
4.3 MQ2 ................................................................................................ 37
|
||
4.3.1 MQ2 ............................................................................. 37
|
||
4.3.2 MQ2 ............................................................................................. 38
|
||
4.4 DHT11 ......................................................................................... 39
|
||
4.4.1 DHT11 .................................................................. 39
|
||
4.4.2 DHT11 .................................................................................. 40
|
||
4.5 QT .................................................................................................................... 42
|
||
4.5.1 ...................................................................................................... 42
|
||
4.5.2 socket .................................................................................................... 42
|
||
4.5.3 .............................................................................................. 43
|
||
4.5.4 Socet ......................................................................... 45
|
||
4.6 WIFI IMX6ULL......................................................................................... 46
|
||
5 .......................................................................................................................... 48
|
||
6. ............................................................................................................... 53
|
||
................................................................................................................................ 55
|
||
........................................................................................................................................ 56
|
||
A ..................................................................................................... 56
|
||
B ..................................................................................................... 60
|
||
|
||
6
|
||
STM32 IMX6ULL
|
||
|
||
1.
|
||
|
||
1.1
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
"+"
|
||
|
||
|
||
|
||
|
||
|
||
1.1.1
|
||
|
||
|
||
|
||
|
||
1984
|
||
20 80
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
7
|
||
STM32 IMX6ULL
|
||
|
||
1.1.2
|
||
1995
|
||
7000
|
||
0.3%
|
||
2016
|
||
97 30
|
||
9912 5.3%
|
||
2020 17.23%
|
||
|
||
4 1994--1999
|
||
2000--2005
|
||
|
||
2006--2010
|
||
|
||
|
||
2014
|
||
|
||
U-HOME
|
||
|
||
|
||
8
|
||
STM32 IMX6ULL
|
||
|
||
1.2
|
||
|
||
1.2.1
|
||
|
||
,
|
||
,
|
||
|
||
|
||
|
||
|
||
|
||
|
||
STM32 IMX6ULL
|
||
|
||
|
||
|
||
|
||
|
||
|
||
1.2.2
|
||
|
||
""
|
||
|
||
|
||
QT
|
||
,
|
||
,"":
|
||
,,
|
||
,,"",
|
||
|
||
9
|
||
STM32 IMX6ULL
|
||
|
||
""
|
||
1500ppm
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
10
|
||
STM32 IMX6ULL
|
||
|
||
1.3
|
||
|
||
STM32F407 IMX6ULL HCSR04
|
||
STM32F407
|
||
<50cm
|
||
PWM 42
|
||
LED
|
||
LED
|
||
DHT11 MQ2
|
||
MQ-2 ,
|
||
,
|
||
STM32F407
|
||
WIFI STM32 ESP8266,IMX6ULL
|
||
RTL8189 IMX6ULL QT
|
||
QT
|
||
|
||
11
|
||
STM32 IMX6ULL
|
||
|
||
2.
|
||
|
||
2.1
|
||
|
||
" STM32F407 IMX6ULL "
|
||
|
||
|
||
STM32F407 IMX6ULL
|
||
HCSR04 MQ2 ESP8266WIFI
|
||
|
||
|
||
|
||
|
||
|
||
|
||
1 STM32F407 PWM 42
|
||
2 HCSR04
|
||
|
||
3 MQ2 1500ppm
|
||
|
||
4 ESP8266 RTL8189 WIFI STM32F407 IMX6ULL
|
||
|
||
5 QT IMX6ULL
|
||
LED
|
||
6 DHT11
|
||
|
||
12
|
||
STM32 IMX6ULL
|
||
|
||
2.2
|
||
|
||
2.2.1 STM32F407
|
||
|
||
ALIENTEK STM32F4 STM32F407
|
||
STM32F407
|
||
121mm*160mm
|
||
ALIENTEK STM32
|
||
5
|
||
V2.2
|
||
|
||
ALIENTEK STM32F4
|
||
1
|
||
2
|
||
IO IO
|
||
B0B1 1 USB STM32
|
||
3 1M FLASH STM32F407ZGT6 1M
|
||
SRAM 16M FLASH
|
||
|
||
4
|
||
|
||
|
||
|
||
2.1 STM32F407
|
||
|
||
STM32F407 PWM
|
||
|
||
13
|
||
STM32 IMX6ULL
|
||
|
||
WIFI LCD
|
||
STM32F407
|
||
WIFI WIFI STM32F407
|
||
GPIO 144
|
||
|
||
|
||
2.2.2 IMX6ULL
|
||
imx6ull 2019 10 Linux
|
||
imx6ull EMMC BTB
|
||
6 CPU MCIMX6Y2CVM08AB 800MHz( 792MHz) BGA289
|
||
ddr3L NT5CC256M16EP-EK256MB
|
||
NAND FLASH MCIMX6Y2CVM08AB8GB EMMC
|
||
|
||
|
||
2.2 IMX6ULL
|
||
|
||
Linux QT
|
||
QT IMX6ULL
|
||
|
||
|
||
2.2.3 42
|
||
|
||
42
|
||
|
||
|
||
14
|
||
STM32 IMX6ULL
|
||
|
||
|
||
|
||
,
|
||
42 42
|
||
42mm 0.5NM;57
|
||
57mm 3.0NM
|
||
|
||
2.3 42
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
15
|
||
STM32 IMX6ULL
|
||
|
||
2.4 42
|
||
|
||
|
||
|
||
|
||
|
||
2.2.4 HC-SRO4
|
||
""
|
||
STM32 HC-SR04
|
||
HC-SR04
|
||
2cm-400cm 3mm
|
||
|
||
|
||
2.5 HC-SR04
|
||
|
||
16
|
||
STM32 IMX6ULL
|
||
|
||
|
||
|
||
(1) IO TRIG 10us
|
||
(2) 8 40khz
|
||
(3) IO ECHO
|
||
=(*(340M/S))/2;
|
||
|
||
2-1 HC-SR04
|
||
|
||
HC-SR04
|
||
|
||
DC 5V
|
||
|
||
15mA
|
||
|
||
40kHz
|
||
|
||
4m
|
||
|
||
2cm
|
||
|
||
15
|
||
|
||
10uS TTL
|
||
|
||
TTL
|
||
|
||
45*20*15mm
|
||
|
||
|
||
|
||
|
||
2.2.5 MQ2
|
||
|
||
MQ2
|
||
MQ2
|
||
|
||
|
||
|
||
17
|
||
STM32 IMX6ULL
|
||
|
||
2.6 MQ2
|
||
|
||
2.2.6 ESP8266 RTL8189WIFI
|
||
|
||
STM32
|
||
IMX6ULL QT
|
||
IMX6ULL
|
||
LINUX STM32
|
||
WIFI
|
||
|
||
2.7 ESP8266WIFI
|
||
|
||
18
|
||
STM32 IMX6ULL
|
||
|
||
ESP8266 Wi-Fi
|
||
Wi-Fi WIFI
|
||
|
||
socket
|
||
|
||
IMX6ULL WIFI
|
||
RTL8189WIFI
|
||
WIFI
|
||
WIFI
|
||
|
||
2.8 RTL8189WIFI
|
||
|
||
2.2.7 DHT11
|
||
|
||
DHT11 CJSLDHT11
|
||
|
||
NTC
|
||
8
|
||
CJSLDHT11
|
||
OTP
|
||
|
||
|
||
19
|
||
STM32 IMX6ULL
|
||
|
||
4
|
||
|
||
|
||
2.9 DHT11
|
||
|
||
|
||
|
||
|
||
|
||
|
||
2.2.8 QT
|
||
|
||
QT QT
|
||
|
||
|
||
20
|
||
STM32 IMX6ULL
|
||
|
||
2.10 QT
|
||
|
||
2.11 QT
|
||
|
||
2.3
|
||
|
||
|
||
|
||
|
||
|
||
|
||
21
|
||
STM32 IMX6ULL
|
||
|
||
3.
|
||
|
||
STM32
|
||
|
||
IMX6ULL QT
|
||
QT
|
||
|
||
|
||
3.1
|
||
32 32
|
||
STM32F407
|
||
15cm
|
||
STM32F407 14 PWM
|
||
DIR
|
||
|
||
|
||
3.1 42
|
||
|
||
22
|
||
STM32 IMX6ULL
|
||
|
||
MQ2
|
||
STM32F407
|
||
1500ppm STM32F407
|
||
|
||
|
||
|
||
3.2
|
||
|
||
|
||
WIFI
|
||
STM32F407
|
||
|
||
|
||
|
||
23
|
||
STM32 IMX6ULL
|
||
|
||
3.3 WIFI
|
||
|
||
3.2
|
||
IMX6ULL
|
||
Ubuntu Qt
|
||
Qt
|
||
|
||
Qt
|
||
Qt
|
||
|
||
|
||
3.4 Qt
|
||
|
||
|
||
|
||
IMX6ULL QT
|
||
|
||
24
|
||
STM32 IMX6ULL
|
||
|
||
4.
|
||
|
||
4.1
|
||
|
||
4.1.1
|
||
|
||
PWM
|
||
42
|
||
|
||
|
||
|
||
4.1
|
||
|
||
SB SASCSD B 03
|
||
14 CD 25 DA
|
||
|
||
|
||
SC SBSASD C 14
|
||
14 C 03 AB
|
||
25 AD ABCD
|
||
ABCD
|
||
|
||
|
||
|
||
25
|
||
STM32 IMX6ULL
|
||
|
||
|
||
|
||
|
||
4.2
|
||
|
||
|
||
STM32F407 IO 5V
|
||
|
||
|
||
|
||
|
||
4.3
|
||
|
||
|
||
|
||
|
||
1: NS
|
||
2:
|
||
|
||
26
|
||
STM32 IMX6ULL
|
||
|
||
1.8 200
|
||
3(HOLDING TORQUE):
|
||
|
||
|
||
4DETENT TORQUE) :
|
||
|
||
:
|
||
:( l <20>100%
|
||
|
||
5:
|
||
|
||
|
||
4.1.2
|
||
|
||
|
||
|
||
1
|
||
|
||
4-1
|
||
|
||
PUL+ PUL-
|
||
DIR+ DIR-
|
||
EN+ EN-
|
||
|
||
2
|
||
|
||
4-2
|
||
|
||
A+ A+ A- A-
|
||
B+ B+ B- B-
|
||
|
||
3
|
||
|
||
4-3
|
||
|
||
VCC"+" GND"-"
|
||
|
||
|
||
PUL-DIR-EN-
|
||
|
||
27
|
||
STM32 IMX6ULL
|
||
|
||
PUL+ DIR+
|
||
EN+ R
|
||
|
||
4.4
|
||
|
||
STM32F407 PWM
|
||
|
||
DIR
|
||
|
||
4.5
|
||
|
||
28
|
||
STM32 IMX6ULL
|
||
|
||
4.1.3
|
||
STM32F407 PWM
|
||
CCRX CCRX
|
||
|
||
CCRx
|
||
|
||
|
||
4.6 STM32 PWM
|
||
|
||
PWM
|
||
OCCM[2:0] 0-2 PWM
|
||
|
||
|
||
4.7 STM32 PWM
|
||
|
||
STM32F407
|
||
|
||
29
|
||
STM32 IMX6ULL
|
||
|
||
A7 14 1 PWM PA7
|
||
TIME14
|
||
arr
|
||
|
||
|
||
4.8 IO
|
||
|
||
IO PWM
|
||
PWM 1
|
||
TIM_OC1PreloadConfig TIM14 CCR1
|
||
|
||
4.9 PWM
|
||
|
||
|
||
STM32 84M 84M/84=1Mhz
|
||
1us 2ms
|
||
|
||
30
|
||
STM32 IMX6ULL
|
||
|
||
4.10 ARR
|
||
|
||
DIR
|
||
PE4IO
|
||
|
||
4.11 DIR
|
||
|
||
15cm a<15
|
||
TIM_SetCompare1(TIM14,led1pwmval), CCR TIM14
|
||
PWM
|
||
CCR 0
|
||
flag 1
|
||
|
||
|
||
4.11
|
||
|
||
31
|
||
STM32 IMX6ULL
|
||
|
||
15cm a>15
|
||
TIM_SetCompare1(TIM14,led1pwmval), CCR TIM14
|
||
PWM
|
||
CCR 0
|
||
flag 0
|
||
DIR DIR
|
||
|
||
|
||
4.11
|
||
|
||
STlink STM32F407
|
||
DIR
|
||
|
||
|
||
32
|
||
STM32 IMX6ULL
|
||
|
||
4.12
|
||
|
||
STM32
|
||
|
||
|
||
|
||
4.2 HC-SR04
|
||
|
||
4.2.1 HC-SR04
|
||
HC-SR04 2cm-400cm
|
||
3mm
|
||
IO TRIG 10us 8 40khz
|
||
IO ECHO
|
||
|
||
=( *
|
||
(340M/S))/2
|
||
|
||
33
|
||
STM32 IMX6ULL
|
||
|
||
4.13
|
||
|
||
10uS 8
|
||
40kHz
|
||
|
||
uS/58= uS/148==*340M/S/2
|
||
60ms
|
||
|
||
4.2.2
|
||
4.1.1
|
||
|
||
GPIO
|
||
|
||
|
||
34
|
||
STM32 IMX6ULL
|
||
|
||
4.14
|
||
|
||
IO IO
|
||
IO PB6 PB7 PB6
|
||
PB7
|
||
|
||
|
||
4.15
|
||
|
||
3
|
||
|
||
35
|
||
STM32 IMX6ULL
|
||
|
||
3 1000
|
||
|
||
4.16
|
||
|
||
HC-SR04
|
||
|
||
|
||
|
||
|
||
|
||
4.16 HC-SR04
|
||
|
||
HC-SR04
|
||
TRIG_Send 1 20us
|
||
|
||
36
|
||
STM32 IMX6ULL
|
||
|
||
0 20us
|
||
IO
|
||
GetHCSR04Timer (*(340M/S))/2
|
||
|
||
|
||
|
||
4.17 HC-SR04
|
||
|
||
4.3 MQ2
|
||
|
||
4.3.1 MQ2
|
||
MQ-2 , N
|
||
200~300 ,,,
|
||
,,,
|
||
,,
|
||
|
||
37
|
||
STM32 IMX6ULL
|
||
|
||
,,
|
||
|
||
4.18 MQ2
|
||
|
||
4.3.2 MQ2
|
||
MQ2
|
||
20 20
|
||
|
||
|
||
4.19 MQ2
|
||
|
||
38
|
||
STM32 IMX6ULL
|
||
|
||
Get_Adc
|
||
|
||
|
||
4.20 MQ2
|
||
|
||
|
||
PPM MQ2
|
||
|
||
|
||
4.4 DHT11
|
||
|
||
DHT11
|
||
|
||
|
||
DHT11
|
||
|
||
|
||
4.4.1 DHT11
|
||
1
|
||
CJSLDHT11
|
||
|
||
|
||
5.1k
|
||
|
||
|
||
2
|
||
DATA SDHT11 ,
|
||
40 :8bit +8bit +8bit
|
||
+8bit +8bit 0
|
||
|
||
39
|
||
STM32 IMX6ULL
|
||
|
||
3
|
||
8bit +8bi +8bit +8bit "8bit
|
||
8
|
||
|
||
4-4 DHT11
|
||
|
||
|
||
|
||
(DATA) 200us
|
||
|
||
CJSLDHT11 (),
|
||
|
||
|
||
|
||
CJSLDHT11 (DATA),
|
||
|
||
83<38>s 87<38>s
|
||
|
||
|
||
|
||
CJSLDHT11 (DATA) 40-bit
|
||
|
||
, 1
|
||
|
||
|
||
|
||
1byte +1byte +1byte
|
||
|
||
+1byte +1byte
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
bit7 0 1
|
||
|
||
(+++)
|
||
|
||
8
|
||
|
||
4.4.2 DHT11
|
||
DHT11_Read_Bit() bit
|
||
|
||
DHT11 8
|
||
|
||
|
||
40
|
||
STM32 IMX6ULL
|
||
|
||
4.21 DHT11
|
||
|
||
DHT11 40
|
||
|
||
temp
|
||
humi
|
||
|
||
|
||
4.22 DHT11
|
||
|
||
STM32F407
|
||
|
||
|
||
4.22
|
||
|
||
41
|
||
STM32 IMX6ULL
|
||
|
||
4.5 QT
|
||
|
||
QT QT
|
||
sokcet
|
||
QT soket
|
||
WIFI IMX6ULL QT
|
||
|
||
|
||
4.5.1
|
||
QT
|
||
|
||
|
||
Signal & Slot Qt Qt
|
||
Qt Signal
|
||
PushButton
|
||
clicked() ComboBox
|
||
CurrentIndexChanged() GUI
|
||
|
||
Slot C++
|
||
publicprivate protected
|
||
|
||
|
||
Qt connect
|
||
QObject::connect(sender, SIGNAL(signal()), receiver, SLOT(slot()));
|
||
4.5.2 socket
|
||
Socket
|
||
Socket Socket
|
||
|
||
socket
|
||
|
||
42
|
||
STM32 IMX6ULL
|
||
|
||
TCP/IP HTTP
|
||
Socket TCP/IP
|
||
|
||
IP IP
|
||
|
||
|
||
Socket
|
||
ServerSocket
|
||
0 65536 0 1024
|
||
|
||
|
||
(Socket) IP
|
||
()
|
||
|
||
|
||
4.23 socket
|
||
|
||
4.5.3
|
||
QT LED
|
||
QT Qt
|
||
|
||
|
||
43
|
||
STM32 IMX6ULL
|
||
|
||
4.24
|
||
|
||
slotlighton lighton
|
||
"1" STM32 STM32F407
|
||
LED
|
||
|
||
4.25
|
||
|
||
connect Qt
|
||
|
||
|
||
STM32F407 LED LED
|
||
|
||
|
||
4.26 LED
|
||
|
||
44
|
||
STM32 IMX6ULL
|
||
|
||
4.5.4 Socet
|
||
Qt
|
||
Qt
|
||
Socket
|
||
|
||
|
||
4.27 slotReadyRead
|
||
|
||
STM32F407
|
||
1
|
||
0 2 1 2
|
||
3 4
|
||
LED
|
||
|
||
|
||
Qt
|
||
|
||
45
|
||
STM32 IMX6ULL
|
||
|
||
4.28 Qt
|
||
|
||
4.6 WIFI IMX6ULL
|
||
|
||
WIFI WIFI
|
||
Socket
|
||
IMX6ULL WIFI
|
||
|
||
SDIO WIFI RTL8189, SDIO WIFI TF
|
||
SDIO WIFI TF
|
||
SDIO WIFI TF eMMC Nand Flash
|
||
|
||
|
||
4.29 Qt RTL8189
|
||
|
||
RTL8189 cd /home/root/driver/rtl8189/
|
||
|
||
46
|
||
STM32 IMX6ULL
|
||
|
||
4.30
|
||
|
||
/home/root/ wpa_supplicant.conf
|
||
WIFI WIFI WIFI
|
||
ssid psk
|
||
|
||
4.31 WIFI
|
||
|
||
|
||
" wlan0:CTRL-EVENT-CONNECTED-Connection to ec:88:8f:77:d6:da completed [id=0
|
||
id_str=]""wlan0: WPA: 4-Way Handshake failed
|
||
- pre-shared key may be incorrect"
|
||
|
||
4.32 WIFI
|
||
|
||
IP Socket
|
||
udhcpc -i wlan0
|
||
|
||
4.33 IP
|
||
|
||
47
|
||
STM32 IMX6ULL
|
||
|
||
5
|
||
|
||
|
||
5.1
|
||
LED
|
||
|
||
5.1
|
||
|
||
|
||
HC-SR04
|
||
|
||
|
||
|
||
48
|
||
STM32 IMX6ULL
|
||
|
||
5.2
|
||
|
||
DHT11
|
||
|
||
|
||
|
||
5.3
|
||
|
||
49
|
||
STM32 IMX6ULL
|
||
|
||
|
||
|
||
5.4
|
||
|
||
|
||
|
||
DIR
|
||
5.5
|
||
|
||
50
|
||
STM32 IMX6ULL
|
||
|
||
5.5
|
||
|
||
WIFI
|
||
Qt LED
|
||
Qt
|
||
|
||
|
||
51
|
||
STM32 IMX6ULL
|
||
|
||
5.5 led
|
||
5.5
|
||
|
||
52
|
||
STM32 IMX6ULL
|
||
|
||
6.
|
||
|
||
|
||
|
||
|
||
STM32F407 IMX6ULL
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Qt
|
||
C++Qt
|
||
|
||
|
||
Qt Qt
|
||
Qt
|
||
|
||
|
||
|
||
IMX6ULL LINUX
|
||
|
||
WIFI
|
||
|
||
|
||
|
||
|
||
53
|
||
STM32 IMX6ULL
|
||
|
||
|
||
|
||
|
||
|
||
""
|
||
|
||
QT
|
||
|
||
Qt
|
||
|
||
|
||
|
||
|
||
|
||
""
|
||
|
||
|
||
|
||
54
|
||
STM32 IMX6ULL
|
||
|
||
|
||
|
||
[1] .[J].,2022(05):133-134.
|
||
[2] .[J].,2022(13):32-35.
|
||
[3],. STM32 [J].,2021(24):81-83.
|
||
[4],,. STM32 [J].
|
||
,2019(35):29-30.
|
||
[5] , , . STM32 [J].
|
||
,2017(05):104-107.
|
||
[6]. Qt [J].,2018,27(08):59-62.
|
||
[7] , . [J].
|
||
,2022(05):37-39.
|
||
|
||
55
|
||
STM32 IMX6ULL
|
||
|
||
|
||
|
||
A
|
||
|
||
A1 STM32F407
|
||
|
||
56
|
||
STM32 IMX6ULL
|
||
|
||
A2 IMX6ULL
|
||
|
||
A3 IMX6ULL
|
||
|
||
57
|
||
STM32 IMX6ULL
|
||
|
||
A4 HC-SR04
|
||
A5 MQ2
|
||
|
||
58
|
||
STM32 IMX6ULL
|
||
|
||
A6 DHT11
|
||
|
||
59
|
||
STM32 IMX6ULL
|
||
|
||
B
|
||
|
||
Main.c
|
||
#include "sys.h"
|
||
#include "delay.h"
|
||
#include "usart.h"
|
||
#include "led.h"
|
||
#include "lcd.h"
|
||
#include "key.h"
|
||
#include "usmart.h"
|
||
#include "sram.h"
|
||
#include "malloc.h"
|
||
#include "w25qxx.h"
|
||
#include "sdio_sdcard.h"
|
||
#include "ff.h"
|
||
#include "exfuns.h"
|
||
#include "fontupd.h"
|
||
#include "text.h"
|
||
#include "usmart.h"
|
||
#include "touch.h"
|
||
#include "usart3.h"
|
||
#include "common.h"
|
||
#include "stm32f4xx.h"
|
||
#include "beep.h"
|
||
#include "pwm.h"
|
||
#include "HCSR04.h"
|
||
#include "dht11.h"
|
||
#include "MQ2.h"
|
||
#include "math.h"
|
||
|
||
//ALIENTEK STM32F407 5
|
||
//ATK-RM04 WIFI -
|
||
//www.openedv.com
|
||
//http://eboard.taobao.com
|
||
//
|
||
// @ALIENTEK
|
||
|
||
void Initialization(){ //
|
||
BEEP_Init();
|
||
HCSR04Init();
|
||
DHT11_Init();
|
||
Adc_Init();
|
||
|
||
}
|
||
|
||
60
|
||
STM32 IMX6ULL
|
||
|
||
int main(void)
|
||
|
||
{
|
||
|
||
u8 key,fontok=0;
|
||
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 2
|
||
|
||
delay_init(168); //
|
||
|
||
uart_init(115200); // 115200
|
||
|
||
usart3_init(115200); // 3 115200
|
||
|
||
Initialization();
|
||
|
||
LED_Init(); // LED
|
||
LCD_Init(); //LCD
|
||
KEY_Init(); //
|
||
|
||
W25QXX_Init(); // W25Q128
|
||
tp_dev.init(); //
|
||
|
||
usmart_dev.init(168); // USMART
|
||
|
||
my_mem_init(SRAMIN); //
|
||
|
||
my_mem_init(SRAMCCM); // CCM
|
||
|
||
exfuns_init(); // fatfs
|
||
|
||
f_mount(fs[0],"0:",1); // SD
|
||
|
||
f_mount(fs[1],"1:",1); // FLASH.
|
||
|
||
key=KEY_Scan(0);
|
||
|
||
if(key==KEY0_PRES) //
|
||
|
||
{
|
||
|
||
LCD_Clear(WHITE); //
|
||
|
||
TP_Adjust(); //
|
||
|
||
TP_Save_Adjdata();
|
||
LCD_Clear(WHITE); //
|
||
|
||
}
|
||
fontok=font_init(); // OK
|
||
if(fontok||key==KEY1_PRES)//
|
||
|
||
{
|
||
|
||
LCD_Clear(WHITE); //
|
||
|
||
POINT_COLOR=RED; //
|
||
|
||
LCD_ShowString(60,50,200,16,16,"ALIENTEK STM32");
|
||
|
||
while(SD_Init()) // SD
|
||
|
||
{
|
||
|
||
LCD_ShowString(60,70,200,16,16,"SD Card Failed!");
|
||
|
||
delay_ms(200);
|
||
|
||
LCD_Fill(60,70,200+60,70+16,WHITE);
|
||
|
||
delay_ms(200);
|
||
|
||
}
|
||
|
||
LCD_ShowString(60,70,200,16,16,"SD Card OK");
|
||
|
||
LCD_ShowString(60,90,200,16,16,"Font Updating...");
|
||
|
||
key=update_font(20,110,16,"0:");// SD
|
||
while(key)//
|
||
|
||
61
|
||
STM32 IMX6ULL
|
||
|
||
{
|
||
|
||
LCD_ShowString(60,110,200,16,16,"Font Update Failed!");
|
||
|
||
delay_ms(200);
|
||
|
||
LCD_Fill(20,110,200+20,110+16,WHITE);
|
||
|
||
delay_ms(200);
|
||
|
||
}
|
||
|
||
LCD_ShowString(60,110,200,16,16,"Font Update Success!");
|
||
|
||
delay_ms(1500);
|
||
|
||
LCD_Clear(WHITE);//
|
||
|
||
}
|
||
|
||
atk_8266_test(); // ATK_ESP8266
|
||
|
||
}
|
||
|
||
Common.c:
|
||
|
||
#include "common.h"
|
||
|
||
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
//
|
||
//ALIENTEK STM32
|
||
//ATK-ESP8266 WIFI
|
||
//@ALIENTEK
|
||
//:www.openedv.com
|
||
//:2014/4/3
|
||
//V1.0
|
||
//
|
||
//Copyright(C) 2009-2019
|
||
|
||
//All rights reserved
|
||
|
||
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
||
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
//
|
||
|
||
//:8086,.
|
||
const u8* portnum="8086";
|
||
|
||
//WIFI STA ,,,.
|
||
|
||
const u8* wifista_ssid="REDMIK20"; // SSID
|
||
|
||
const u8* wifista_encryption="wpawpa2_aes"; //wpa/wpa2 aes
|
||
|
||
const u8* wifista_password="12345678"; //
|
||
|
||
//WIFI AP ,,.
|
||
|
||
const u8* wifiap_ssid="ATK-ESP8266"; // SSID
|
||
|
||
const u8* wifiap_encryption="wpawpa2_aes"; //wpa/wpa2 aes
|
||
|
||
const u8* wifiap_password="12345678"; //
|
||
|
||
62
|
||
STM32 IMX6ULL
|
||
|
||
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
//4
|
||
const u8 *ATK_ESP8266_CWMODE_TBL[3]={"STA ","AP ","AP&STA "};
|
||
//ATK-ESP8266,3 ,(ROUTER)
|
||
//4
|
||
const u8 *ATK_ESP8266_WORKMODE_TBL[3]={"TCP ","TCP "," UDP "};
|
||
//ATK-ESP8266,4
|
||
//5
|
||
const u8
|
||
*ATK_ESP8266_ECN_TBL[5]={"OPEN","WEP","WPA_PSK","WPA2_PSK","WPA_WAP2_PSK"};
|
||
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
||
//usmart
|
||
|
||
// AT
|
||
//mode:0, USART3_RX_STA;
|
||
|
||
// 1, USART3_RX_STA;
|
||
|
||
void atk_8266_at_response(u8 mode)
|
||
|
||
{ //
|
||
if(USART3_RX_STA&0X8000)
|
||
|
||
{
|
||
|
||
USART3_RX_BUF[USART3_RX_STA&0X7FFF]=0;//
|
||
printf("%s",USART3_RX_BUF); //
|
||
|
||
if(mode)USART3_RX_STA=0;
|
||
|
||
}
|
||
|
||
}
|
||
//ATK-ESP8266 ,
|
||
//str:
|
||
//:0,
|
||
// ,(str )
|
||
|
||
u8* atk_8266_check_cmd(u8 *str)
|
||
|
||
{
|
||
|
||
char *strx=0;
|
||
|
||
if(USART3_RX_STA&0X8000) //
|
||
|
||
{
|
||
|
||
USART3_RX_BUF[USART3_RX_STA&0X7FFF]=0;//
|
||
|
||
strx=strstr((const char*)USART3_RX_BUF,(const char*)str);
|
||
|
||
}
|
||
|
||
return (u8*)strx;
|
||
|
||
}
|
||
|
||
// ATK-ESP8266
|
||
//cmd:
|
||
|
||
//ack:,,
|
||
//waittime:(:10ms)
|
||
|
||
63
|
||
STM32 IMX6ULL
|
||
|
||
//:0,()
|
||
|
||
// 1,
|
||
|
||
u8 atk_8266_send_cmd(u8 *cmd,u8 *ack,u16 waittime)
|
||
|
||
{
|
||
|
||
u8 res=0;
|
||
|
||
USART3_RX_STA=0;
|
||
|
||
u3_printf("%s\r\n",cmd); //
|
||
|
||
if(ack&&waittime) //
|
||
|
||
{
|
||
|
||
while(--waittime) //
|
||
|
||
{
|
||
|
||
delay_ms(10);
|
||
|
||
if(USART3_RX_STA&0X8000)//
|
||
|
||
{
|
||
|
||
if(atk_8266_check_cmd(ack))
|
||
|
||
{
|
||
|
||
printf("ack:%s\r\n",(u8*)ack);
|
||
|
||
break;//
|
||
|
||
}
|
||
|
||
USART3_RX_STA=0;
|
||
|
||
}
|
||
|
||
}
|
||
|
||
if(waittime==0)res=1;
|
||
|
||
}
|
||
|
||
return res;
|
||
|
||
}
|
||
|
||
// ATK-ESP8266
|
||
|
||
//data:()
|
||
|
||
//ack:,,
|
||
|
||
//waittime:(:10ms)
|
||
|
||
//:0,()luojian
|
||
|
||
u8 atk_8266_send_data(u8 *data,u8 *ack,u16 waittime)
|
||
|
||
{
|
||
|
||
u8 res=0;
|
||
|
||
USART3_RX_STA=0;
|
||
|
||
u3_printf("%s",data); //
|
||
|
||
if(ack&&waittime) //
|
||
|
||
{
|
||
|
||
while(--waittime) //
|
||
|
||
{
|
||
|
||
delay_ms(10);
|
||
|
||
if(USART3_RX_STA&0X8000)//
|
||
|
||
{
|
||
|
||
if(atk_8266_check_cmd(ack))break;//
|
||
|
||
64
|
||
STM32 IMX6ULL
|
||
|
||
USART3_RX_STA=0;
|
||
|
||
}
|
||
|
||
}
|
||
|
||
if(waittime==0)res=1;
|
||
|
||
}
|
||
|
||
return res;
|
||
|
||
}
|
||
|
||
//ATK-ESP8266
|
||
|
||
//:0,;
|
||
|
||
// 1,
|
||
|
||
u8 atk_8266_quit_trans(void)
|
||
|
||
{
|
||
|
||
while((USART3->SR&0X40)==0); //
|
||
|
||
USART3->DR='+';
|
||
|
||
delay_ms(15); //(10ms)
|
||
|
||
while((USART3->SR&0X40)==0); //
|
||
|
||
USART3->DR='+';
|
||
|
||
delay_ms(15); //(10ms)
|
||
|
||
while((USART3->SR&0X40)==0); //
|
||
|
||
USART3->DR='+';
|
||
|
||
delay_ms(500); // 500ms
|
||
|
||
return atk_8266_send_cmd("AT","OK",20);//.
|
||
|
||
}
|
||
|
||
// ATK-ESP8266 AP+STA
|
||
|
||
//:0;1,
|
||
|
||
u8 atk_8266_apsta_check(void)
|
||
|
||
{
|
||
|
||
if(atk_8266_quit_trans())return 0; //
|
||
|
||
atk_8266_send_cmd("AT+CIPSTATUS",":",50); // AT+CIPSTATUS ,
|
||
|
||
if(atk_8266_check_cmd("+CIPSTATUS:0")&&
|
||
|
||
atk_8266_check_cmd("+CIPSTATUS:1")&&
|
||
|
||
atk_8266_check_cmd("+CIPSTATUS:2")&&
|
||
|
||
atk_8266_check_cmd("+CIPSTATUS:4"))
|
||
|
||
return 0;
|
||
|
||
else return 1;
|
||
|
||
}
|
||
|
||
// ATK-ESP8266
|
||
|
||
//:0,;1,.
|
||
|
||
u8 atk_8266_consta_check(void)
|
||
|
||
{
|
||
|
||
u8 *p;
|
||
|
||
u8 res;
|
||
|
||
if(atk_8266_quit_trans())return 0; //
|
||
|
||
atk_8266_send_cmd("AT+CIPSTATUS",":",50); // AT+CIPSTATUS ,
|
||
|
||
65
|
||
STM32 IMX6ULL
|
||
|
||
p=atk_8266_check_cmd("+CIPSTATUS:"); //
|
||
res=*p;
|
||
|
||
return res;
|
||
|
||
}
|
||
|
||
//
|
||
|
||
const u8* kbd_tbl[13]={"1","2","3","4","5","6","7","8","9",".","0","#","DEL"};
|
||
|
||
u8* kbd_fn_tbl[2];
|
||
// 240*140
|
||
//x,y:320*240 x 0
|
||
|
||
void atk_8266_load_keyboard(u16 x,u16 y)
|
||
|
||
{
|
||
|
||
u16 i;
|
||
|
||
POINT_COLOR=RED;
|
||
|
||
LCD_Fill(x,y,x+240,y+140,WHITE);
|
||
|
||
LCD_DrawRectangle(x,y,x+240,y+140);
|
||
|
||
LCD_DrawRectangle(x+80,y,x+160,y+140);
|
||
|
||
LCD_DrawRectangle(x,y+28,x+240,y+56);
|
||
|
||
LCD_DrawRectangle(x,y+84,x+240,y+112);
|
||
|
||
POINT_COLOR=BLUE;
|
||
|
||
for(i=0;i<15;i++)
|
||
|
||
{
|
||
|
||
if(i<13)Show_Str_Mid(x+(i%3)*80,y+6+28*(i/3),(u8*)kbd_tbl[i],16,80);
|
||
|
||
else Show_Str_Mid(x+(i%3)*80,y+6+28*(i/3),kbd_fn_tbl[i-13],16,80);
|
||
|
||
}
|
||
|
||
}
|
||
//
|
||
//x,y:
|
||
//key:0~8
|
||
//sta:01
|
||
|
||
void atk_8266_key_staset(u16 x,u16 y,u8 keyx,u8 sta)
|
||
|
||
{
|
||
|
||
u16 i=keyx/3,j=keyx%3;
|
||
|
||
if(keyx>15)return;
|
||
|
||
if(sta)LCD_Fill(x+j*80+1,y+i*28+1,x+j*80+78,y+i*28+26,GREEN);
|
||
|
||
else LCD_Fill(x+j*80+1,y+i*28+1,x+j*80+78,y+i*28+26,WHITE);
|
||
|
||
if(j&&(i>3))Show_Str_Mid(x+j*80,y+6+28*i,(u8*)kbd_fn_tbl[keyx-13],16,80);
|
||
|
||
else Show_Str_Mid(x+j*80,y+6+28*i,(u8*)kbd_tbl[keyx],16,80);
|
||
|
||
}
|
||
//
|
||
//x,y:
|
||
|
||
//1~15 0,
|
||
|
||
u8 atk_8266_get_keynum(u16 x,u16 y)
|
||
|
||
{
|
||
|
||
u16 i,j;
|
||
|
||
66
|
||
STM32 IMX6ULL
|
||
|
||
static u8 key_x=0;//0,1~151~15
|
||
|
||
u8 key=0;
|
||
|
||
tp_dev.scan(0); //
|
||
if(tp_dev.sta&TP_PRES_DOWN)
|
||
|
||
{
|
||
|
||
for(i=0;i<5;i++)
|
||
|
||
{
|
||
|
||
for(j=0;j<3;j++)
|
||
|
||
{
|
||
|
||
if(tp_dev.x[0]<(x+j*80+80)&&tp_dev.x[0]>(x+j*80)&&tp_dev.y[0]<(y+i*28+28)&&tp_dev.y[0]>(y+i*2
|
||
8))
|
||
|
||
{
|
||
key=i*3+j+1;
|
||
break;
|
||
|
||
}
|
||
}
|
||
if(key)
|
||
{
|
||
|
||
if(key_x==key)key=0;
|
||
else
|
||
{
|
||
|
||
atk_8266_key_staset(x,y,key_x-1,0);
|
||
key_x=key;
|
||
atk_8266_key_staset(x,y,key_x-1,1);
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
}else if(key_x)
|
||
{
|
||
atk_8266_key_staset(x,y,key_x-1,0);
|
||
key_x=0;
|
||
}
|
||
return key;
|
||
}
|
||
// Client ip
|
||
//ipbuf:ip
|
||
void atk_8266_get_wanip(u8* ipbuf)
|
||
{
|
||
u8 *p,*p1;
|
||
if(atk_8266_send_cmd("AT+CIFSR","OK",50))// WAN IP
|
||
{
|
||
ipbuf[0]=0;
|
||
|
||
67
|
||
STM32 IMX6ULL
|
||
|
||
return;
|
||
}
|
||
p=atk_8266_check_cmd("\"");
|
||
p1=(u8*)strstr((const char*)(p+1),"\"");
|
||
*p1=0;
|
||
sprintf((char*)ipbuf,"%s",p+1);
|
||
}
|
||
|
||
// AP+STA ip
|
||
|
||
//ipbuf:ip
|
||
|
||
void atk_8266_get_ip(u8 x,u8 y)
|
||
|
||
{
|
||
|
||
u8 *p;
|
||
|
||
u8 *p1;
|
||
|
||
u8 *p2;
|
||
|
||
u8 *ipbuf;
|
||
|
||
u8 *buf;
|
||
|
||
p=mymalloc(SRAMIN,32); // 32
|
||
|
||
p1=mymalloc(SRAMIN,32); // 32
|
||
|
||
p2=mymalloc(SRAMIN,32); // 32
|
||
|
||
ipbuf=mymalloc(SRAMIN,32); // 32
|
||
|
||
buf=mymalloc(SRAMIN,32); // 32
|
||
|
||
if(atk_8266_send_cmd("AT+CIFSR","OK",50))// WAN IP
|
||
|
||
{
|
||
|
||
*ipbuf=0;
|
||
|
||
}
|
||
|
||
else
|
||
|
||
{
|
||
|
||
p=atk_8266_check_cmd("APIP,\"");
|
||
|
||
p1=(u8*)strstr((const char*)(p+6),"\"");
|
||
|
||
p2=p1;
|
||
|
||
*p1=0;
|
||
|
||
ipbuf=p+6;
|
||
|
||
sprintf((char*)buf,"AP IP:%s :%s",ipbuf,(u8*)portnum);
|
||
|
||
Show_Str(x,y,200,12,buf,12,0); // AP IP
|
||
|
||
p=(u8*)strstr((const char*)(p2+1),"STAIP,\"");
|
||
|
||
p1=(u8*)strstr((const char*)(p+7),"\"");
|
||
|
||
*p1=0;
|
||
|
||
ipbuf=p+7;
|
||
|
||
sprintf((char*)buf,"STA IP:%s :%s",ipbuf,(u8*)portnum);
|
||
|
||
Show_Str(x,y+15,200,12,buf,12,0); // STA IP
|
||
|
||
myfree(SRAMIN,p); //
|
||
|
||
myfree(SRAMIN,p1); //
|
||
|
||
myfree(SRAMIN,p2); //
|
||
|
||
68
|
||
STM32 IMX6ULL
|
||
|
||
myfree(SRAMIN,ipbuf); //
|
||
myfree(SRAMIN,buf); //
|
||
|
||
}
|
||
|
||
}
|
||
|
||
//ATK-ESP8266
|
||
//x,y:.
|
||
//wanip:0,;1, wanip.
|
||
|
||
void atk_8266_msg_show(u16 x,u16 y,u8 wanip)
|
||
|
||
{
|
||
|
||
u8 *p,*p1,*p2; // 32
|
||
p=mymalloc(SRAMIN,32); // 32
|
||
p1=mymalloc(SRAMIN,32); // 32
|
||
p2=mymalloc(SRAMIN,32);
|
||
|
||
POINT_COLOR=BLUE;
|
||
|
||
atk_8266_send_cmd("AT+CWMODE=2","OK",20);
|
||
|
||
atk_8266_send_cmd("AT+RST","OK",20);
|
||
delay_ms(1000);// 2s
|
||
|
||
delay_ms(1000);//
|
||
|
||
delay_ms(1000);
|
||
|
||
delay_ms(1000); // AP
|
||
sprintf((char*)p,"AT+CWSAP=\"%s\",\"%s\",1,4",wifiap_ssid,wifiap_password);
|
||
|
||
|
||
atk_8266_send_cmd(p,"OK",1000);
|
||
if(wanip==0)//
|
||
|
||
{ //
|
||
atk_8266_send_cmd("AT+GMR","OK",20);
|
||
|
||
p=atk_8266_check_cmd("SDK version:");
|
||
Show_Str(x,y,240,16,":",16,0);Show_Str(x+72,y,240,16,p,16,0);
|
||
atk_8266_send_cmd("AT+CWMODE?","+CWMODE:",20); //
|
||
|
||
p=atk_8266_check_cmd(":");
|
||
Show_Str(x,y+16,240,16,"
|
||
:",16,0);Show_Str(x+72,y+16,240,16,(u8*)ATK_ESP8266_CWMODE_TBL[*(p+1)-'1'],16,0);
|
||
atk_8266_send_cmd("AT+CWSAP?","+CWSAP:",20); // wifi
|
||
|
||
p=atk_8266_check_cmd("\"");
|
||
|
||
p1=(u8*)strstr((const char*)(p+1),"\"");
|
||
|
||
p2=p1;
|
||
|
||
*p1=0;
|
||
Show_Str(x,y+32,240,16,"SSID :",16,0);Show_Str(x+56,y+32,240,16,p+1,16,0);
|
||
|
||
p=(u8*)strstr((const char*)(p2+1),"\"");
|
||
|
||
p1=(u8*)strstr((const char*)(p+1),"\"");
|
||
|
||
p2=p1;
|
||
|
||
*p1=0;
|
||
Show_Str(x,y+48,240,16,":",16,0);Show_Str(x+40,y+48,240,16,p+1,16,0);
|
||
|
||
69
|
||
STM32 IMX6ULL
|
||
|
||
p=(u8*)strstr((const char*)(p2+1),",");
|
||
|
||
p1=(u8*)strstr((const char*)(p+1),",");
|
||
|
||
*p1=0;
|
||
Show_Str(x,y+64,240,16,":",16,0);Show_Str(x+56,y+64,240,16,p+1,16,0);
|
||
|
||
Show_Str(x,y+80,240,16,"
|
||
:",16,0);Show_Str(x+72,y+80,240,16,(u8*)ATK_ESP8266_ECN_TBL[*(p1+1)-'0'],16,0);
|
||
|
||
} //
|
||
myfree(SRAMIN,p); //
|
||
myfree(SRAMIN,p1); //
|
||
myfree(SRAMIN,p2);
|
||
|
||
}
|
||
|
||
//ATK-ESP8266 WIFI ( WIFI STA/WIFI AP )
|
||
//x,y:.
|
||
|
||
//rmd:
|
||
//ssid,encryption,password: SSID,,
|
||
|
||
void atk_8266_wificonf_show(u16 x,u16 y,u8* rmd,u8* ssid,u8* encryption,u8* password)
|
||
|
||
{
|
||
|
||
POINT_COLOR=RED;
|
||
Show_Str(x,y,240,12,rmd,12,0);//
|
||
|
||
Show_Str(x,y+20,240,12,"SSID:",12,0);
|
||
|
||
Show_Str(x,y+36,240,12,":",12,0);
|
||
Show_Str(x,y+52,240,12,":",12,0);
|
||
|
||
POINT_COLOR=BLUE;
|
||
|
||
Show_Str(x+30,y+20,240,12,ssid,12,0);
|
||
|
||
Show_Str(x+54,y+36,240,12,encryption,12,0);
|
||
|
||
Show_Str(x+30,y+52,240,12,password,12,0);
|
||
|
||
}
|
||
//
|
||
//:
|
||
//0,TCP
|
||
//1,TCP
|
||
|
||
//2,UDP
|
||
|
||
u8 atk_8266_netpro_sel(u16 x,u16 y,u8* name)
|
||
|
||
{
|
||
|
||
u8 key=0,t=0,*p;
|
||
|
||
u8 netpro=0;
|
||
|
||
LCD_Clear(WHITE);
|
||
|
||
POINT_COLOR=RED;
|
||
p=mymalloc(SRAMIN,50);// 50
|
||
sprintf((char*)p,"%s ",name);
|
||
|
||
Show_Str_Mid(0,y,p,16,240);
|
||
Show_Str(x,y+30,200,16,"KEY0:",16,0);
|
||
|
||
Show_Str(x,y+50,200,16,"KEY1:",16,0);
|
||
Show_Str(x,y+70,200,16,"WK_UP:",16,0);
|
||
|
||
70
|
||
STM32 IMX6ULL
|
||
|
||
Show_Str(x,y+100,200,16,":",16,0);
|
||
|
||
POINT_COLOR=BLUE;
|
||
|
||
Show_Str(x+16,y+120,200,16,"TCP ",16,0);
|
||
|
||
Show_Str(x+16,y+140,200,16,"TCP ",16,0);
|
||
|
||
Show_Str(x+16,y+160,200,16,"UDP ",16,0);
|
||
|
||
POINT_COLOR=RED;
|
||
|
||
Show_Str(x,y+120,200,16,"",16,0);
|
||
|
||
while(1)
|
||
|
||
{
|
||
|
||
key=KEY_Scan(0);
|
||
|
||
if(key)
|
||
|
||
{
|
||
|
||
if(key==WKUP_PRES)break; //WK_UP
|
||
|
||
Show_Str(x,y+120+netpro*20,200,16," ",16,0);//
|
||
|
||
if(key==KEY0_PRES)//KEY0
|
||
|
||
{
|
||
|
||
if(netpro<2)netpro++;
|
||
|
||
else netpro=0;
|
||
|
||
}else if(key==KEY1_PRES)//KEY1
|
||
|
||
{
|
||
|
||
if(netpro>0)netpro--;
|
||
|
||
else netpro=2;
|
||
|
||
}
|
||
|
||
Show_Str(x,y+120+netpro*20,200,16,"",16,0);//
|
||
|
||
}
|
||
delay_ms(10);
|
||
atk_8266_at_response(1);
|
||
if((t++)==20){t=0;LED0=!LED0;}//LED
|
||
}
|
||
myfree(SRAMIN,p);
|
||
return netpro;//
|
||
}
|
||
|
||
//STA AP TCPUDP //
|
||
u8 atk_8266_mode_cofig(u8 netpro)
|
||
{
|
||
|
||
//u8 netpro;
|
||
u8 ipbuf[16]; //IP
|
||
u8 *p;
|
||
u8 key;
|
||
p=mymalloc(SRAMIN,32);// 32
|
||
PRESTA:
|
||
netpro|=(atk_8266_netpro_sel(50,30,(u8*)ATK_ESP8266_CWMODE_TBL[1]))<<4;
|
||
|
||
71
|
||
STM32 IMX6ULL
|
||
|
||
|
||
|
||
if(netpro&0X20)
|
||
|
||
{
|
||
|
||
LCD_Clear(WHITE);
|
||
if(atk_8266_ip_set("WIFI-AP UDP IP ","UDP ",(u8*)portnum,ipbuf))goto
|
||
PRESTA;//IP
|
||
|
||
if(netpro&0X03)sprintf((char*)p,"AT+CIPSTART=1,\"UDP\",\"%s\",%s",ipbuf,(u8*)portnum);
|
||
// UDP , ID STA 0
|
||
|
||
else sprintf((char*)p,"AT+CIPSTART=0,\"UDP\",\"%s\",%s",ipbuf,(u8*)portnum); //
|
||
UDP , ID STA 0
|
||
|
||
delay_ms(200);
|
||
|
||
LCD_Clear(WHITE);
|
||
|
||
atk_8266_send_cmd(p,"OK",200);
|
||
|
||
} //AP TCP Client
|
||
else if(netpro&0X10)
|
||
|
||
{
|
||
|
||
LCD_Clear(WHITE);
|
||
|
||
POINT_COLOR=RED;
|
||
Show_Str_Mid(0,30,"ATK-ESP WIFI-STA ",16,240);
|
||
Show_Str(30,50,200,16," ATK-ESP ,...",12,0);
|
||
if(atk_8266_ip_set("WIFI-AP IP ","TCP Client",(u8*)portnum,ipbuf))goto PRESTA;
|
||
//IP
|
||
|
||
if(netpro&0X03)sprintf((char*)p,"AT+CIPSTART=1,\"TCP\",\"%s\",%s",ipbuf,(u8*)portnum);
|
||
// TCP , ID STA client 1
|
||
|
||
else sprintf((char*)p,"AT+CIPSTART=0,\"TCP\",\"%s\",%s",ipbuf,(u8*)portnum); //
|
||
TCP , ID STA server 0
|
||
|
||
while(atk_8266_send_cmd(p,"OK",200))
|
||
|
||
{
|
||
|
||
LCD_Clear(WHITE);
|
||
|
||
POINT_COLOR=RED;
|
||
Show_Str_Mid(0,40,"WK_UP:",16,240);
|
||
Show_Str(30,80,200,12,"ATK-ESP TCP SERVER ",12,0); //
|
||
|
||
key=KEY_Scan(0);
|
||
|
||
if(key==WKUP_PRES)goto PRESTA;
|
||
|
||
}
|
||
|
||
}
|
||
else; //
|
||
|
||
myfree(SRAMIN,p);
|
||
|
||
return netpro;
|
||
|
||
}
|
||
|
||
72
|
||
STM32 IMX6ULL
|
||
|
||
//IP
|
||
|
||
//title:ip
|
||
|
||
//mode:
|
||
|
||
//port:
|
||
|
||
//*ip:ip ( IP )
|
||
|
||
//:0,;1,.
|
||
|
||
u8 atk_8266_ip_set(u8* title,u8* mode,u8* port,u8* ip)
|
||
|
||
{
|
||
|
||
u8 res=0;
|
||
|
||
u8 key;
|
||
|
||
u8 timex=0;
|
||
|
||
u8 iplen=0; //IP
|
||
|
||
LCD_Clear(WHITE);
|
||
|
||
POINT_COLOR=RED;
|
||
|
||
Show_Str_Mid(0,30,title,16,240); //
|
||
|
||
Show_Str(30,90,200,16,":",16,0); //
|
||
|
||
Show_Str(30,110,200,16,"IP :",16,0); //IP
|
||
|
||
Show_Str(30,130,200,16,":",16,0); //
|
||
|
||
kbd_fn_tbl[0]="";
|
||
|
||
kbd_fn_tbl[1]="";
|
||
|
||
atk_8266_load_keyboard(0,180); //
|
||
|
||
POINT_COLOR=BLUE;
|
||
|
||
Show_Str(30+72,90,200,16,mode,16,0); //
|
||
|
||
Show_Str(30+40,130,200,16,port,16,0); //
|
||
|
||
ip[0]=0;
|
||
|
||
while(1)
|
||
|
||
{
|
||
|
||
key=atk_8266_get_keynum(0,180);
|
||
|
||
if(key)
|
||
|
||
{
|
||
|
||
if(key<12)
|
||
|
||
{
|
||
|
||
if(iplen<15)
|
||
|
||
{
|
||
|
||
ip[iplen++]=kbd_tbl[key-1][0];
|
||
|
||
}
|
||
|
||
}else
|
||
|
||
{
|
||
|
||
if(key==13)if(iplen)iplen--; //
|
||
|
||
if(key==14&&iplen)break; //
|
||
|
||
if(key==15){res=1;break;} //
|
||
|
||
}
|
||
|
||
ip[iplen]=0;
|
||
|
||
73
|
||
STM32 IMX6ULL
|
||
|
||
LCD_Fill(30+56,110,239,110+16,WHITE);
|
||
|
||
Show_Str(30+56,110,200,16,ip,16,0); // IP
|
||
|
||
}
|
||
|
||
timex++;
|
||
|
||
if(timex==20)
|
||
|
||
{
|
||
|
||
timex=0;
|
||
|
||
LED0=!LED0;
|
||
|
||
}
|
||
|
||
delay_ms(10);
|
||
|
||
atk_8266_at_response(1);//WIFI ,
|
||
|
||
}
|
||
|
||
return res;
|
||
|
||
}
|
||
|
||
// UI
|
||
|
||
void atk_8266_mtest_ui(u16 x,u16 y)
|
||
|
||
{
|
||
|
||
LCD_Clear(WHITE);
|
||
|
||
POINT_COLOR=RED;
|
||
|
||
Show_Str_Mid(0,y,"ATK_ESP8266 WIFI ",16,240);
|
||
|
||
Show_Str(x,y+25,200,16,":",16,0);
|
||
|
||
Show_Str(x,y+45,200,16,"KEY0:WIFI STA+AP",16,0);
|
||
|
||
Show_Str(x,y+65,200,16,"KEY1:WIFI STA",16,0);
|
||
|
||
Show_Str(x,y+85,200,16,"WK_UP:WIFI AP",16,0);
|
||
|
||
atk_8266_msg_show(x,y+125,0);
|
||
|
||
}
|
||
|
||
//ATK-ESP8266
|
||
void atk_8266_test(void)
|
||
{
|
||
// u16 rlen=0;
|
||
|
||
u8 key;
|
||
|
||
POINT_COLOR=RED;
|
||
//
|
||
|
||
Show_Str_Mid(0,30,"ATK-ESP8266 WIFI ",16,240);
|
||
while(atk_8266_send_cmd("AT","OK",20))// WIFI
|
||
{
|
||
|
||
atk_8266_quit_trans();//
|
||
atk_8266_send_cmd("AT+CIPMODE=0","OK",200); //
|
||
|
||
74
|
||
STM32 IMX6ULL
|
||
|
||
Show_Str(40,55,200,16,"!!!",16,0);
|
||
delay_ms(800);
|
||
LCD_Fill(40,55,200,55+16,WHITE);
|
||
Show_Str(40,55,200,16,"...",16,0);
|
||
}
|
||
while(atk_8266_send_cmd("ATE0","OK",20));//
|
||
atk_8266_mtest_ui(32,30);
|
||
while(1)
|
||
{
|
||
delay_ms(10);
|
||
atk_8266_at_response(1);// ATK-ESP8266 ,
|
||
key=KEY_Scan(0);
|
||
if(key)
|
||
{
|
||
|
||
LCD_Clear(WHITE);
|
||
POINT_COLOR=RED;
|
||
switch(key)
|
||
{
|
||
|
||
case 1://KEY0
|
||
Show_Str_Mid(0,30,"ATK-ESP WIFI-AP+STA ",16,240);
|
||
Show_Str_Mid(0,50," ATK-ESP8266 ...",12,240);
|
||
atk_8266_apsta_test(); //
|
||
break;
|
||
|
||
case 2://KEY1
|
||
Show_Str_Mid(0,30,"ATK-ESP WIFI-STA ",16,240);
|
||
Show_Str_Mid(0,50," ATK-ESP8266 ...",12,240);
|
||
atk_8266_wifista_test();//WIFI STA
|
||
break;
|
||
|
||
case 4://WK_UP
|
||
atk_8266_wifiap_test(); //WIFI AP
|
||
break;
|
||
|
||
}
|
||
atk_8266_mtest_ui(32,30);
|
||
}
|
||
|
||
}
|
||
|
||
Wisita.c:
|
||
|
||
#include "common.h"
|
||
#include "stdlib.h"
|
||
#include "beep.h"
|
||
#include "led.h"
|
||
#include "key.h"
|
||
#include "pwm.h"
|
||
|
||
75
|
||
STM32 IMX6ULL
|
||
|
||
#include "delay.h"
|
||
#include "sys.h"
|
||
#include "usart.h"
|
||
#include "HCSR04.h"
|
||
#include "dht11.h"
|
||
#include "MQ2.h"
|
||
#include "math.h"
|
||
#include "stm32f4xx.h"
|
||
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
//
|
||
//ALIENTEK STM32
|
||
//ATK-ESP8266 WIFI WIFI STA
|
||
//@ALIENTEK
|
||
//:www.openedv.com
|
||
//:2015/4/3
|
||
//V1.0
|
||
//
|
||
//Copyright(C) 2009-2019
|
||
//All rights reserved
|
||
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
||
//ATK-ESP8266 WIFI STA
|
||
// TCP/UDP
|
||
//:0,
|
||
// ,
|
||
u8 netpro=0; //
|
||
|
||
u8 atk_8266_wifista_test(void)
|
||
{
|
||
|
||
//u8 netpro=0; //
|
||
double length=0;
|
||
u8 temperature;
|
||
u8 humidity;
|
||
u16 adcx;
|
||
double a=0.0;
|
||
u8 flag=0;
|
||
u8 flag2=0;
|
||
u8 flag1=0;
|
||
u8 key;
|
||
u8 ledstate=0;
|
||
u8 ledstate1=0;
|
||
u8 timex=0;
|
||
u8 ipbuf[16]; //IP
|
||
u8 *p;
|
||
|
||
76
|
||
STM32 IMX6ULL
|
||
|
||
u16 t=999; //
|
||
|
||
u8 res=0;
|
||
|
||
u16 rlen=0;
|
||
|
||
u8 constate=0; //
|
||
|
||
u16 number;
|
||
|
||
u16 num=1000;
|
||
|
||
u16 led1pwmval=1500;
|
||
|
||
//char state;
|
||
|
||
char formerstate='0';
|
||
|
||
TIM14_PWM_Init(2000-1,84-1);
|
||
|
||
LED0=1;
|
||
|
||
LED1=1;
|
||
|
||
DIR=0;
|
||
|
||
p=mymalloc(SRAMIN,32); // 32
|
||
|
||
atk_8266_send_cmd("AT+CWMODE=1","OK",50); // WIFI STA
|
||
|
||
atk_8266_send_cmd("AT+RST","OK",20); //DHCP ( AP )
|
||
|
||
delay_ms(1000); // 3S
|
||
|
||
delay_ms(1000);
|
||
|
||
delay_ms(1000);
|
||
|
||
delay_ms(1000);
|
||
|
||
// WIFI //,
|
||
|
||
!!
|
||
|
||
sprintf((char*)p,"AT+CWJAP=\"%s\",\"%s\"",wifista_ssid,wifista_password);//
|
||
|
||
:ssid,
|
||
|
||
while(atk_8266_send_cmd(p,"WIFI GOT IP",300)); //,
|
||
|
||
IP
|
||
|
||
PRESTA:
|
||
netpro|=atk_8266_netpro_sel(50,30,(u8*)ATK_ESP8266_CWMODE_TBL[0]); //
|
||
|
||
|
||
|
||
if(netpro&0X02) //UDP
|
||
|
||
{
|
||
|
||
LCD_Clear(WHITE);
|
||
|
||
POINT_COLOR=RED;
|
||
Show_Str_Mid(0,30,"ATK-ESP WIFI-STA ",16,240);
|
||
Show_Str(30,50,200,16," ATK-ESP ,...",12,0);
|
||
if(atk_8266_ip_set("WIFI-STA UDP IP
|
||
|
||
",(u8*)ATK_ESP8266_WORKMODE_TBL[netpro],(u8*)portnum,ipbuf))goto PRESTA; //IP
|
||
|
||
|
||
sprintf((char*)p,"AT+CIPSTART=\"UDP\",\"%s\",%s",ipbuf,(u8*)portnum);
|
||
// UDP
|
||
|
||
delay_ms(200);
|
||
atk_8266_send_cmd("AT+CIPMUX=0","OK",20); //
|
||
|
||
delay_ms(200);
|
||
|
||
77
|
||
STM32 IMX6ULL
|
||
|
||
LCD_Clear(WHITE);
|
||
|
||
while(atk_8266_send_cmd(p,"OK",500));
|
||
|
||
}
|
||
|
||
else //TCP
|
||
|
||
{
|
||
|
||
if(netpro&0X01) //TCP Client
|
||
|
||
{
|
||
|
||
LCD_Clear(WHITE);
|
||
|
||
POINT_COLOR=RED;
|
||
|
||
Show_Str_Mid(0,30,"ATK-ESP WIFI-STA ",16,240);
|
||
|
||
Show_Str(30,50,200,16," ATK-ESP ,...",12,0);
|
||
|
||
if(atk_8266_ip_set("WIFI-STA IP
|
||
|
||
",(u8*)ATK_ESP8266_WORKMODE_TBL[netpro],(u8*)portnum,ipbuf))goto PRESTA; //IP
|
||
|
||
|
||
|
||
atk_8266_send_cmd("AT+CIPMUX=0","OK",20); //01
|
||
|
||
sprintf((char*)p,"AT+CIPSTART=\"TCP\",\"%s\",%s",ipbuf,(u8*)portnum); //
|
||
|
||
TCP
|
||
|
||
while(atk_8266_send_cmd(p,"OK",200))
|
||
|
||
{
|
||
|
||
LCD_Clear(WHITE);
|
||
|
||
POINT_COLOR=RED;
|
||
|
||
Show_Str_Mid(0,40,"WK_UP:",16,240);
|
||
|
||
Show_Str(30,80,200,12,"ATK-ESP TCP ",12,0); //
|
||
|
||
key=KEY_Scan(0);
|
||
|
||
if(key==WKUP_PRES)goto PRESTA;
|
||
|
||
}
|
||
|
||
atk_8266_send_cmd("AT+CIPMODE=1","OK",200); //
|
||
|
||
}
|
||
|
||
else //TCP Server
|
||
|
||
{
|
||
|
||
LCD_Clear(WHITE);
|
||
|
||
POINT_COLOR=RED;
|
||
|
||
Show_Str_Mid(0,30,"ATK-ESP WIFI-STA ",16,240);
|
||
|
||
Show_Str(30,50,200,16," ATK-ESP ,...",12,0);
|
||
|
||
atk_8266_send_cmd("AT+CIPMUX=1","OK",20); //01
|
||
|
||
sprintf((char*)p,"AT+CIPSERVER=1,%s",(u8*)portnum); // Server
|
||
|
||
(01) portnum
|
||
|
||
atk_8266_send_cmd(p,"OK",50);
|
||
|
||
}
|
||
|
||
}
|
||
|
||
LCD_Clear(WHITE);
|
||
|
||
POINT_COLOR=RED;
|
||
|
||
Show_Str_Mid(0,30,"ATK-ESP WIFI-STA ",16,240);
|
||
|
||
78
|
||
STM32 IMX6ULL
|
||
|
||
Show_Str(30,50,200,16," ATK-ESP ,...",12,0);
|
||
|
||
LCD_Fill(30,50,239,50+12,WHITE); //
|
||
|
||
Show_Str(30,50,200,16,"WK_UP: KEY0:",12,0);
|
||
|
||
LCD_Fill(30,80,239,80+12,WHITE);
|
||
|
||
atk_8266_get_wanip(ipbuf);//, WAN IP
|
||
|
||
sprintf((char*)p,"IP :%s :%s",ipbuf,(u8*)portnum);
|
||
|
||
Show_Str(30,65,200,12,p,12,0); // IP
|
||
|
||
Show_Str(30,80,200,12,":",12,0); //
|
||
|
||
Show_Str(120,80,200,12,":",12,0); //
|
||
|
||
Show_Str(30,100,200,12,":",12,0); //
|
||
|
||
Show_Str(30,115,200,12,":",12,0); //
|
||
|
||
atk_8266_wificonf_show(30,180,"
|
||
|
||
:",(u8*)wifista_ssid,(u8*)wifista_encryption,(u8*)wifista_password);
|
||
|
||
POINT_COLOR=BLUE;
|
||
|
||
Show_Str(120+30,80,200,12,(u8*)ATK_ESP8266_WORKMODE_TBL[netpro],12,0);
|
||
//
|
||
|
||
USART3_RX_STA=0;
|
||
|
||
while(1)
|
||
|
||
{
|
||
//
|
||
|
||
length=GetHCSR04_Distance();
|
||
//
|
||
|
||
DHT11_Read_Data(&temperature,&humidity);
|
||
//
|
||
|
||
adcx=Get_Adc_Average(ADC_Channel_5,20);// 5 20
|
||
|
||
|
||
|
||
ledstate=GPIO_ReadOutputDataBit(GPIOF,GPIO_Pin_3);
|
||
|
||
ledstate1=GPIO_ReadOutputDataBit(GPIOF,GPIO_Pin_10);
|
||
|
||
if(adcx >1500)
|
||
|
||
{
|
||
|
||
GPIO_SetBits(GPIOF,GPIO_Pin_8);
|
||
|
||
delay_ms(300);
|
||
|
||
GPIO_ResetBits(GPIOF,GPIO_Pin_8);
|
||
|
||
delay_ms(300);
|
||
|
||
}
|
||
|
||
printf("\n");
|
||
|
||
a=length;
|
||
|
||
if(flag1==0&&a<15)
|
||
{
|
||
|
||
while(1){
|
||
flag2=0;
|
||
delay_ms(10);
|
||
|
||
79
|
||
STM32 IMX6ULL
|
||
|
||
LED0=0;
|
||
LED1=0;
|
||
delay_ms(num);
|
||
DIR=1;
|
||
flag++;
|
||
|
||
number=7000/num;
|
||
if(flag>=number){
|
||
|
||
flag1=1;
|
||
delay_ms(num);
|
||
TIM_SetCompare1(TIM14,0);
|
||
break;
|
||
}
|
||
else
|
||
{
|
||
TIM_SetCompare1(TIM14,led1pwmval);
|
||
delay_ms(10);
|
||
}
|
||
}
|
||
}
|
||
if(flag1==1&&a>15)
|
||
{
|
||
while(1)
|
||
{
|
||
flag=0;
|
||
delay_ms(1000);
|
||
LED0=1;
|
||
LED1=1;
|
||
DIR=0;
|
||
flag2++;
|
||
if(flag2>=7){
|
||
|
||
flag1=0;
|
||
TIM_SetCompare1(TIM14,0);
|
||
break;
|
||
}
|
||
else
|
||
{
|
||
TIM_SetCompare1(TIM14,led1pwmval);
|
||
delay_ms(10);
|
||
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
key=KEY_Scan(0);
|
||
|
||
80
|
||
STM32 IMX6ULL
|
||
|
||
if(key==WKUP_PRES) //WK_UP
|
||
|
||
{
|
||
|
||
res=0;
|
||
|
||
atk_8266_quit_trans(); //
|
||
|
||
atk_8266_send_cmd("AT+CIPMODE=0","OK",20); //
|
||
|
||
break;
|
||
|
||
}
|
||
|
||
else if(10==t) //TCP Server
|
||
|
||
{
|
||
|
||
sprintf((char*)p,"%02d%02d%04d%1d%1d",temperature,humidity,adcx,ledstate,ledstate1);//
|
||
|
||
|
||
Show_Str(30+54,100,200,12,p,12,0);
|
||
atk_8266_send_cmd("AT+CIPSEND=0,10","OK",200); //
|
||
|
||
|
||
|
||
delay_ms(200);
|
||
atk_8266_send_data(p,"OK",100); //
|
||
|
||
timex=50;
|
||
|
||
}else;
|
||
|
||
if(timex)timex--;
|
||
|
||
if(timex==1)LCD_Fill(30+54,100,239,112,WHITE);
|
||
|
||
t++;
|
||
|
||
delay_ms(10);
|
||
|
||
if(USART3_RX_STA&0X8000) //
|
||
|
||
{
|
||
|
||
rlen=USART3_RX_STA&0X7FFF; //
|
||
|
||
USART3_RX_BUF[rlen]=0; //?
|
||
|
||
if('1'==USART3_RX_BUF[rlen-1])
|
||
{
|
||
formerstate='1';
|
||
|
||
}
|
||
else if('0'==USART3_RX_BUF[rlen-1])
|
||
|
||
{
|
||
formerstate='0';
|
||
|
||
}
|
||
else;
|
||
|
||
if(formerstate=='0')
|
||
{
|
||
|
||
81
|
||
} STM32 IMX6ULL
|
||
else
|
||
GPIO_SetBits(GPIOF,GPIO_Pin_10);
|
||
{
|
||
GPIO_ResetBits(GPIOF,GPIO_Pin_10);
|
||
}
|
||
|
||
printf("%s",USART3_RX_BUF); //
|
||
|
||
sprintf((char*)p,"%d ,",rlen);//
|
||
|
||
LCD_Fill(30+54,115,239,130,WHITE);
|
||
|
||
POINT_COLOR=BRED;
|
||
|
||
Show_Str(30+54,115,156,12,p,12,0); //
|
||
|
||
POINT_COLOR=BLUE;
|
||
|
||
LCD_Fill(30,130,239,319,WHITE);
|
||
|
||
Show_Str(30,130,180,190,USART3_RX_BUF,12,0);//
|
||
|
||
USART3_RX_STA=0;
|
||
|
||
if(constate!='+')t=1000; //,
|
||
|
||
else t=0; //,10
|
||
|
||
}
|
||
|
||
if(t==1000)// 10 ,.
|
||
|
||
{
|
||
|
||
// // LCD_Fill(30+54,125,239,130,WHITE);
|
||
|
||
// LCD_Fill(60,80,120,92,WHITE);
|
||
|
||
constate=atk_8266_consta_check();//
|
||
|
||
if(constate=='+')Show_Str(30+30,80,200,12,"",12,0); //
|
||
|
||
|
||
|
||
else Show_Str(30+30,80,200,12,"",12,0);
|
||
|
||
t=0;
|
||
|
||
}
|
||
|
||
atk_8266_at_response(1);
|
||
|
||
} //
|
||
myfree(SRAMIN,p);
|
||
return res;}
|
||
|
||
82
|
||
|