你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【屋脊雀F407开发板】接上8266模块进行开发调试

[复制链接]
donatello1996 发布时间:2019-1-7 23:53
    屋脊雀开发板自带了外扩串口调试接口,可以用于连接像安信可8266那种串口的模块,连接方式如下:
0 X' d* Y+ d, x8 X' Z( X 16.jpg " p1 A/ V6 f  N) a/ o
    有了8266,我们就可以用来实现很多有趣的小DEMO,比如让手机通过网页服务器来给板子下各种命令,如打开关闭LED灯,在网页端的调试窗口输入调试内容到板子上,让板子显示出来,后续还会有更多创意小功能。, j* I2 [6 p- o- p
    首先我们要在8266上面搭建一个有LED灯控制功能和调试内容功能的网页服务器: Screenshot_20190107-232249.jpg # ^& V# _1 s: A$ [" }
    输入框的内容是任意的,包括汉字,字符等都完全支持,不在HTML前端上做任何限制,而LED灯开关则是一个radiobutton即单选框。
/ d, E$ A! [8 O; ?$ o3 p# g
; `- G2 `. U0 T& y- e
7 U8 A5 [- {7 D. v, W0 _: n
串口接收处理函数如下:9 g" O7 l1 J; a( i

: E- z0 @. s( P9 y3 Q: H
$ s: I6 q3 I2 \
void UART_DMA_Get()& C3 c* j3 {+ A" z2 A
{6 n, P' f& M) _% y
        int i;: g* i% a! S" E
        if(rx_flag_uart1==1)* j* T& B' G0 b  t) z7 r. b8 m( L% {
        {
( Q+ W- t5 W1 u" {+ \5 t                printf("rx_len=%d\n\n",rx_len_uart1);
. c8 l5 `/ P# A. D8 c# g/ t                printf("%s\n\n",rx_buf_uart1);
! d1 T  e7 F$ Q$ f0 ^( u0 o2 J" J               
9 E1 Q$ x7 D  [" X! o6 N/ {                if(rx_buf_uart1[0]==0x01)* s9 K3 @2 c1 `2 {9 p& J8 ^
                {* F4 V  d6 h( \, j# E+ E5 \* l
                        if(rx_buf_uart1[1]==1)
( i( ^* G2 O$ q6 w: a+ @                        {8 _: j. J2 H4 H$ ]7 n; J* K
                                HAL_GPIO_WritePin(GPIOG,GPIO_PIN_0,0);4 m" a, U9 A# ^1 ?
                                HAL_GPIO_WritePin(GPIOG,GPIO_PIN_1,0);9 J3 V: Z6 N( C& ^; X, z* N$ z
                                HAL_GPIO_WritePin(GPIOG,GPIO_PIN_2,0);
- Y8 W/ T$ d* Z# @                                HAL_GPIO_WritePin(GPIOG,GPIO_PIN_3,0);
) N- {' r5 k/ v$ P7 L3 u, @  @1 l                        }
# v! N& j4 A- b+ H+ @; ~$ }                        else if(rx_buf_uart1[1]==2)$ @. g' _: h) T/ G
                        {" ^2 E$ K( R% h8 `  U
                                HAL_GPIO_WritePin(GPIOG,GPIO_PIN_0,1);
: K5 M4 r! A* P! m) {                                HAL_GPIO_WritePin(GPIOG,GPIO_PIN_1,1);+ E1 D4 M% I* l$ E2 C
                                HAL_GPIO_WritePin(GPIOG,GPIO_PIN_2,1);
5 f! G2 Q: F" X' n% J9 S  Z' r                                HAL_GPIO_WritePin(GPIOG,GPIO_PIN_3,1);0 p- m- p8 C' W8 }( O. T1 Z
                        }
' m) y+ k6 q8 c* ?- {                        for(i=0;i<rx_buf_uart1[2];i++)+ q1 b  a  t+ W, M1 w/ Q% N
                                        text1_buffer=rx_buf_uart1[i+3];0 b+ m+ }/ P$ W, E1 L7 v1 }. i; V
$ x2 A' q3 Z% S# ?% a! G* E) P' X

) S/ H* Q, j5 N5 a5 c9 j                        text1_buffer='\0';% Q% P- L! m9 Q# l9 |3 U! t
                        strcpy(temp1[rx_idle_lines],text1_buffer);
( ?: `" v2 h7 X- F1 e                        if(rx_idle_lines>=7)
' s) E! p# W) v: g                                for(i=0;i<rx_idle_lines;i++)
1 P6 r* m- Q8 ?1 X. ~/ y. P4 T% @                                {0 s5 E) |; b0 j* \' s9 q
                                        SPILCD_DrawString(0,i*32,"                              ",0,CYAN,ZF32_NORMAL);. Q8 V% f; @# A( G% r
                                        SPILCD_DrawString(0,i*32,temp1,0,CYAN,ZF32_NORMAL);
+ r4 k0 g$ N4 m7 {3 k$ F1 V                                        strcpy(temp1,temp1[i+1]);
% Y2 z( i, C9 `                                }
5 S4 j# E( X9 S5 L) N                                SPILCD_DrawString(0,rx_idle_index,"                              ",0,CYAN,ZF32_NORMAL);
5 e5 S$ D) s) X6 T! k1 d                                SPILCD_DrawString(0,rx_idle_index,text1_buffer,0,CYAN,ZF32_NORMAL);
$ ?( P! F* ~; D" t                               
* p0 f4 ]$ Z; D5 `9 M' w                                rx_idle_index+=32;% N* w' A7 S3 D+ S8 h: Y
                                rx_idle_lines++;9 @" L0 A1 ?+ d% G/ H% {+ F
                                if(rx_idle_index>224)rx_idle_index=224;4 x' u( n- F- H/ ]/ K' |+ E
                                if(rx_idle_lines>7)rx_idle_lines=7;
& M! n+ ]8 s; r" ~" t& W                        memset(text1_buffer,0,30);$ w) n- b7 \5 `$ u, ]
                        rx_len_uart1=0;
) X; l: y7 N6 u% i  e5 ]& G8 ?                        rx_flag_uart1=0;
" }/ p% e/ g- Z                }
  A; }9 o4 h' h7 B  z7 I        }& f( D+ T% u3 s& a( q" G
        if(rx_flag_uart3==1)
5 l1 R. w. [: k- U        {7 ?6 C! _# Q% u: e' Q2 e5 U1 r; q( M
                printf("rx_len=%d\n\n",rx_len_uart3);1 Z8 R; C- |. Y7 ?
                for(i=0;i<rx_len_uart3;i++)( n* l5 V3 [% W& K
                {
. e3 Z! O) k1 c% ?3 C8 I                        if(rx_buf_uart3=='\r'||rx_buf_uart3=='\n'); P' M. C+ Y/ N) o
                                rx_buf_uart3=0;
/ q5 K$ [3 n* g2 `" v1 F1 z2 S, v0 w; K

9 E+ p1 ]0 g% j                }
; Z# y) n& w* V% Z" H                printf("%s\n\n",rx_buf_uart3);# ]. Y1 ^; d9 L- k( _+ w
2 d+ K) H+ r# k" y0 D# f

( [, t5 z( }" M( k+ n- a                rx_len_uart3=0;: v( k3 _# r5 f9 Q3 W
                rx_flag_uart3=0;  J* A  s  h8 a2 E
        }
9 Z' [  ?# z" P! }* o+ P# x        HAL_UART_Receive_DMA(&huart1,(uint8_t*)rx_buf_uart1,BUFFERSIZE);+ `4 }8 e. i8 Q  O! c
        HAL_UART_Receive_DMA(&huart3,(uint8_t*)rx_buf_uart3,BUFFERSIZE);
7 r$ a; X  |5 a  P9 Z, P}2 g" n# Q1 ^( X! ?0 R/ P! d

3 p5 g+ l. F" `! l
4 Q) [. X6 x, l' t* q9 d6 `  M/ L
void USART1_IRQHandler()
! _- n4 y# o4 T3 T% |{$ r& X$ I9 m! N. f" r6 a! I
        int temp;0 B1 p" z' a5 H2 q4 U
        if(__HAL_UART_GET_FLAG(&huart1,UART_FLAG_IDLE))9 [1 U+ `, \/ l2 W# ^
        {( u7 c2 i; e6 p7 U! Z6 s
                __HAL_UART_CLEAR_IDLEFLAG(&huart1);
: F8 o- ]5 d  ^# i8 s) y                HAL_UART_DMAStop(&huart1);
1 W* S# n- S9 A1 l" h5 a                temp  = __HAL_DMA_GET_COUNTER(&hdma_usart1_rx);6 j) b) Z* L8 P9 [% T8 N2 F
                rx_len_uart1=BUFFERSIZE-temp;
7 K+ ~  ?& {4 Q5 H0 T. y1 ]                rx_flag_uart1=1;% f: w7 c2 D2 G+ Y! D
               
8 E  q2 V2 x% S9 ]6 P, W4 b. y        }
3 Z" Z4 A/ k; I3 c5 Q, P% i: i}
) ]) `  C5 ~0 s4 Z# X& i, L/ |8 L9 C* Q5 f- u4 _1 q( Y
) ^$ W$ V; g& v4 b0 M! M& H
看看效果:1 T+ s) [( j! |* N/ c$ e- s
2.gif 3.gif
* Z3 T( o9 c- \上传工程文件:
8 f3 p0 y7 g2 J2 Q" B STM32F407ZGT6.zip (551.65 KB, 下载次数: 1)
收藏 评论4 发布时间:2019-1-7 23:53

举报

4个回答
Bowen 回答时间:2019-1-8 08:21:52
谢谢分享
STMCU-管管 回答时间:2019-1-8 09:28:06
谢谢分享
1 J; Q$ A* f8 m" H; I0 j
jeffhe1 回答时间:2019-1-8 09:36:48
謝謝分享
Inc_brza 回答时间:2019-1-8 14:08:33
有代码编辑功能的,这样排版太难看了

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版