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

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

[复制链接]
STMCU小助手 发布时间:2022-1-4 11:00
【TSC_WL_EVK STM32WL评估板】上手体验  q2 U) u' U. ~" n2 V/ i
一、前言

  J) k- C' d- U. W1 Q最近,腾讯云加社区发布了【LoRa 社区网关点亮活动】,详情见:腾讯云物联网LoRa社区狂欢送鹅厂公仔,更有多款开发套件优惠购!
6 c$ ~; V2 Q" N( |通过该活动的优惠价格39.9元我拿到了一块TSC_WL_EVK STM32WL评估板,评估版到手后如下:0 b# A1 d, V3 e5 m# ?9 K& L7 r, S
2020090523083685.png
# r) z1 z2 m5 b+ `: E8 {2 W+ ~! z3 @+ S

0 F7 w* v: I, D& r接下来就是完成活动所说的 LoRa 社区网关点亮,官方提供在gitee的资料为:https://gitee.com/TencentOS/Tenc ... B_WL_Quick_Start.md  v! X0 A/ f  B  w
+ k: ?6 l& [6 X/ x, g, c: U+ \
二、开发环境的搭建
( U/ f& k* L. w首先,由于使用了STM32WL系列的芯片,所以要在MDK中添加对STM32WL的支持,; |2 l' N: B. \9 n# l
4 p6 |+ r" T8 ~2 c  c5 W5 {" J- ~
三、腾讯云IoT Explorer 设置

$ \' h- m& N( F" @8 I登录腾讯物联网开发平台控制台,点击新建项目,
, K+ j! `" d# U
( A* b2 s' h/ ]8 t+ l
20200906131249408.png

( ?* J- B! ]1 |6 \7 C$ M, e3 u- m" d, y; L  K  \, d
然后输入项目名称和项目描述,点击保存
. A  a! c/ D/ i. P* f
$ q' E& z: @0 J9 l  V+ ?
20200906131451432.png

" w9 ]; N8 N+ P# w2 t9 g6 P+ e9 w; c6 S/ Y
项目新建成功后我们点击其进入
( x; r2 Z3 q3 p. k+ Z7 q
. U5 S% u. B9 p% s+ _
20200906131638220.png

6 u- K4 a! P- R6 I' w
! h# E" o6 c0 d! W$ h% o9 ?然后点击新建产品* w4 C& U5 i7 w" A8 [4 s

4 x: J3 p0 W: h$ z% k# K/ X6 i
20200906131716387.png

/ b- F* F5 ?2 m  G; R" ?. e5 P9 b* n' m+ e% ?- V/ |4 j$ w
然后填写产品基本信息如下所示,点击保存即可
, g' R2 K1 Q! i
: Z$ i' x* O& m' R6 G5 N$ j( F* u  _
20200906131933438.png

- z5 w2 e2 Q  p& A7 v- f: d% B* k
- v" D" {9 ?0 [' g7 A产品新建好后,点击进入产品,开始产品配置
# _* _4 P# j( C1 U8 U
6 i6 d* W- N: y; `# Z6 w' B
20200906132115435.png

" b# v# {6 c8 _! \3 g8 b5 `% d' m4 E# P2 f; I/ s# p
在产品配置页,点击【导入JSON】
' x  X7 u# ]4 y% d' W7 _2 K3 p9 r' c# E4 F
20200906132443467.png
. a3 I# }9 M( |
' F+ M5 z# U/ E) B
填入的JSON代码如下,填入后点击【导入】即可,
' ?9 w! P8 r# l7 o" H7 ~) ]: f$ v5 x  m, r! Z* M! W2 R* w5 p7 a
  1. {
      F! p; h' y# c: x
  2.   "version": "1.0",9 S: j7 c- ?( x6 u) u
  3.   "profile": {
    - K( ^; _) j8 ~1 C* u8 x
  4.     "ProductId": "F2G256SY2G",' g. ]5 O4 V# n1 T
  5.     "CategoryId": "1"
    " d( A( K) u) A
  6.   },* {* K+ u' w+ m  f- B; [
  7.   "properties": [3 ?6 f, K, ?' L4 W8 S1 y1 B
  8.     {
    2 q7 [, d% P  b7 g
  9.       "id": "temperature",
    6 ~; E; O; N6 v* E* E. o
  10.       "name": "温度",
    - b1 z4 X2 {# L
  11.       "desc": "",
    : K1 ?& L" S( I; K( O
  12.       "mode": "r",, A6 f; ]5 U. E2 C2 \- L5 \4 d( Z' g! I
  13.       "define": {. V$ y: z1 d) C% e: e9 [
  14.         "type": "int",
    4 b5 L) g& @: Z% N
  15.         "min": "-100",5 J+ G/ G) L1 h
  16.         "max": "155",) l' r! G' Y# p3 M! W4 o& M$ R* _
  17.         "start": "0",0 o% G* ?; d% |  d) b
  18.         "step": "1",/ \- z* h1 ]5 Q" x. F4 F6 s
  19.         "unit": "摄氏度"
    # `. |: k* K) m! C! a: z5 j
  20.       },
    : @8 r; _' {9 i7 q2 ]
  21.       "required": false' ]1 l) X' t& l1 |  F/ r
  22.     },. U' d/ j" R7 p! _
  23.     {
    " _. Q8 W% U( Y) Q# A
  24.       "id": "humidity",* v$ H* f/ }; ]9 \# m5 q5 a
  25.       "name": "湿度",
    / _0 K+ p& {8 X5 p1 N2 x/ y
  26.       "desc": "",: G$ [9 ^5 c: W6 w( O
  27.       "mode": "rw",
    # w7 @9 A6 q9 V0 M8 _& t
  28.       "define": {
    6 F% l# B' B/ n
  29.         "type": "int",
    3 K2 n2 a2 \( U4 p  {) D
  30.         "min": "0",
    & _% @) o5 w' w
  31.         "max": "100",
    # Q$ S* `8 w$ v) J
  32.         "start": "0"," ]- Q9 @* w; s7 V
  33.         "step": "1",! F) x. Q% Y, t, H
  34.         "unit": "%"+ |, [4 R! V4 S2 O6 m' }1 }
  35.       },6 t' C4 M# N# {6 O% D, c
  36.       "required": false
    ! h; d) G% E1 O7 ]. F9 Y' W
  37.     },
    ( o8 v8 ~& w* a
  38.     {
    , O3 T, J% \& D. u
  39.       "id": "period",
    ! d, C. M) I1 b& t  Z1 Q4 l
  40.       "name": "上报周期",
    6 Y8 L5 W% k( R3 g/ \6 o4 t
  41.       "desc": "",2 i1 a8 A' _9 ?* k: ]+ @5 g  `4 M
  42.       "mode": "rw",7 c, x% ~5 S* S# P6 q
  43.       "define": {. r0 `% ?. Y- y& T) a
  44.         "type": "int",
    4 {) K* N* h/ |7 l, Q0 w
  45.         "min": "0",* Z/ b' T6 l  }; e
  46.         "max": "3600",
    " K: Q) e# x4 {% P% E2 F
  47.         "start": "0",
    4 q( b6 r8 M6 }5 i2 L( z
  48.         "step": "1",
    % ]9 }* ~# ^7 @
  49.         "unit": "秒"3 ^- T! e' `7 n; B" a
  50.       },. [" b9 \" c3 h. j% D: H4 f
  51.       "required": false
    3 z; Z. ^6 N7 ], S
  52.     }
    6 ^( h; f' ~! B$ u' t& u4 i: S
  53.   ],
    : k/ _. c2 [  r% k& V8 Z
  54.   "events": [],6 p* K5 P( k/ K6 V7 L7 I! \
  55.   "actions": []$ W+ ~; M+ N5 p
  56. }
复制代码
' J$ H7 D0 r0 t+ E9 O* X: o4 T+ M. V
20200906132744190.png
% }" p/ s9 W9 g; A. r
# A5 [/ V0 R# h
导入完成后,如下所示,然后就可以点击下一步了
. c( |6 R* B# w4 j( g- L4 L, E- y( \9 ?' i
20200906133006655.png
7 r4 H5 m7 v% Z8 p6 Y8 \
; L, I8 J2 [! ^6 w+ p2 T
在上行数据解析部分中,填入如下javascript 代码:
  1. function RawToProtocol(fPort, bytes) {
    7 Q7 s, T2 _8 R/ \
  2.     var data = {
    . I" J6 h* W+ W1 H' v3 N- o: `; _
  3.         "method": "report",; d2 ~% W" V: u( Z1 K7 i
  4.         "clientToken" : new Date(),
    $ C* {# N4 J( A0 F3 V
  5.         "params" : {}  [, Z1 \" V; _+ C& J" s: F
  6.     };6 v' P; j  `/ o( w/ G0 L6 W
  7.     data.params.temperature = bytes[0];: \, a; u- n: @7 S) D& L& m& L: f& o
  8.     data.params.humidity = bytes[1];9 z: A( V. {! C% d/ X6 v5 a! x
  9.     data.params.period = bytes[2] | (bytes[3] << 8);
    4 T8 ]+ \" g& u1 ~
  10.     return data;9 O% ~8 y0 u8 k& \8 c* n( P& g  F
  11. }
复制代码

' l7 w" e' H8 r$ @! f+ {0 S在下行数据解析部分中,填入如下javascript 代码:# }+ X& [: H& w- M8 t$ [8 N( s
7 m* T( D) ?7 h$ ~, ]1 r
  1. function ProtocolToRaw(obj) {
    5 o1 L5 t/ |  w9 z; M3 {5 N; Y9 I
  2.     var data = new Array();
    3 |" P# b8 Q; f: l2 @
  3.     data[0] = 5;// fport=5- P  }8 L% P- z; q' p5 w2 _
  4.     data[1] = 0;// unconfirmed mode- h" i  s( z* l9 t
  5.     data[2] = obj.params.period & 0x00FF;
    ' ~  I/ {& x6 Z3 P. |$ j: Y
  6.     data[3] = (obj.params.period >> 8) & 0x00FF;
    3 d- n' B1 p5 @2 w
  7.     return data;  g: w: ]& m: z  w& z9 n
  8. }
复制代码
( b8 j7 ?/ P- |; I
填入完成如下: G, |( j8 z8 K
2 a" A! |- @9 ?$ a* `
20200906133509244.png
3 Y% G2 b3 [: o# ^; B- y

9 f3 u/ x" B3 L然后点击提交,进行保存0 h: H5 O4 }# c* S1 o

; O& B5 E6 ^; s- A5 G: [6 A* X3 v! `
20200906133901811.png

  l/ v7 Q' K& }) H3 `0 a' r6 L0 g" _- {( @9 c* Q
点击【设备调试】->【新建设备】,然后输入【设备名称】: WL_DEV_001,【DevEUI】:8cf9572000004dfe,【AppKey】:1234567891234567891234567891234e,然后点击保存;
) H# F; l9 n' W  j& \
3 k, a" e6 X7 P0 U$ c& k/ }. y. u6 Y% o
20200906140115117.png
+ ^0 d& l0 I' y! Q. O

9 u! |/ l3 @# c& r三、编译程序,烧录固件
) z/ |- K  {7 [& ^& o  q* Y首先从TencentOS tiny官方开源仓下载源码$ N" ?* B3 V( ]; P

: A: H. Z; V! H" b拉取下来后进入 TencentOS-tiny\board\RHF0M0E5_STM32WLE5xx\KEIL\lorawan目录,打开TencentOS_tiny.uvprojx工程:
5 U7 ?4 C4 y) e/ M0 I4 [
6 i) ^+ Y5 M4 v 20200906134551350.png
% B$ q* g. X1 X+ {/ c! [6 l6 K- |3 B( P& u& m  d3 M
接下来打开commissioning.h头文件,将DevEUI和AppKey设置的和刚才在物联网平台上的一致
* r% s6 G# _7 U/ X4 \% P5 U; \
+ {8 I( ^! o3 h( w) |2 {1 Y
20200906141127957.png

! g* x& b/ r& r, ]- R+ E
  H0 ^8 v/ e6 ?* {) j: S然后编译链接下载到开发板,不过下载过程会出现问题,因为RHF0M0E5模块在出场的时候设置了写保护,我们需要使用STM32CubeProgrammer将其清除,将开发板通过STlink与电脑连接,打开STM32CubeProgrammer,将其升级到最新版本V2J35S7* ?$ @, A+ `& d$ b+ u, T( ~! h

" M9 o+ w$ Y. C5 v+ z+ `" y
20200906143538887.png
) N* R, N4 Z7 [9 p2 o( z4 I
) k) @3 ?  G4 X9 i& h6 o6 ^; u
升级完成后重新插拔一次ST-Link,接下来做如下操作0 V$ m9 M  w7 N3 V4 X
9 s/ i  Y' `/ a: D  R
2020090614395784.png
, A% |) k5 u% U0 U& f: z

# K& E+ K2 I- D9 d3 Y6 B然后再重新插拔ST-Link,编译链接下载即可成功:
& `& z- o& M' V1 v' v8 w7 H5 @1 ?( L# m/ Z- r
20200906144251679.png
" Z# b7 }' y) E) J* ~1 q/ J

# s  ~" c* o* ]- m, T, K  P
9 O5 a; ]5 K. f" G$ H8 q$ A
收藏 评论0 发布时间:2022-1-4 11:00

举报

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