问题标签 [mbed]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 由于 memcpy,mbed 网络服务器崩溃
我使用 FRDM-K64F 微控制器创建了一个使用 C 语言的网络服务器。我的网络服务器提供了一个带有一些文本框和显示消息的网页。我的下一个挑战是存储用户提供的 IP 地址和比特序列。
我创建了两个全局数组 ipaddr[3][17] 和 bits[3][17] 来存储位和 ipaddresses,我现在想增加数组的大小,但我观察到如果我增加数组的大小甚至 ipaddr [4][17],它使我的网络服务器崩溃。以下是将用户提供的字符串复制到数组的代码。
其中 str 是用户提供的数据,然后我使用了一些标记化技术来提取 ip 和 bits。当用户按下按钮程序调用此函数时,奇怪的是我的网络服务器在获取 ip 地址后崩溃,当我将分配 ip 放入浏览器的 url 时,它在几次刷新后崩溃。如果我删除了 memcpy 函数,它可以正常工作,或者如果我减小全局声明数组的大小,即 ipaddr 和位到 [3][17],它也可以正常工作。
附带说明一下,我使用的是 74KB 的闪存和 54KB 的 RAM,而 MBED 微控制器的总内存是 1MB 的闪存和 512KB 的 RAM。
arduino - 将 Arduino wifi shield 连接到 Mbed Nucleo ST F401RE 板
我想使用 Arduino Wifi shield 在 mbed board (Nucleo ST F401RE) 上测试 WiFi 连接。有谁知道该怎么做?
serial-port - 使用 Mbed 虚拟串行端口锁定 COM 端口
我正在与使用 Mbed 和 LPCXpresso11U68 板的人合作。
我对这个特殊的板子不是很熟悉,但它上面有两个 USB 连接器,一个用于 OpenSDA-ish 调试器,第二个是直接连接到 CPU。我可以将这两个端口都连接到我的 PC 上,并将终端仿真器连接到每个端口,两个端口都显示输出(板上运行了一个小型安装程序)。设备管理器显示一个端口(COM51)正在使用“mbed Serial Port”驱动程序,而另一个端口(COM52)正在使用“Mbed Virtual Serial Port”。到目前为止一切顺利......
板上有一个复位按钮。如果我按下该按钮,使用 Mbed 虚拟串行端口驱动程序(在我的情况下为 COM52)连接到 PC 的端口将停止运行。另一个端口(COM51)只是干净地重新启动。
我遇到的问题是,在我退出终端程序后(注意 TeraTerm 和 uCon 都会发生这种情况),如果我尝试重新连接到该端口,它不在可用的端口列表中。奇怪的是,它仍然存在于设备管理器中。
我发现可以解决此问题的唯一方法是拔下/插入该 USB 电缆(COM52)或向 COM51 发出 BREAK 条件(AFAIK 重置板)。
我是 uCon 的作者,我希望能够检测到这一点(我可以),并且能够在没有任何其他手动干预的情况下重新启动 comport 连接。
最后一点:显然这不是特定于 LPCXpresso11U68 板的;我猜这是 Mbed 虚拟串行端口驱动程序的一些问题。
任何人都知道这里可能发生了什么?
c - 使用 LCD 显示器在 MBED 上从左到右滚动文本
我最近购买了 MBED 和 LCD 显示器。在 MBED 食谱中,我找到了一段从右到左滚动文本的代码:
谁能帮我弄清楚如何从左到右滚动这个文本?因此,将显示的第一个字母将是字母“e”。
提前致谢!
eclipse - Eclipse ARM mbed 无法向后移动位置计数器错误
在我学习本教程 https://developer.mbed.org/cookbook/eclipse-for-building-and-debugging时 ,我在 Eclipse 上构建项目时遇到错误(我遵循所有步骤,直到第一个构建项目点我收到以下错误):
由于涉及 ld 我认为问题与链接器有关,但我不知道该做什么以及在哪里查看。我正在使用 Debian 32 位和 Eclipse LUNA。
c++ - c ++:将字符串转换为十六进制字节数组?
我正在使用 mbed 微控制器并用 C++ 编程。我有一个包含 JSON 数据的字符串。如何将 JSON 字符串转换为十六进制字节数组,然后使用 AES128 加密数据并在需要时填充 JSON 字符串?另外,如何将十六进制字节数组转换为 ascii?
我正在使用这个 c++ 示例:
c++ - 在 mbed 微控制器(c++)上加密 AES128-CBC 并在 nodejs 中解密 AES128-CBC
当我尝试在 nodejs 端解密字符串时,我收到“错误:错误:06065064:数字信封例程:EVP_DecryptFinal_ex:bad decrypt”。
我确实知道为了更好的安全性,我应该使用随机 IV 并始终为每次新加密更改 IV,我还应该实施身份验证,但为了理解这一点并解决“错误解密”问题,我会坚持一些简单的。一旦我可以在 mbed 和 nodejs 上加密和解密,我将实现随机/变化的 IV 和 HMAC 以增强安全性。
我想在 mbed 端加密传感器数据并在 nodejs 中解密传感器数据,但是,当尝试在 nodejs 端解密数据时,我收到“错误解密”错误。如何修复“错误解密”错误?
mbed encrypted data:
D90E1518FF2E5D79D6F848BCB4A49BCAE3ADDC6F1D6E04265613968CFF242855C10C619C8E281A33DA690039274AA65ECAFA05631C7BB38815442E780E27E34F2B6C4B9FE1B18678077227A05ACB233D8B8A81412E584A6ECAD10397FCF36072B043F93D67B63678A5D385B402D88AF99A62E12413E7BBFDB920B51F732C0933
mbed c++ 代码:
节点代码:
更新:
我将 C++ 加密/未加密数据发送到我的串行终端,以查看数据的样子:
json: {"Data1":["Result",5.50],"Data2":["Result",700],"Data3":["Result",65.70]}
JSON Char array 7B224461746131223A5B22526573756C 74222C352E35305D2C22446174613222 3A5B22526573756C74222C3730305D2C 224461746133223A5B22526573756C74 222C36352E37305D7D
第一次运行
Encrypted D90E1518FF2E5D79D6F848BCB4A49BCAE3ADDC6F1D6E04265613968CFF242855C10C619C8E281A33DA690039274AA65ECAFA05631C7BB38815442E780E27E34F2B6C4B9FE1B18678077227A05ACB233D8B8A81412E584A6ECAD10397FCF36072B043F93D67B63678A5D385B402D88AF99A62E12413E7BBFDB920B51F732C0933
Decrypted again 7B224461746131223A5B22526573756C74222C352E35305D2C224461746132223A5B22526573756C74222C3730305D2C224461746133223A5B22526573756C74222C36352E37305D7D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
c++ - 通过引用将类实例传递给另一个类
我正在尝试将我的“状态”类的单个实例传递给我的所有其他类,以便它们都可以设置和获取状态。
我一直在尝试通过将“状态”类通过引用传递到我的“BaseStation”类中来做到这一点。代码编译得很好,但是当我从 main 设置状态然后在“BaseStation”中获取状态时它没有改变。
我认为这应该是可能的,所以我必须遗漏一些东西。
这是我的主要课程
这是我的 Status.cpp
这是我的状态.h
这是我的 BaseStation.cpp
这是我的 BaseStation.h
我运行时的输出是
我认为这是因为我实际上并没有传递“状态”的单个实例,而是复制它。
如何正确通过引用?
谢谢乔
c++ - Using an RtosTimer inside a class
I'm trying to use an RtosTimer within a class but the mbed locks up. I think this is because I'm calling threadHelper each tick and its creating a new pointer whereas I actually want to call threadMethod each tick or call threadHeper each tick but use the same pointer.
Can anyone show me how I should be doing this?
The code below works for an RtosThread because threadHelper is only called once, but I need to use an Rtos Timer.
.h
cpp
Thanks
c - 在 C - mbed 平台中每 10 秒调用一次函数
我可以使用:
但这只需要 10 多秒,因为其他功能需要一些时间来执行。是否有考虑到其他函数所用时间的延迟函数,以便我可以f()
每 10 秒准确调用一次?
我听说这可以通过一个可以在头文件中找到的聪明函数来完成,但我不记得是哪个。我认为它可能是#include mbed.h
,但即使该函数包含在此头文件中,我也不知道它被称为什么或如何搜索它。
有人知道可以做我所追求的功能吗?