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

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

[复制链接]
STMCU小助手 发布时间:2022-1-4 11:00
【TSC_WL_EVK STM32WL评估板】上手体验' G% v9 O8 u7 d3 B) o- V# L
一、前言

) X+ P$ Y$ U" Y6 Q( |最近,腾讯云加社区发布了【LoRa 社区网关点亮活动】,详情见:腾讯云物联网LoRa社区狂欢送鹅厂公仔,更有多款开发套件优惠购!
% ], k0 m. k( J/ I2 j8 D1 r2 m通过该活动的优惠价格39.9元我拿到了一块TSC_WL_EVK STM32WL评估板,评估版到手后如下:
4 ^( K( j# z% E, A0 Q1 W
2020090523083685.png
4 k! N3 f: `- K0 v" b9 [0 F* ^
: I; b. I0 `9 j/ ]5 r% v3 C% ?
接下来就是完成活动所说的 LoRa 社区网关点亮,官方提供在gitee的资料为:https://gitee.com/TencentOS/Tenc ... B_WL_Quick_Start.md7 P6 w* [3 a1 p. C4 u/ w
  o1 G% a* W0 ~
二、开发环境的搭建
( }( a1 }6 F! g首先,由于使用了STM32WL系列的芯片,所以要在MDK中添加对STM32WL的支持,
- p- U& N# F: T, z9 l$ O
0 e8 f+ a( Q% T6 [三、腾讯云IoT Explorer 设置

. Z3 u3 Z0 O$ v/ y; A6 }登录腾讯物联网开发平台控制台,点击新建项目,$ V& K4 l7 v, G6 g
% M- @4 x$ u& n3 u" n
20200906131249408.png
3 W3 E6 J4 t! I5 s

, y0 |2 m; |2 \7 m# D然后输入项目名称和项目描述,点击保存
, g/ I$ c& r4 ]- l9 n; i" d2 ]" ]2 w
20200906131451432.png

5 j  E/ t! ^9 o9 U2 k4 P# A
7 y8 H  n4 f# f) I项目新建成功后我们点击其进入( m' V" c  i: ^$ K! F

4 Q  M6 n' I) g! ?
20200906131638220.png

+ t& m8 s( a& `# j. [4 u. R: L8 i+ q' t* U3 F8 v2 i
然后点击新建产品4 ~9 c+ a& H# s% ^$ s

* P1 S1 p$ K: F& o
20200906131716387.png

& I+ M* ~+ Y$ }/ k; U1 Y
3 ^3 |: Y) D" k2 A+ ^然后填写产品基本信息如下所示,点击保存即可
- R! r% p+ y* f
' @" ~2 }; o1 ]! @
20200906131933438.png
: @7 h# ]& L6 K  f

+ @! t1 P' L; i  q1 k产品新建好后,点击进入产品,开始产品配置
6 q7 v; q2 y+ O$ i& J7 Q1 a/ ]/ K- Q2 }8 O& z) a: A
20200906132115435.png

; S+ s' D' S0 H7 F
! a- {9 s0 ]9 `% H2 k" n4 C6 C在产品配置页,点击【导入JSON】! A% T% u1 U/ ~3 h; j1 S) X

! n: b7 c2 |' C& K9 V. z
20200906132443467.png

8 l: ^! X; D8 a# |3 T! {) A7 T
% ~+ I. }# J7 X6 `; d- j填入的JSON代码如下,填入后点击【导入】即可,
9 D  R; J/ F- H) Y& h
: `# v, T7 H4 V( P0 x
  1. {
    9 d; O" N8 ^9 n5 |3 S7 J: B
  2.   "version": "1.0",
    ; t, x: e8 h) {6 ^
  3.   "profile": {" G# [0 K# F& w
  4.     "ProductId": "F2G256SY2G",) g% o2 k# l  b
  5.     "CategoryId": "1"; g  Y& {: W$ \) k7 }
  6.   },
    4 M1 \3 ~" W3 P0 w  }" u% ^" D
  7.   "properties": [4 ]7 N4 q  G" g/ d0 r5 K8 q
  8.     {
    ! [9 c9 d% y* Q& ]1 S3 q% d
  9.       "id": "temperature",' d: L% K8 j  w( ~5 x  k  Z% i" E
  10.       "name": "温度",
    ; i* C/ @+ r! k. E9 v
  11.       "desc": "",
    , P  j% e8 }1 Z$ ~; |. t
  12.       "mode": "r",
    0 e) r/ W9 ]6 I1 K6 _, Y3 l; J
  13.       "define": {
    : M1 w. Q, L8 \
  14.         "type": "int",. k' `* Y0 S. T, D/ b: I- }3 C
  15.         "min": "-100",6 g( q6 @1 |6 }) A4 Q' [
  16.         "max": "155",' w& Y1 \" R# u, g5 J4 j' K& A$ h
  17.         "start": "0",6 {6 y% r. |4 M- ?. S; i& N4 c' c4 {* C
  18.         "step": "1",
    & u8 a3 z$ t3 |: i+ x0 ^$ P
  19.         "unit": "摄氏度"
    7 t# z0 T+ F; j/ w7 z1 R
  20.       },6 v0 m  W, Z" T# q/ h; V5 U
  21.       "required": false
    # @  T# L. W! q% V  G7 R; X
  22.     },
    7 O& z5 l6 u6 m, N2 ^& T
  23.     {
    7 G( Z; b1 m4 V+ |
  24.       "id": "humidity",
    + ]+ a/ r; x' ]5 B
  25.       "name": "湿度",
    * Y& V5 j5 {+ Q0 g8 u
  26.       "desc": "",
    0 u+ I+ t* M; G  R, z- T: m
  27.       "mode": "rw",' A6 p* k! @, ^' W& H, B
  28.       "define": {5 t* I2 Z+ a8 q- O& S
  29.         "type": "int",
    " E( ]$ D( G7 `. r( n( |3 _
  30.         "min": "0",
    & {& I. V7 `! G- Q8 U; Y
  31.         "max": "100",
    9 F% W& d8 j5 @5 s% m6 |) Z
  32.         "start": "0",
    0 [3 Z( z; d& ~& W
  33.         "step": "1",4 }( O" s$ _7 ^/ e) I
  34.         "unit": "%"- j& j& O7 `9 W1 E; D* L
  35.       },; Y# a- l5 k+ {2 F$ k4 I7 }
  36.       "required": false/ k. Y6 S; }* g2 X% C
  37.     },
      h- g6 f: o  V3 Y. u
  38.     {
    - z) Y7 m) O5 e- e
  39.       "id": "period",9 T: ^( H! M; y# t9 h' P
  40.       "name": "上报周期",. o# X7 C. \: o
  41.       "desc": "",
    , s, C; h' j2 H6 x5 e) a* S+ x
  42.       "mode": "rw",2 O7 Q! B! A7 R+ N; U. m! s
  43.       "define": {, E9 s$ g; A: X% A
  44.         "type": "int",
    % C. `, F" p9 [6 _" k8 P
  45.         "min": "0",
    % e8 V9 w3 F; d0 s2 s4 n9 B
  46.         "max": "3600",
    - R. a, C2 D$ F
  47.         "start": "0",
    ; U$ {( n1 m% f  m0 {
  48.         "step": "1",- a- I  h( w+ ]2 Z
  49.         "unit": "秒"
    4 G2 `3 D( A& K3 O3 J  I& [
  50.       },
    1 |3 i: E$ |$ V' ^- O
  51.       "required": false
    ) m% N3 D& I8 O8 q+ N* H% v! o9 \
  52.     }! _3 \- F7 s6 ~" n& y0 ^
  53.   ],# H. p( g) S; W& ^- q" u
  54.   "events": [],
    . S* Z) m, x" D- [/ ]" r
  55.   "actions": []; U( f7 x' N9 y+ u" A& G/ P  ]* h
  56. }
复制代码
0 y6 h8 a0 s) w& d
20200906132744190.png

3 |5 U) `" G& G+ g! L$ u4 Z- `# _7 P( F; I$ M  ]1 {
导入完成后,如下所示,然后就可以点击下一步了& d( J- F' W9 _+ \

) Q/ t2 `) O% `
20200906133006655.png
2 F1 }3 i7 e+ z; b1 \0 w: ~

# l" S; @7 F: g# w5 n9 ~在上行数据解析部分中,填入如下javascript 代码:
  1. function RawToProtocol(fPort, bytes) {
    " _& U3 w$ r% l
  2.     var data = {
    5 Q: W$ ^& X+ u6 `. s
  3.         "method": "report",( O. {* `3 A! S/ q0 Z
  4.         "clientToken" : new Date(),
    * e, W. W( v  [
  5.         "params" : {}
    ! @, b; p* h! j
  6.     };! K4 n" Q9 _1 \+ I2 ?. ?
  7.     data.params.temperature = bytes[0];( P9 b: S8 A( R8 R/ z: G5 x* y7 I
  8.     data.params.humidity = bytes[1];  z# W2 b# t7 t7 [( G; ]5 c9 l& a
  9.     data.params.period = bytes[2] | (bytes[3] << 8);' x6 c  g: d) {! H' G- g# [
  10.     return data;
    8 g, x: v" v1 d8 s! X
  11. }
复制代码
0 X7 `7 J9 v2 \+ S5 M
在下行数据解析部分中,填入如下javascript 代码:
/ y5 x4 x# ]* B4 o4 {1 W
* ~: S$ Y' |/ B. Q) p
  1. function ProtocolToRaw(obj) {+ _$ O" f* }/ ~. h1 i% r3 r
  2.     var data = new Array();" Q9 o6 s1 G9 B
  3.     data[0] = 5;// fport=5& C  P, w. w% _8 z0 }- ^5 `
  4.     data[1] = 0;// unconfirmed mode
    . a7 B1 Y0 {5 i& `5 d$ s; A
  5.     data[2] = obj.params.period & 0x00FF;
    . c. g: u- {/ f- l6 E: R3 m/ p
  6.     data[3] = (obj.params.period >> 8) & 0x00FF;
    + f: R) M! T, b5 s( H& b1 d2 u
  7.     return data;
    2 V; w8 G6 A9 P$ `% y6 R
  8. }
复制代码
1 C/ M% z% N$ A' k' s. m  S8 j5 L
填入完成如下
$ M6 c4 V+ L" l1 T
* M! y1 ~8 f* F, P3 R: y* a1 L" o% e
20200906133509244.png
* m4 ]* ^/ d# T1 w" B
" ]& Z) t, b' X# A7 l
然后点击提交,进行保存9 c& r  X3 e* R6 o3 G3 B0 `

+ U8 v1 U8 {$ O) s7 D8 H
20200906133901811.png

% h! {4 T, b4 E4 M5 o$ X, e. C( [& }% y1 }' f% d( Z
点击【设备调试】->【新建设备】,然后输入【设备名称】: WL_DEV_001,【DevEUI】:8cf9572000004dfe,【AppKey】:1234567891234567891234567891234e,然后点击保存;
8 w! |; Q6 x% W) [
* I1 _# a# l+ `4 U
20200906140115117.png

& n  \8 x& }5 O, ?8 g3 ]  f$ g" f! v: {
: a9 J; |' ]0 a% A三、编译程序,烧录固件
$ C( j- O* O4 ?首先从TencentOS tiny官方开源仓下载源码
- h5 s; ~. @5 @8 p) V6 V$ T
2 Y: }9 g# p7 V% P8 {4 `+ A拉取下来后进入 TencentOS-tiny\board\RHF0M0E5_STM32WLE5xx\KEIL\lorawan目录,打开TencentOS_tiny.uvprojx工程:
+ C8 D8 B1 L+ Y3 U3 k6 p( a/ d$ }" L  O  a* F% g
20200906134551350.png ( |$ A9 T' |  S8 @6 R2 N' \  {

$ ?# s0 y  C; l接下来打开commissioning.h头文件,将DevEUI和AppKey设置的和刚才在物联网平台上的一致' v" c' [8 ?/ U9 N: r* \1 c
: j  ^4 l$ m+ f5 J9 |" x, `  I  V
20200906141127957.png

" o. V; e$ U0 k, c' S# b4 ]4 {* U; D' z
然后编译链接下载到开发板,不过下载过程会出现问题,因为RHF0M0E5模块在出场的时候设置了写保护,我们需要使用STM32CubeProgrammer将其清除,将开发板通过STlink与电脑连接,打开STM32CubeProgrammer,将其升级到最新版本V2J35S7
, h2 J' D! \7 s$ g1 C  @* l2 Z
! \0 C1 \' J/ z( b" r6 n/ [
20200906143538887.png

2 L1 P% M# ?- E, C/ h$ y
3 Z7 `6 d( J3 K& c; w) D升级完成后重新插拔一次ST-Link,接下来做如下操作  S" d3 `4 r0 D" I, M
, v! H( e; ^  w4 m) p8 n
2020090614395784.png
' M9 [3 R' A9 Y. g1 m
7 v6 J5 [5 x% j" q
然后再重新插拔ST-Link,编译链接下载即可成功:7 s8 w( ~* W9 I, B

' C/ W6 {+ w- U: `: a! b' c
20200906144251679.png
2 j# l% z! F! u  |8 {
/ p) |" t& z( ?) D, S
" t. Z1 {- d% @% ^) N
收藏 评论0 发布时间:2022-1-4 11:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

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