开发过程遇到的问题点笔记

2019-3-7 08:27 [复制链接] 4 561

本帖最后由 Tonny 于 2019-6-13 09:38 编辑 & }3 g9 ?: H) Q. y% h( H2 ]' w0 J+ b

0 g/ O- w) v0 j' w$ a(本帖提到的单片机指STM32F103系列,内容不定期更新。)
" ~. h9 l4 R1 _% h& C2 F6 ]" ^4 h1、柿饼串口接收单片机数据并进行解析,由于单片机默认串口输出小端字节序,故应选用类似Buffer.readUInt16LE(offset)等结尾为LE的函数,表示小端字节,结尾为BE的表示大端字节序;offset变量为字节偏移量,若单片机发送的为rt_uint16_t数据,则offset依次为0, 2, 4, 6...基本计算单位为1字节8个二进制位;函数返回为解析后的十进制数值。6 S9 F7 {7 h# G* v

- k  B; _+ ^3 s( X; k2、所有的控件名都是严格区分大小写的,如果确定逻辑上没问题,就应该看看控件名是否大小写与属性内的完全一致!在做listctrl控件时遇到的,帮助文档是listCtrl,但控件名称是listctrl,故无法达成设计目的,纠正后,顺利运行。同时thiz.setData({listctrl1 : {empty : true}});要配合thiz.setData({ net: { refresh: true } });使用,否则显示上,还保留控件列表。& j# g9 K5 i: t/ Q0 c+ W, K8 x
/ ]$ L; |( N; ]2 D
3、找到一篇关于变量作用域的文章:https://www.jb51.net/article/82966.htm
7 z' l; `/ ^* E3 W: n/ {  M& ?0 ?5 W" G! w7 e
4、在实现button跳转页面的时候遇到跳转不成功,报错  [E/JS APP] Launch: /gui/page_name/page_name.js fail!  的情况,原因为在page的  var page = {}  前有完整的执行语句,因有完整的语句,故设计器不能检测出错误,正常编译,但实际运行无法完成相关功能。猜测可能是跳转到相应页面时,不是先执行默认的 var page = {} ,故出错。
, Q( W: G. ]& J& C" g
. P& _+ b; x! o

6 f1 c: m# K' A) n+ G5、wifi的连接,connect成功后自动调用wifi.onConnectEvent()和wifi.onNetworkEvent()。同时这两个监听函数只处理屏幕与AP(例如无线路由器)之间的网络连接,与因特网的连接无关。
9 }$ U6 y* @! ?" E
/ Q' O2 T5 l- N$ [( g" A$ J( c8 d# b4 O4 Z: z
6、setTimeout(func,time)和setInterval(func,time)都是先执行time再执行第一次func。
, O! h" I3 v. ?: j

5 J+ g1 @$ }: h# P3 Z# N7、var XXX=function (){}形式的变量在函数内的定义位置必须在调用语句之前定义,否则出现调用错误。   XXX: function(){}形式的函数可以在调用语句之前之后进行定义,位置是不影响的。4 s/ q, C" h$ w" U- A/ k" V
: d& d/ ^! V0 y8 H( F
8、报错:send event to JsApp failed。原因:处理事件过多,算力不够。
' t! E9 u$ @3 ~
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2019-4-13 10:34:00 | 显示全部楼层
您学习还是比较深入的
使用道具 举报 回复
发表于 2019-4-19 08:48:30 | 显示全部楼层
DaZhou 发表于 2019-4-13 10:34
0 E; D0 @+ @* x/ k8 [4 X& U您学习还是比较深入的
& r, S: }$ Z! L. c
感谢团队的支持,耐心答疑解惑
使用道具 举报 回复
发表于 2019-5-5 09:06:23 | 显示全部楼层
字节序这里和串口无关,而是和编译器和CPU有关,如果你想以平台无关的方式传输16位或者32位长的数据,可以采用以下方式(以32位为例):
3 O1 T( e0 N$ R: Q4 E  G5 s7 _
  1. // 发送
    7 _9 ~+ y3 ^5 I* T* J% V" o2 g
  2. uint32_t data = 0x12345678;
    + m1 Z- Q5 ]! }' A
  3. send_byte((data >> 24) & 0xFF);( }, {/ W$ h9 n# t$ G
  4. send_byte((data >> 16) & 0xFF);. _8 ]! L: f* {7 Y$ Y2 @  \1 u" L
  5. send_byte((data >> 8) & 0xFF);
    : W3 d* j. C# X4 [
  6. send_byte(data & 0xFF);: D& Y- f8 {! b! z0 `
  7. : [* M. J  [# i  }6 y$ P' \% _: u8 q( N
  8. // 接收
    % P5 X, Q& q6 y0 L5 j# R; `
  9. uint32_t data;+ Z1 @2 W0 B. c( E. i$ l
  10. data = read_byte() << 24;
    + o& m4 u" c2 t) y
  11. data |= read_byte() << 16;5 P3 ]2 V: e6 ~* h) k4 Q$ B/ r/ l
  12. data |= read_byte() << 8;
    / U5 c& a5 Z7 N+ o
  13. data |= read_byte();  b( N" p8 r$ `5 C  ?1 D
  14. // data: 0x12345678
复制代码
使用道具 举报 回复
发表于 2019-5-7 10:59:02 | 显示全部楼层
Skiars 发表于 2019-5-5 09:06% [2 U6 Q/ _2 j) J0 r+ ~/ D( L
字节序这里和串口无关,而是和编译器和CPU有关,如果你想以平台无关的方式传输16位或者32位长的数据,可以 ...
3 A  n5 ~8 ]% i5 ^+ r
6啊,看来对js了解还只是皮毛,都没想到js可以移位运算,学到了
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RT-Thread开发者社区 ( 沪ICP备13014002号-1

有害信息举报电话:021-31165890 手机:18930558079

© 2006-2019 上海睿赛德电子科技有限公司

Powered by RT-Thread

快速回复 返回顶部 返回列表