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

发布于 2019-03-07 08:27:17
    本帖最后由 Tonny 于 2019-6-13 09:38 编辑


(本帖提到的单片机指STM32F103系列,内容不定期更新。)
1、柿饼串口接收单片机数据并进行解析,由于单片机默认串口输出小端字节序,故应选用类似Buffer.readUInt16LE(offset)等结尾为LE的函数,表示小端字节,结尾为BE的表示大端字节序;offset变量为字节偏移量,若单片机发送的为rt_uint16_t数据,则offset依次为0, 2, 4, 6...基本计算单位为1字节8个二进制位;函数返回为解析后的十进制数值。

2、所有的控件名都是严格区分大小写的,如果确定逻辑上没问题,就应该看看控件名是否大小写与属性内的完全一致!在做listctrl控件时遇到的,帮助文档是listCtrl,但控件名称是listctrl,故无法达成设计目的,纠正后,顺利运行。同时thiz.setData({listctrl1 : {empty : true}});要配合thiz.setData({ net: { refresh: true } });使用,否则显示上,还保留控件列表。

3、找到一篇关于变量作用域的文章:

4、在实现button跳转页面的时候遇到跳转不成功,报错 [E/JS APP] Launch: /gui/page_name/page_name.js fail! 的情况,原因为在page的 var page = {} 前有完整的执行语句,因有完整的语句,故设计器不能检测出错误,正常编译,但实际运行无法完成相关功能。猜测可能是跳转到相应页面时,不是先执行默认的 var page = {} ,故出错。


5、wifi的连接,connect成功后自动调用wifi.onConnectEvent()和wifi.onNetworkEvent()。同时这两个监听函数只处理屏幕与AP(例如无线路由器)之间的网络连接,与因特网的连接无关。


6、setTimeout(func,time)和setInterval(func,time)都是先执行time再执行第一次func。

7、var XXX=function (){}形式的变量在函数内的定义位置必须在调用语句之前定义,否则出现调用错误。 XXX: function(){}形式的函数可以在调用语句之前之后进行定义,位置是不影响的。

8、报错:send event to JsApp failed。原因:处理事件过多,算力不够。

查看更多

关注者
0
被浏览
789
4 个回答
DaZhou
DaZhou 2019-04-13
您学习还是比较深入的
Tonny
Tonny 2019-04-19
DaZhou 发表于 2019-4-13 10:34
您学习还是比较深入的


:lol感谢团队的支持,耐心答疑解惑
Skiars
Skiars 2019-05-05
字节序这里和串口无关,而是和编译器和CPU有关,如果你想以平台无关的方式传输16位或者32位长的数据,可以采用以下方式(以32位为例):
// 发送
uint32_t data = 0x12345678;
send_byte((data >> 24) & 0xFF);
send_byte((data >> 16) & 0xFF);
send_byte((data >> 8) & 0xFF);
send_byte(data & 0xFF);

// 接收
uint32_t data;
data = read_byte() << 24;
data |= read_byte() << 16;
data |= read_byte() << 8;
data |= read_byte();
// data: 0x12345678
Tonny
Tonny 2019-05-07
Skiars 发表于 2019-5-5 09:06
字节序这里和串口无关,而是和编译器和CPU有关,如果你想以平台无关的方式传输16位或者32位长的数据,可以 ...


6啊,看来对js了解还只是皮毛,都没想到js可以移位运算,学到了:handshake

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友