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

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

[复制链接]
STMCU小助手 发布时间:2022-1-4 11:00
【TSC_WL_EVK STM32WL评估板】上手体验
3 f/ p* J- Y4 m$ j" Q. L9 T) z9 O4 V一、前言

# ?( l$ d+ C8 `4 D/ D! \) |最近,腾讯云加社区发布了【LoRa 社区网关点亮活动】,详情见:腾讯云物联网LoRa社区狂欢送鹅厂公仔,更有多款开发套件优惠购!
. b8 M0 g- M: t7 [, [0 B* q2 B4 i4 ]通过该活动的优惠价格39.9元我拿到了一块TSC_WL_EVK STM32WL评估板,评估版到手后如下:# _' k8 r3 L6 D3 s3 ^, U" p7 P
2020090523083685.png
( b4 S% L+ n; c+ S

. \# r, Z0 E8 v' o接下来就是完成活动所说的 LoRa 社区网关点亮,官方提供在gitee的资料为:https://gitee.com/TencentOS/Tenc ... B_WL_Quick_Start.md; [" o3 N0 r3 K7 K. V7 c

. E4 @7 d! k* U2 @二、开发环境的搭建" f$ \/ j9 ~$ I7 c, |, [! P4 Y& T8 L
首先,由于使用了STM32WL系列的芯片,所以要在MDK中添加对STM32WL的支持,
; F) {) ^. P8 r& @% k2 D  G  h5 v! R% m! j- D7 m# w" a7 i. V8 ?- c( C
三、腾讯云IoT Explorer 设置
+ P) `8 G6 x7 K; \4 x
登录腾讯物联网开发平台控制台,点击新建项目,
" I# b% R$ K" ]- u5 k/ x( e% O9 I8 k& K7 i% H3 S7 _
20200906131249408.png

7 a) D) n8 d$ {/ b* V/ ?3 x) [; M; ?
然后输入项目名称和项目描述,点击保存# @" r' a7 T5 l5 L9 a5 M

3 n" r3 Y! ^( i* ?9 g) H- t
20200906131451432.png
+ g/ J  W5 G; e
; e! v9 Q/ ]( H! Q) R9 [7 X; ?
项目新建成功后我们点击其进入0 r" ^$ ]* `* j* g$ H  Z
: p  M/ ~/ m: k
20200906131638220.png
* E  Z1 N' \" O  c

/ M+ J0 t4 e' e, C, ~然后点击新建产品
/ {" b' i& V  e  L% x3 V/ P& a
20200906131716387.png

' @& t2 s7 Z" j3 t2 {. f+ |" o: v( N; u8 @+ A" Y2 b1 `. e" f4 \
然后填写产品基本信息如下所示,点击保存即可- b, I# G6 _9 d5 |8 w( X  I& b

- Y/ j' G9 T7 d* ]* m. w5 @
20200906131933438.png
4 b$ C6 z- U' ^& q* G5 @5 u# F5 s

! ]  o$ p3 J% o' M产品新建好后,点击进入产品,开始产品配置8 W) `0 D' o4 Q2 f% u5 @

: ^3 O5 h5 g" v% j8 s
20200906132115435.png
! e* [9 j) V- u( o/ E6 W5 {
! \& e5 t( u- K+ M* H) a
在产品配置页,点击【导入JSON】
# v" m  f" Z" ?) u
9 k+ E% d6 w0 |0 _* K
20200906132443467.png
* p$ L. n4 }! p6 q" u

) B9 ]; W' O. f- B3 k4 N填入的JSON代码如下,填入后点击【导入】即可,
! U# {. F# L' c5 s7 ?
7 b# d4 Z, F7 i+ h1 ^9 Y
  1. {
    8 k2 p. a% p4 f) n( s: y0 Y! d
  2.   "version": "1.0",0 O- E+ `( C/ ^% j8 o: C  E
  3.   "profile": {
    8 h" @7 r/ y% U
  4.     "ProductId": "F2G256SY2G",
    : o7 T) F6 D7 m4 W" A+ c' g* W
  5.     "CategoryId": "1"
    5 y' I* i) F8 L" j% s  b
  6.   },4 S1 b6 z- ^; m$ V
  7.   "properties": [4 j* ]& |- R7 R  P
  8.     {
    ! o8 x. d  i* [  {1 S" Y
  9.       "id": "temperature",
    6 E$ b9 P+ N: n: ^8 N" l1 g$ p
  10.       "name": "温度",
      ]: P! y1 e7 [
  11.       "desc": "",# V# O2 z: M" ^! C2 l& t
  12.       "mode": "r",- j6 T* B. s) O5 S- k9 w1 ^
  13.       "define": {
    ; C& P3 W" ?0 U" b9 `
  14.         "type": "int",: n* E4 h  \/ X% S
  15.         "min": "-100",
    7 h0 l) d& R8 }
  16.         "max": "155",2 W+ D3 ^/ d( q% R
  17.         "start": "0",6 f# \1 G5 q7 I! Q+ j& X
  18.         "step": "1",* O. @, ]" M# \9 {' p
  19.         "unit": "摄氏度"& _: \+ X% W8 T' x
  20.       },! e/ y8 `1 m- \  c
  21.       "required": false
    3 j; c( ^* w0 v8 c$ E
  22.     },
    % b. B0 Q* Q9 w. O- Z6 D( k  U! |
  23.     {5 ]( w0 r" \) J2 M$ ^* X2 M
  24.       "id": "humidity",
    2 @8 d4 _9 a+ F0 k7 c( g* n
  25.       "name": "湿度",. W2 V# R% n& ]# @/ M( H* }3 E
  26.       "desc": "",- u( j4 d$ e& k3 i# ^
  27.       "mode": "rw",% e. Y/ K0 [" o" a
  28.       "define": {0 \0 R% m. I7 K  K) B9 i
  29.         "type": "int",
    0 P0 `& w1 h" g: n- S) z
  30.         "min": "0",
    ' @) V! a8 i9 k" W- ]: N
  31.         "max": "100",
    , S# K, [& B% I! w4 r% o+ X7 A
  32.         "start": "0",5 y- b3 F2 v6 D4 Z
  33.         "step": "1",. ^3 U; s1 c5 f- l! E
  34.         "unit": "%"+ d( x2 C  \, C  A
  35.       },
    3 u4 T( U" d5 ]. i) c  T
  36.       "required": false3 v  K& s( r: v' F/ ]0 r
  37.     },5 @9 X5 [, P9 P
  38.     {# z& v( M: Z" y7 y1 @: D
  39.       "id": "period",
    5 D3 J7 }0 }; V% O4 |8 t
  40.       "name": "上报周期",
    ( |7 }# t# J1 l) j1 L
  41.       "desc": "",6 y2 `# @- Q6 q. m( G
  42.       "mode": "rw",
    8 z9 Y% c( F0 S$ A3 y9 _! f1 {6 k' l
  43.       "define": {
    5 c  D; j$ y, h. s
  44.         "type": "int",
    * ^. ^: I8 B, K) z9 m+ K  w3 [
  45.         "min": "0",* B0 Q/ V+ j& G
  46.         "max": "3600",
    3 j" q( {% p1 l# q. t$ N4 f
  47.         "start": "0",+ `/ _& j5 y( s
  48.         "step": "1",
    . O* c  w0 n4 y  d2 `
  49.         "unit": "秒"  l: c8 S1 w0 F) Y! P4 S
  50.       },
    ; a$ y$ C+ L# ?" L, n+ _. w1 X& {
  51.       "required": false
    ' g9 g+ C1 u  q8 w
  52.     }
    9 U" j/ B; G- F: Y# ~
  53.   ],
    1 o, L2 U9 |4 n; ?8 }  f
  54.   "events": [],; C4 @& I6 R& J3 v7 n* g
  55.   "actions": []
    6 \- @( f3 K' F$ P; [7 ]( o. `
  56. }
复制代码

* X% K, M* O( d7 z& H; Z& T# B7 [
20200906132744190.png
$ }& B3 L4 a- i9 g9 o- r2 l, y
3 h7 B4 f" h' ]1 P
导入完成后,如下所示,然后就可以点击下一步了7 T, D1 ^5 ?% \# p
; H# s8 k% u  K/ }1 i! l# J4 r
20200906133006655.png
% ?' r( U& `2 A; O; }
6 ]' M; U2 b( C* v: q4 K( u
在上行数据解析部分中,填入如下javascript 代码:
  1. function RawToProtocol(fPort, bytes) {
    5 a$ n! _' M" o$ E
  2.     var data = {
    ! o9 o' ]+ j$ P4 R' d( A
  3.         "method": "report",
    5 K5 Q, |: S' g2 u6 Q* @7 |9 z
  4.         "clientToken" : new Date(),
    3 i: E1 T! o" h- ~! v6 {
  5.         "params" : {}
    , W5 e$ F! G3 b+ x
  6.     };
    3 r: [9 k$ h. g1 @8 X9 K
  7.     data.params.temperature = bytes[0];
    $ w2 t$ _  D. j' p1 ?
  8.     data.params.humidity = bytes[1];; d5 V1 x+ W3 s& f* O
  9.     data.params.period = bytes[2] | (bytes[3] << 8);! _2 _* M4 ^/ X4 I
  10.     return data;9 j9 N! ?2 N; T) x4 J) I! |
  11. }
复制代码
4 b4 b$ L% M* ^: }4 d( N
在下行数据解析部分中,填入如下javascript 代码:  G2 p! E) V5 |# L+ h

! F7 F# U, y/ s/ I0 A
  1. function ProtocolToRaw(obj) {
    3 b% g, K: H  R/ G3 d( U, G# a  N
  2.     var data = new Array();
    * U# p& {) a$ l8 w" F8 c
  3.     data[0] = 5;// fport=5
    ! x$ L/ S2 z( I1 h6 F& Q
  4.     data[1] = 0;// unconfirmed mode
    ' D8 F" R6 j- D! [( p  w. D
  5.     data[2] = obj.params.period & 0x00FF;
    : Z  G5 `$ i. O3 p9 V/ ^8 I
  6.     data[3] = (obj.params.period >> 8) & 0x00FF;  i" v8 \0 }7 a1 ?
  7.     return data;6 P1 P5 ^$ P! O7 T6 ]) j
  8. }
复制代码
3 |0 q8 z! m  ]& V
填入完成如下; [: ?" l1 O3 h0 E4 m4 F0 {
. ^5 I- c6 o$ v$ H; h3 j0 Z7 e
20200906133509244.png
! y$ H: N9 I; y
3 ]% }# W4 o6 z3 m
然后点击提交,进行保存
4 k- u' T, b- w3 @+ ?3 k
) |9 r: x2 H3 c% C& F, p% b
20200906133901811.png
* G2 E' {8 ~" J. S
; }* ^7 Q7 l' Z7 e
点击【设备调试】->【新建设备】,然后输入【设备名称】: WL_DEV_001,【DevEUI】:8cf9572000004dfe,【AppKey】:1234567891234567891234567891234e,然后点击保存;3 C% y; g1 x" x  s( ]: f
9 o! I6 q/ @' [4 b: J- t
20200906140115117.png
7 K" x" K8 [7 Z* ~/ }+ G; ?

; g/ L6 C4 k: O9 k" ~# E三、编译程序,烧录固件/ I( E* |1 B' [2 h$ B
首先从TencentOS tiny官方开源仓下载源码
6 C6 R3 i) P. s4 u" P" I4 [! a
) [6 }1 j1 j5 K7 p/ T拉取下来后进入 TencentOS-tiny\board\RHF0M0E5_STM32WLE5xx\KEIL\lorawan目录,打开TencentOS_tiny.uvprojx工程:
8 K0 ~" B/ s( D" P, `4 k; M5 x- o, K( o& B0 J% J$ p
20200906134551350.png
* I) I- B, Z# U6 b9 m  F* f; T: {6 R& Q
接下来打开commissioning.h头文件,将DevEUI和AppKey设置的和刚才在物联网平台上的一致
% H/ ~' s2 W+ P* `# x
. r6 U" I' I0 s, q) r- _$ E. r7 ]& `5 {
20200906141127957.png
% F" k# B" G! p1 i, @
) n$ G" s! x  G. D9 f
然后编译链接下载到开发板,不过下载过程会出现问题,因为RHF0M0E5模块在出场的时候设置了写保护,我们需要使用STM32CubeProgrammer将其清除,将开发板通过STlink与电脑连接,打开STM32CubeProgrammer,将其升级到最新版本V2J35S7' X4 a) z4 K) f! I" p( R' J
1 d: l# a# L) }0 V1 n; c
20200906143538887.png
5 @, E2 l7 d) Z) a7 ^. j; J

* ]0 b3 k: |8 e) c  i升级完成后重新插拔一次ST-Link,接下来做如下操作( {  ^. R4 _/ B+ o
' s5 M$ w6 X+ W/ x( d2 z
2020090614395784.png
1 ?8 g0 A9 O, C  Z4 C. v; \; C

/ p8 M& ^5 u( c' w6 J然后再重新插拔ST-Link,编译链接下载即可成功:) i9 c5 i$ z( R& _
" h9 O+ |1 o$ c. \* _7 f' Z
20200906144251679.png
) |5 ]5 K8 @( @8 S! h( n; }

* I( l+ }+ v2 V/ h1 P* G/ ~7 M% j6 @9 Y2 C: F
收藏 评论0 发布时间:2022-1-4 11:00

举报

0个回答

所属标签

相似分享

官网相关资源

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