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

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

[复制链接]
STMCU小助手 发布时间:2022-1-4 11:00
【TSC_WL_EVK STM32WL评估板】上手体验+ B  e' F% Z# v. R
一、前言

- s5 O4 [  e# e$ J$ A最近,腾讯云加社区发布了【LoRa 社区网关点亮活动】,详情见:腾讯云物联网LoRa社区狂欢送鹅厂公仔,更有多款开发套件优惠购!& }2 X3 t0 s/ O) u! f
通过该活动的优惠价格39.9元我拿到了一块TSC_WL_EVK STM32WL评估板,评估版到手后如下:
. e" m; Y+ h+ _$ w" @4 x
2020090523083685.png

, ]# U# _0 ]$ M
3 R. v3 s' k' P# A接下来就是完成活动所说的 LoRa 社区网关点亮,官方提供在gitee的资料为:https://gitee.com/TencentOS/Tenc ... B_WL_Quick_Start.md
8 ?6 q5 X* _# c# q+ N( H
% @, G9 ~3 j" ?# }9 K4 l* G二、开发环境的搭建
" H1 \) {; |2 M! ~首先,由于使用了STM32WL系列的芯片,所以要在MDK中添加对STM32WL的支持,$ D: g* [5 ?& w, y) K/ M
- r6 I" x2 c0 t3 x, P  |  C1 C- U
三、腾讯云IoT Explorer 设置

( @/ G; Z4 A1 F. r' O登录腾讯物联网开发平台控制台,点击新建项目,
7 J' j8 x8 c- a4 E8 ~/ ~/ U
# b( R. z6 C; E0 R( u: F
20200906131249408.png
! w' C1 U0 t, j  s
- e( X/ t# q3 L7 Q# a1 E
然后输入项目名称和项目描述,点击保存+ \' @$ y* b8 s0 ^
7 b2 X# h1 I& P
20200906131451432.png
% F# W7 g4 q: F2 c
; M: @% }6 w! R. R* X* a1 g# O0 |
项目新建成功后我们点击其进入7 R" |2 `# g  g
' |9 [' C% t0 x: S3 `
20200906131638220.png
( P2 S! F5 J3 z
6 y% Q, X4 f( N$ z/ I* z) q
然后点击新建产品
0 J1 |+ L3 t- |$ C# E. c' j. ?6 P7 ]8 }& G7 i. J
20200906131716387.png

. R4 k( u% R3 ^! k4 E+ x9 P8 |4 L7 v$ R
然后填写产品基本信息如下所示,点击保存即可, v! H' g# B' h- r  v
$ K* k. y0 k1 U
20200906131933438.png

( e/ T  G; F2 Z6 |; L: T
; E  J+ }) {( d. S, z0 d产品新建好后,点击进入产品,开始产品配置# T+ ?, e* ^; ]
! u) ^" R, W$ W8 v: y7 @7 b$ `
20200906132115435.png
- o/ P0 ]5 N# ~: e, @2 U, y
' A: w: [. m/ J; Q3 s/ ~# g
在产品配置页,点击【导入JSON】1 n2 a" c1 y5 ]& `

! q$ U6 f: k; x) l
20200906132443467.png
) h$ w! g! O! S; z1 v* J

% _2 r: \5 K0 O* F1 v4 b# W. C* e填入的JSON代码如下,填入后点击【导入】即可,
7 O8 C% y# E# ]3 N! p5 M# Q7 v! J. a' i$ P, ?. q
  1. {
    1 d7 |! W  {# J: w+ f
  2.   "version": "1.0",9 J1 Q  k( O5 i7 k
  3.   "profile": {
    1 I# ?) ?+ h/ }9 Z% Z6 _: L
  4.     "ProductId": "F2G256SY2G",2 {/ [% }, {% E9 K: G
  5.     "CategoryId": "1"- I& v( w% @( ~. p, j
  6.   },
    4 h: {* S1 i; _% X' ~; W8 O
  7.   "properties": [
    ( Z8 z5 z6 o  [# c$ b& |- Y8 s
  8.     {
    ' K  |3 e7 T: @3 b$ w: w4 j
  9.       "id": "temperature",
    ) H* ^  Z: ]$ Y- w
  10.       "name": "温度",( T2 y' n' Z% B, U6 @" a
  11.       "desc": "",
    1 F% [  z' w( |
  12.       "mode": "r",
      R. D4 f: t% e
  13.       "define": {
    2 ~) W* G* B3 K- F& K
  14.         "type": "int",3 R- Y# a( c% H7 M0 V+ A1 ~& h2 [! C
  15.         "min": "-100",
    / L% V: ]/ y  `8 S
  16.         "max": "155",1 {/ G* G; R" `6 I) l
  17.         "start": "0",: L2 b* a+ w+ J+ x
  18.         "step": "1",
    5 b6 J7 a2 D8 ~8 m8 v
  19.         "unit": "摄氏度"
    0 j8 F. T. K4 X  [" d
  20.       },
    9 A9 n6 B# S" D- _' ]# e6 o+ ^' e; [
  21.       "required": false
    ! j* a9 R- _1 C- ]7 F
  22.     },
    5 k- j" M+ c# Q+ b9 M9 p
  23.     {
    4 k4 I4 A: @* x, G5 y5 ^* V
  24.       "id": "humidity",
    , F! J- _# g. W4 D% a
  25.       "name": "湿度",
    ' m! r/ P) e' R8 \1 v; x; _
  26.       "desc": "",
    2 S' O3 a% v+ K/ z) d$ N# D2 j
  27.       "mode": "rw",2 x1 J# t$ z6 r  q2 }/ l. D
  28.       "define": {+ s6 F7 ~: @2 g& m: L  _
  29.         "type": "int",+ q9 [( Y+ c9 v/ x- j# P
  30.         "min": "0",  B5 u/ r' Z& O
  31.         "max": "100",( O( R& _7 C( Z
  32.         "start": "0",: _% ~4 G5 A' k9 U
  33.         "step": "1",
    $ p2 |" E8 y; g, Z* T3 _
  34.         "unit": "%"! K( p; e" b8 N0 M
  35.       },7 Y- r& _9 e9 \# I
  36.       "required": false- @; h+ S1 m* G2 d% ]  _
  37.     },
    5 I+ h5 L" l' q7 A. h7 R6 S9 x
  38.     {& U0 C% d+ A7 U: n
  39.       "id": "period",# u" \" Q- J% ], T9 O) O
  40.       "name": "上报周期",
    0 ~, Q1 G! k" r4 f  n4 _7 Y
  41.       "desc": "",+ _6 W: }% w: T# d4 L+ T
  42.       "mode": "rw",
    ( w, q" a3 A) g, A
  43.       "define": {
    % W9 ]) a5 C: N  o% a+ o
  44.         "type": "int",9 L7 V5 v7 d3 }2 N4 u3 R, X
  45.         "min": "0",
    ; U& P! o3 L- T( f; a
  46.         "max": "3600",) Q; Y1 N7 L4 ]! v! p2 \* n( s
  47.         "start": "0",
    - x' }" c9 H! C' c& ^
  48.         "step": "1",
    1 ~- u  y7 s" _0 ]
  49.         "unit": "秒"
    : K5 i6 O: G, C. x9 z* d
  50.       },7 ^# L- }) o" d- V% |, j
  51.       "required": false
      ?( W+ X/ ^. _- Z
  52.     }
    # g* n5 {4 @5 v+ L5 K, o/ P6 ~
  53.   ],1 o% q) _! R3 [( D! D4 f
  54.   "events": [],
    8 j  ~! ^6 o, |4 J# A6 z+ u
  55.   "actions": []
    7 k# Z$ k' k+ F7 i* a
  56. }
复制代码

0 ^  E# g  M! K1 I
20200906132744190.png
4 k$ ~. V& M* n# M, _
8 ~' i$ {% r8 r% @2 y; T' Y
导入完成后,如下所示,然后就可以点击下一步了0 S+ f  @5 G* A6 s& e# w+ G% d" s
  l4 O; B8 e  n1 Y0 B& _
20200906133006655.png
* s0 y1 ~. F- W4 S. X

5 u6 W* f. N+ M# H$ _8 P5 s% f  r在上行数据解析部分中,填入如下javascript 代码:
  1. function RawToProtocol(fPort, bytes) {* m( J$ ?- n2 P: X3 x1 \
  2.     var data = {
    ' C# G3 a6 u: Z7 M' }3 w3 J7 m- ]$ \
  3.         "method": "report",' b: _" Y) G# p+ g5 q
  4.         "clientToken" : new Date(),
    & k' p/ I& v, r, @+ ]
  5.         "params" : {}
    1 D7 I! X( }/ R; o
  6.     };
    ( B4 ~2 r) H+ {
  7.     data.params.temperature = bytes[0];
    $ U* M- Q) E% r, l7 w
  8.     data.params.humidity = bytes[1];) q6 r0 m! ~" s4 [: E7 y$ E
  9.     data.params.period = bytes[2] | (bytes[3] << 8);
    7 ]; `2 J# M0 [1 n5 N$ ]; v
  10.     return data;' W) v" r% l+ ^. D; v
  11. }
复制代码
* C/ u" G& m9 x# Q2 y+ N
在下行数据解析部分中,填入如下javascript 代码:# D; n" j6 S% x

+ u$ U( N& h4 `' a2 b4 ^1 |
  1. function ProtocolToRaw(obj) {
    + D2 e( n& j; P: \: v
  2.     var data = new Array();7 ]7 X+ W) g; a" H- L1 B+ X
  3.     data[0] = 5;// fport=5
    6 C6 N! P. F& h# {% G  I- t2 K. s
  4.     data[1] = 0;// unconfirmed mode& u1 F  K0 n4 y, u+ \
  5.     data[2] = obj.params.period & 0x00FF;6 z$ \! [9 l1 g& u: x
  6.     data[3] = (obj.params.period >> 8) & 0x00FF;- j: k7 y% j) Y. m  A: N: j
  7.     return data;
    ! ^/ t+ r9 J/ c1 l& f1 E
  8. }
复制代码

; e& g( e9 p- k8 G# }. ~* s填入完成如下
3 }0 p3 {5 ^6 ]1 B+ x) l* N+ F: U1 }, @
20200906133509244.png

9 S4 P' R; S( w1 J; y& p& M* w5 x0 D' p# I. k
然后点击提交,进行保存: g9 u; ]# p" _5 l( p* j/ l# M

  i. `( h* W; @. s5 U
20200906133901811.png

0 P# y7 o/ b" X: P- y- I  |+ e' |4 @# J
点击【设备调试】->【新建设备】,然后输入【设备名称】: WL_DEV_001,【DevEUI】:8cf9572000004dfe,【AppKey】:1234567891234567891234567891234e,然后点击保存;6 c: ~) p: U: z3 r( \0 X" }

& c) t+ d& d" X
20200906140115117.png

& B0 R) W5 z* s# i
6 O2 ^+ d% k' h  M三、编译程序,烧录固件6 ~5 Y5 c8 J9 N! _9 G3 g" W
首先从TencentOS tiny官方开源仓下载源码
6 e8 D9 d" Q8 V7 c4 [. u
  V  ^8 M! D- `' }1 {, N8 U+ L拉取下来后进入 TencentOS-tiny\board\RHF0M0E5_STM32WLE5xx\KEIL\lorawan目录,打开TencentOS_tiny.uvprojx工程:
" [; h8 P& g8 i0 o7 _& U. `
6 ~' A$ F& I8 z9 j; {. ^9 X 20200906134551350.png # M, L- R8 x2 b4 ]$ {8 b+ {; A
$ ~, D" p0 `* m9 v5 P
接下来打开commissioning.h头文件,将DevEUI和AppKey设置的和刚才在物联网平台上的一致$ ~, M4 i1 T- K" w
5 {9 f& e' T9 t5 {) F+ P+ B* x. \% ^0 t
20200906141127957.png

( [4 p% K- R  h0 }, u3 L3 u) C2 O( H( D. G1 w( G2 F
然后编译链接下载到开发板,不过下载过程会出现问题,因为RHF0M0E5模块在出场的时候设置了写保护,我们需要使用STM32CubeProgrammer将其清除,将开发板通过STlink与电脑连接,打开STM32CubeProgrammer,将其升级到最新版本V2J35S7
+ k3 X+ F" u/ T/ O4 O; W7 m1 N6 h' I
20200906143538887.png
! L7 a6 `& p: k

( ~8 a. y+ }' Q5 ^% h' E+ n6 K升级完成后重新插拔一次ST-Link,接下来做如下操作! y* L* D& X' e0 @; n8 ^

, O3 A: P+ X( D1 c( K
2020090614395784.png
1 x, T! e. O  E+ d& d
# t% V* p9 a; h% n
然后再重新插拔ST-Link,编译链接下载即可成功:
! {, Y) T$ V5 ]; P% o* b
) U, H4 T% d( I$ ]( i+ }7 K
20200906144251679.png

' P9 H' L  q" V" ~# _% z$ G9 @0 [) X) @- H: j  Y% S! F4 [
# J0 P7 S$ \, Z# {- F2 l: n
收藏 评论0 发布时间:2022-1-4 11:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

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