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

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

[复制链接]
STMCU小助手 发布时间:2022-1-4 11:00
【TSC_WL_EVK STM32WL评估板】上手体验
) f; c7 T* s8 r0 y, A' }一、前言
' U& A  L- D. P: Y1 r
最近,腾讯云加社区发布了【LoRa 社区网关点亮活动】,详情见:腾讯云物联网LoRa社区狂欢送鹅厂公仔,更有多款开发套件优惠购!; B2 X/ U; S3 ~0 j/ A( \
通过该活动的优惠价格39.9元我拿到了一块TSC_WL_EVK STM32WL评估板,评估版到手后如下:
" q! y( A+ z. y% D6 w* C0 M' p' p% C
2020090523083685.png
4 j+ l! C7 ^3 M& j) n  _$ }
3 k0 _2 j  }- d- e
接下来就是完成活动所说的 LoRa 社区网关点亮,官方提供在gitee的资料为:https://gitee.com/TencentOS/Tenc ... B_WL_Quick_Start.md
: p: y, m( \$ ?: R
8 N# T8 g' W5 D7 K1 G二、开发环境的搭建+ B0 J) Z3 X7 g' W5 M' q6 f5 Q
首先,由于使用了STM32WL系列的芯片,所以要在MDK中添加对STM32WL的支持,
' l% n' f% L9 B. g1 y2 }# I* g9 T2 v! }+ g0 }6 @/ [" b: H* O
三、腾讯云IoT Explorer 设置
# k8 H. y% g- i, |1 Y: N
登录腾讯物联网开发平台控制台,点击新建项目,) o% q1 ~. ~) z2 E

8 {2 Z+ m- e. [! }( e
20200906131249408.png

0 v2 [/ Q+ f' L* d2 R! ?0 {$ S$ N1 t  i9 q- h$ M5 @+ i
然后输入项目名称和项目描述,点击保存
3 ?. _; B1 N1 t% C; @. k7 o$ x: B+ S, Y9 V' R! D
20200906131451432.png
) R* \9 e- Y, g/ d' N* r" }

0 e& b* x2 D% P- Q* F: S6 W项目新建成功后我们点击其进入
+ r. x3 w6 w4 `6 y# W# o0 e2 Z
" ~' Q- j% f9 |& E# L
20200906131638220.png

- u# o0 G/ J. i9 F. n4 z0 \+ @2 y! ^
然后点击新建产品
5 [- I% c% ]# g8 V6 E- Q
! _5 N& @& j' C* s2 M% z* g4 D
20200906131716387.png

+ z5 Z) z  G% ?/ e, G% }/ m4 F( t4 Y+ K9 r6 D
然后填写产品基本信息如下所示,点击保存即可, z# @( E' W- d6 {  n) a

+ |: `. F4 ^7 |3 X' n5 j
20200906131933438.png
7 N- P  B7 U2 w

5 b6 |! |+ {( i产品新建好后,点击进入产品,开始产品配置/ Y5 C) |: l1 _* E- \- L. I
: S( d( t" e0 f
20200906132115435.png

) b8 W1 g" t+ @2 G6 v8 Y4 Y' D" n% M6 i2 t
在产品配置页,点击【导入JSON】
, h  I! ]' p' Z0 p
6 m3 _" x# I& M5 X
20200906132443467.png

) f; k4 r' r8 W+ b$ r- T* p! p2 m+ W1 y1 }' ^) u& j
填入的JSON代码如下,填入后点击【导入】即可,2 J! l  m. }# w3 E7 r8 t
: ?5 W# ~& D( _. l% w& R. I
  1. {. X2 j1 k; i; J$ u$ k
  2.   "version": "1.0",
    & o7 a8 U# S: x! a1 C
  3.   "profile": {
    8 c: p" @+ _. O0 ?, x3 O2 b0 D+ `
  4.     "ProductId": "F2G256SY2G",$ x( u2 G3 l( z: [  a) y
  5.     "CategoryId": "1"2 t8 p; C: [' }" O$ L0 ^' J
  6.   },
    5 B3 J' A9 {! v+ |: X5 G% A
  7.   "properties": [
    + m! [' Y5 }/ }$ J
  8.     {/ n, O" u/ m/ T( \# M
  9.       "id": "temperature",6 a7 B: z1 N9 R/ \9 H- T
  10.       "name": "温度",
    1 z9 R2 I$ J( S$ R# Q
  11.       "desc": "",4 ]5 }) \" z3 b
  12.       "mode": "r",
    ! A/ v1 l: q$ S8 ^) Y
  13.       "define": {0 L' ]+ g# ]) Z) o
  14.         "type": "int",
    6 j$ c: z; p4 _/ ^2 p8 e
  15.         "min": "-100",& Y/ f8 I, t: p4 W
  16.         "max": "155",
    4 j" ^1 y; S( U9 H0 m8 S( t* R  Z
  17.         "start": "0",7 C0 \* k: d( w, A" ?7 k
  18.         "step": "1",
    ( j- @* K" d3 M5 ^: @7 H
  19.         "unit": "摄氏度"+ ?% N5 E" i8 ^0 X; }4 |
  20.       },- I3 M. c' d7 P8 |
  21.       "required": false
    ( K# [+ ]5 `3 v9 F5 i9 Z; k2 K6 {
  22.     },
    & T; n# x) l0 B5 x, p
  23.     {, K, b* }  J$ O5 p- _2 K
  24.       "id": "humidity",
    ) {; a' n$ O1 V0 N1 M
  25.       "name": "湿度",, k' O9 y, o0 a" x5 W
  26.       "desc": "",0 @7 I) n: _$ N  |3 a
  27.       "mode": "rw",
    $ b, C1 o4 V" g% L: z- ?) j6 L
  28.       "define": {, q- f* H: p; I, Z' ?3 ?, t
  29.         "type": "int",. R' f6 E" m, v& b3 Z/ `$ i
  30.         "min": "0",
    ' _" Q$ B: L9 D; P7 t$ o$ C
  31.         "max": "100",
    $ {4 L% I8 T; @! F* v0 `1 e
  32.         "start": "0",9 [& D8 W1 z4 ]" ]7 a  S$ u, e
  33.         "step": "1",  g  ]0 O3 d( R6 \
  34.         "unit": "%"0 S; P4 k+ f! {! M* A
  35.       },
    ; D8 {# O& f8 T3 S& f: ~
  36.       "required": false
    % I3 H/ i6 ~6 B4 A
  37.     }," x( p1 h% y$ Q
  38.     {
    # @3 v) X9 P, t; i3 K% U9 j
  39.       "id": "period",
    5 r3 D4 X' ~! l8 [# V
  40.       "name": "上报周期",$ a& v3 N8 J3 y5 s  l
  41.       "desc": "",, T6 [$ G+ x+ c8 F4 g9 V) `$ p( u
  42.       "mode": "rw",
    & j/ R$ m% J& B6 L8 x
  43.       "define": {
    * w* }1 i3 |8 L/ @# b$ [- v
  44.         "type": "int",
    # ^3 `$ E8 V2 V8 i  r; b
  45.         "min": "0",) n; S/ I* t' Y% V1 [! [
  46.         "max": "3600",9 K' |. G4 H' ^# c/ s0 [8 e0 h# o
  47.         "start": "0",
    ) _$ u+ K1 F; u) E& e
  48.         "step": "1",7 g. F) w3 T& F9 x- h# T% j
  49.         "unit": "秒"
    , Z+ T' G! ~4 J2 |" x3 A
  50.       },
    ; C1 T  d& z+ R5 K( m
  51.       "required": false
    . H% x% ]! J# s- J, n0 I7 Y. c8 Q
  52.     }
    + i  d# {  F7 w. D; R
  53.   ],# S  ^5 f' |$ ?" \$ S5 ^
  54.   "events": [],
    " K6 J! A5 Z8 _7 G! B2 D# S
  55.   "actions": []& R, S! `, E' V5 b6 z6 r6 z5 ^
  56. }
复制代码
/ }" j5 Y6 c% g7 x: i" b6 i$ ?
20200906132744190.png

7 g" e+ L! T6 `' A! ?6 v
7 R- i# W5 X, e/ l2 l6 y; Z导入完成后,如下所示,然后就可以点击下一步了
  i. ]* S- I, q# R. ~. o" H6 X4 U; j8 q! F3 o: J0 }" H
20200906133006655.png
0 W! h5 e- i! s/ ?

  G4 M- A% d" h" }  X在上行数据解析部分中,填入如下javascript 代码:
  1. function RawToProtocol(fPort, bytes) {
    ) I6 `& x& ]" Z$ V. ]3 h9 \" p$ l& ]
  2.     var data = {
    + f- U9 ]) m0 X# v' A$ S  A
  3.         "method": "report",
    2 @+ a/ {2 R" d0 e9 U
  4.         "clientToken" : new Date(),
    . d, B5 ~+ q& Y5 A0 X2 ^, x# b. t
  5.         "params" : {}
    8 I9 h4 F/ ]& ~/ F
  6.     };/ Y( _6 k- J% U2 L  F, ]; c
  7.     data.params.temperature = bytes[0];
    3 o' M% `; I% _9 w
  8.     data.params.humidity = bytes[1];6 V2 Z# U( n. h
  9.     data.params.period = bytes[2] | (bytes[3] << 8);
    9 `; y, p/ [9 x  L) u
  10.     return data;- ~! ?1 J2 @. y! M
  11. }
复制代码

, a* I: t+ i% f7 y在下行数据解析部分中,填入如下javascript 代码:
: ]" C, X- ~' ~. s
4 j( d3 H; x8 }& G- X
  1. function ProtocolToRaw(obj) {
    ) B$ Z  C- v6 \4 f; u9 i
  2.     var data = new Array();2 A" \  }8 y" U- j
  3.     data[0] = 5;// fport=5
    , u* A1 z& k% y1 p/ ?- C8 o% b" K+ B
  4.     data[1] = 0;// unconfirmed mode% c- A, ^6 S9 P! E9 U! e8 }
  5.     data[2] = obj.params.period & 0x00FF;' U# W, t1 y4 U2 c( X6 x4 A
  6.     data[3] = (obj.params.period >> 8) & 0x00FF;
    7 D( `1 _# w% x
  7.     return data;
    / \' k# h7 C/ r* F: z9 j
  8. }
复制代码
, o5 j, {7 Q6 F" v5 x
填入完成如下
9 J9 I( Y+ ^& O, C8 o% @6 `  z0 C! o3 |
20200906133509244.png
9 N& Y. O+ z# Y& F5 n( Y

2 i, I# |  w0 h1 M- ?然后点击提交,进行保存
. _' `- Q) C, A' M0 ?/ X+ i9 X& A' d6 m4 x" b
20200906133901811.png

2 k) f) m. k6 s; C( j" h( |
3 D- }2 n2 m% \% z点击【设备调试】->【新建设备】,然后输入【设备名称】: WL_DEV_001,【DevEUI】:8cf9572000004dfe,【AppKey】:1234567891234567891234567891234e,然后点击保存;$ c. J, J8 C2 H
3 Q+ H  m; f, W: j: C; f
20200906140115117.png

) y6 i2 d/ M6 ?3 u2 u1 p; T: v0 o5 x1 t0 |3 o' {
三、编译程序,烧录固件6 C; ^) K2 o  T( V  L$ g
首先从TencentOS tiny官方开源仓下载源码
! m, V# L* q/ @
: ?# I, ~- X1 V+ Q1 i$ c拉取下来后进入 TencentOS-tiny\board\RHF0M0E5_STM32WLE5xx\KEIL\lorawan目录,打开TencentOS_tiny.uvprojx工程:
, k+ q3 N, Z+ v! @
  }$ l' C- {9 r) q 20200906134551350.png
2 [$ X# M+ a& B
; L5 t: |) \0 T: w: C4 R# G) \' D接下来打开commissioning.h头文件,将DevEUI和AppKey设置的和刚才在物联网平台上的一致3 i0 x6 a- Z# ~' g) Q
8 e$ |5 W1 U! u' H9 J0 q5 C
20200906141127957.png

2 w: w. W; l# v
) X% Q4 e: D- }& w6 U& _7 k然后编译链接下载到开发板,不过下载过程会出现问题,因为RHF0M0E5模块在出场的时候设置了写保护,我们需要使用STM32CubeProgrammer将其清除,将开发板通过STlink与电脑连接,打开STM32CubeProgrammer,将其升级到最新版本V2J35S7, O! T& f% m( n8 w- j$ ~- }
7 F6 J# C% X/ I
20200906143538887.png
2 n7 r+ p2 n6 B8 i

: J1 u( c4 l2 B+ h; ~升级完成后重新插拔一次ST-Link,接下来做如下操作; k) ]0 }. p+ Y2 T/ H, }  h0 R$ L

- d) y3 ]7 c" z9 Z" n
2020090614395784.png
* o9 r% f- [5 y6 y, o

& m: T- v! r) P. c然后再重新插拔ST-Link,编译链接下载即可成功:8 W* D& \7 v+ g* r

( y6 D+ P- f7 V: i
20200906144251679.png
9 u( p7 s" H! T/ B2 b

+ Q) Q: m9 v' n/ n7 S) g& Z9 V& m0 D# p' x- t8 S9 ?
收藏 评论0 发布时间:2022-1-4 11:00

举报

0个回答

所属标签

相似分享

官网相关资源

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