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

【经验分享】【TSC_WL_EVK STM32WL评估板】上手体验

[复制链接]
STMCU小助手 发布时间:2022-1-4 11:00
【TSC_WL_EVK STM32WL评估板】上手体验5 Y# o- y1 G' U7 b+ Q
一、前言
7 W4 ]8 z" S/ y% T* S- x
最近,腾讯云加社区发布了【LoRa 社区网关点亮活动】,详情见:腾讯云物联网LoRa社区狂欢送鹅厂公仔,更有多款开发套件优惠购!
6 f4 |2 P+ `: P, [6 C; u3 W  {9 f3 r通过该活动的优惠价格39.9元我拿到了一块TSC_WL_EVK STM32WL评估板,评估版到手后如下:$ P7 k/ k% E( d1 q
2020090523083685.png

) z8 T, f+ X1 ~
; ?; V6 t6 A% O& M" y. f1 {接下来就是完成活动所说的 LoRa 社区网关点亮,官方提供在gitee的资料为:https://gitee.com/TencentOS/Tenc ... B_WL_Quick_Start.md1 d; c1 `6 g% u" b8 m) V" e

& f+ B6 q9 {# U! }* E, n) u- {8 Q二、开发环境的搭建
5 A% U  A: w% h首先,由于使用了STM32WL系列的芯片,所以要在MDK中添加对STM32WL的支持,+ l9 B) n! R2 w" t
. x. X6 f6 E7 }! r1 Y1 J
三、腾讯云IoT Explorer 设置

6 U# \* d/ X. M登录腾讯物联网开发平台控制台,点击新建项目,! h4 h& _  c3 }( h% Z
$ ^0 N) ]! c8 ^1 D
20200906131249408.png
1 R" c, R1 w* x  U" N
4 I$ J3 @% x. C! o8 o! y, O
然后输入项目名称和项目描述,点击保存
4 w1 ]! L! v. p3 P5 r( ^, I2 p3 \, N$ p
20200906131451432.png
5 {& B5 U  V3 J4 [+ Q/ a
6 V: T! w: o  G
项目新建成功后我们点击其进入
+ y) Z1 V  S: A4 M; |% t% v. {/ x* e$ F, _% u& `
20200906131638220.png
. A( z2 O4 ~" m
0 @9 x% P( y3 g* G9 |6 e5 n0 V# ?
然后点击新建产品! }! R% |; M, H5 L

4 k' x, Y7 V; v8 u8 k- M3 c  a6 `' @
20200906131716387.png

. U3 e& l4 O9 Z: A) P, f& c# l6 `
/ o3 o8 [+ H1 X/ p9 M+ C$ j然后填写产品基本信息如下所示,点击保存即可
' |8 P7 Y- _! @+ }' O  V) J- A# i
, t9 e+ I) ]: o5 v. U  j! P+ d- j
20200906131933438.png
  P- Z- {, @* |0 e4 L- c6 D

% `9 @3 P! I. j( M) v  E产品新建好后,点击进入产品,开始产品配置$ x4 f: I2 }0 N- n* L

/ g5 _- b" J9 K, u
20200906132115435.png

" f9 U- L5 [# {/ ]+ i
4 W6 r/ P( E! o在产品配置页,点击【导入JSON】
  P4 G9 L: Y% j  D0 l8 |! L! S) L
+ d7 P$ L! B3 N9 j. B
20200906132443467.png
0 N; s6 N+ }; i$ i. i( z

& D7 F. b1 B7 f1 c6 N- d( `填入的JSON代码如下,填入后点击【导入】即可,4 d2 A; L) f; R! i- W/ b! a2 X4 U
. f: ?0 O) c  t. K* r" M
  1. {' A; s: ?7 c, v: t
  2.   "version": "1.0",
    ! I- g& [- i9 N) j: e
  3.   "profile": {, ]1 |. A: ]; Q
  4.     "ProductId": "F2G256SY2G",* l, ^, I$ V, @! L  S3 i
  5.     "CategoryId": "1"! G& }! S- G2 D, g3 N
  6.   },* W+ f( k7 k+ X7 i' }+ O- O, p8 }2 O( D
  7.   "properties": [7 S  l# N' p% i  t2 n6 ~
  8.     {$ U4 r8 f, [: H: G4 g, d
  9.       "id": "temperature",4 J/ X0 @: V* `
  10.       "name": "温度",- G. ~# J' {6 Q# M' Q) b% [
  11.       "desc": "",& k& O8 y( I; t: g4 T$ m4 k" N
  12.       "mode": "r",% C1 {( e( c: b4 o5 Y. A
  13.       "define": {! p* n8 J+ s4 A2 ]5 u
  14.         "type": "int",
    ) l8 r- {* i! c1 }  I3 Z) V$ i/ D8 o
  15.         "min": "-100",
    7 Y! `3 X. D; W9 W$ l
  16.         "max": "155",' \# m' N8 y. v3 j# m" [3 Y" I( g
  17.         "start": "0",
    + w( f9 i4 \4 j1 ]+ e- Y3 e7 }2 p
  18.         "step": "1",7 r/ h' `" I  d3 J
  19.         "unit": "摄氏度"$ Q% R; v3 Y6 _
  20.       },
    . d# y8 f/ N2 l7 e4 _" d3 l* v
  21.       "required": false
    $ Z- W: y  N; u' ]6 ^
  22.     },
    $ \- J  ~9 \" o
  23.     {
    * E5 t) ~; M5 P5 y. z/ ]! m1 v
  24.       "id": "humidity",
    5 Q  P6 S# r: U) X) r- {
  25.       "name": "湿度",* x, Z' K8 |1 R* k' {
  26.       "desc": "",
    " q8 Z: `6 _  M$ x; g
  27.       "mode": "rw",2 V) u2 g. I* _
  28.       "define": {
    $ z- S& N# _9 {4 d
  29.         "type": "int",( M' d! F8 E5 e7 I! |
  30.         "min": "0",
    , k! B% g! U; D1 o. i
  31.         "max": "100",6 e- N2 }5 W' }- @- l2 I
  32.         "start": "0",
    8 X# v. [6 S0 ~/ d- n; B% T8 l
  33.         "step": "1",
    2 v% ^2 i% I7 h# }2 q7 b* R; _
  34.         "unit": "%"
    9 F6 ?/ S( o, \9 G+ f$ ]7 V1 R
  35.       },3 v& c; B3 Z& k  j1 ^
  36.       "required": false0 ]# u) N- F3 m; H! X: x. I) l  p1 J, m
  37.     },
    3 x7 n  y/ K! I" M: c
  38.     {3 B' |/ I) d( v; g0 s
  39.       "id": "period",
    9 Z% V8 f" D; m* E% h9 |
  40.       "name": "上报周期",
    ; W% y) Q/ l/ V5 B$ f
  41.       "desc": "",7 K* j* W6 j  q$ M3 a
  42.       "mode": "rw",
    ( l4 s$ ^- @/ X# ~2 s
  43.       "define": {
    6 H* u* V3 Q1 h! @& z
  44.         "type": "int",
    & H" o* b- g* s+ [. `8 _: k4 G; _
  45.         "min": "0",+ \5 m' l& E5 s$ P& b- j8 {6 [( u1 t
  46.         "max": "3600",7 e6 M! B7 {: o& A" h
  47.         "start": "0",
    - w4 H+ U7 e# k7 U" w% a9 q  ?
  48.         "step": "1",
    + ^! D" M2 ^/ f0 w
  49.         "unit": "秒", h; }/ k8 [# L' ?& l+ [) M
  50.       },# q; j, z" o# I5 Y$ [
  51.       "required": false) O5 F! N! x1 n  @/ L) `
  52.     }
    9 {* r# T; f( L3 L  x; h
  53.   ],1 ~8 u2 p0 F$ k$ o" [' w6 a
  54.   "events": [],3 ]5 a* X* \, {% V; `4 P
  55.   "actions": []3 j7 k  g0 k2 f3 M0 q7 P
  56. }
复制代码

2 w# X/ @% c: r, J6 `1 Y, j
20200906132744190.png

1 \8 g4 C" c. V; s3 @$ e+ P5 O& T; U' i4 e& }7 f
导入完成后,如下所示,然后就可以点击下一步了6 G/ i/ T, f5 t$ _: e  [/ X

" U: @  A$ x. {! k, l
20200906133006655.png

" d$ U( m! R( C* l, g* a3 U7 w7 q' P0 I1 `6 F4 [
在上行数据解析部分中,填入如下javascript 代码:
  1. function RawToProtocol(fPort, bytes) {
    3 U) L& D; C3 o  e0 j( j6 g4 m
  2.     var data = {- B. r4 m* k( f0 z+ h; k
  3.         "method": "report",
    " _/ {5 e# G- e+ q3 g( |
  4.         "clientToken" : new Date(),5 ~& I7 m) H- j/ B! b8 k
  5.         "params" : {}
    2 S9 J0 a+ G4 T
  6.     };
    1 C% \, j# T: j: o$ A
  7.     data.params.temperature = bytes[0];
    9 M8 E% I" c6 C5 o, O/ Z
  8.     data.params.humidity = bytes[1];4 c8 H6 ~( d1 }! q5 P
  9.     data.params.period = bytes[2] | (bytes[3] << 8);
    3 @) E2 }8 o1 I  E) Q/ q4 f
  10.     return data;3 u, T, }6 @: `! F8 P
  11. }
复制代码

' O" s5 U$ |; S( ?/ V在下行数据解析部分中,填入如下javascript 代码:
5 X' N4 s; J) Q1 p9 }) |# Q- u
& w. G. _' x& E2 D& C* `6 G# C
  1. function ProtocolToRaw(obj) {
    # K+ C- s, y/ d% n- D7 N. p9 k
  2.     var data = new Array();
    9 {+ x1 W) c+ C' \+ J8 i
  3.     data[0] = 5;// fport=5- H! d  |, d0 t5 r
  4.     data[1] = 0;// unconfirmed mode
    9 i) a; L" Z* _' q
  5.     data[2] = obj.params.period & 0x00FF;
    ( M% P3 n3 z  S2 x  R4 v2 m
  6.     data[3] = (obj.params.period >> 8) & 0x00FF;% @/ p9 P. |& w/ a
  7.     return data;1 p! Z: U1 }( c
  8. }
复制代码
& v/ v0 E2 [0 P0 b" Q
填入完成如下
" i1 O6 V+ U6 A( [+ `
; J, e) m" s0 }! x
20200906133509244.png

' j& N' X. @  p7 N0 R+ X
  O2 W$ {: u" K! b4 w& s1 y* v然后点击提交,进行保存
% X& u' u9 f/ S( Y& d1 h/ q! M% ^& D# j
20200906133901811.png

7 D, \3 M. x* J& O  q% h
- h9 ]! d; @- }& X6 k1 S点击【设备调试】->【新建设备】,然后输入【设备名称】: WL_DEV_001,【DevEUI】:8cf9572000004dfe,【AppKey】:1234567891234567891234567891234e,然后点击保存;# X, P, f5 b( ?7 X& u) a, p  G

0 ^* A0 q  o- y& V
20200906140115117.png
' L' G  _. A3 J7 x$ D

3 O% H% B  r& A: V. L0 c三、编译程序,烧录固件- E6 d6 t7 X8 Q
首先从TencentOS tiny官方开源仓下载源码
( M, z5 C* A0 I6 D
3 }9 q3 N/ m- }% I' r7 y9 K拉取下来后进入 TencentOS-tiny\board\RHF0M0E5_STM32WLE5xx\KEIL\lorawan目录,打开TencentOS_tiny.uvprojx工程:
( A8 S( C8 D3 v
+ J) {! e4 a4 G" E& e6 @0 U 20200906134551350.png
$ u5 ]7 l2 s3 D! J
% E. f5 i  m0 `7 e$ z  p" A1 L+ Q接下来打开commissioning.h头文件,将DevEUI和AppKey设置的和刚才在物联网平台上的一致
4 L3 P: G2 z0 c& x5 K) {& s" u4 g* I# R; j5 I
20200906141127957.png

) _( ]; r2 ?- L% k
" O- E8 q5 F/ I' n3 n/ g% ]: k6 v+ l然后编译链接下载到开发板,不过下载过程会出现问题,因为RHF0M0E5模块在出场的时候设置了写保护,我们需要使用STM32CubeProgrammer将其清除,将开发板通过STlink与电脑连接,打开STM32CubeProgrammer,将其升级到最新版本V2J35S7
! t! |! x- m- N$ Y5 V2 C2 t) M5 {
6 }8 r9 T9 Q& n6 w# t- X! G" w
20200906143538887.png

. v  J* X# q4 p' N* P% P: I9 f+ z( A) W
升级完成后重新插拔一次ST-Link,接下来做如下操作, Q9 W! Y$ Z9 R3 r
: ]( j$ ?" y$ k8 B) ]
2020090614395784.png
$ Q+ X) n/ }2 R" u" r  R3 ]

4 R, _3 G- \9 W* P然后再重新插拔ST-Link,编译链接下载即可成功:
* F. l4 D7 l% `7 k
+ b$ i" B7 e: @3 T
20200906144251679.png
* y2 Z* {/ h+ |* L# g
8 C$ R" J( g  l$ P/ C  I
, R5 `5 r0 i8 R: p# k6 h, H
收藏 评论0 发布时间:2022-1-4 11:00

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版