【踩坑】mcu+4G mqtt移植阿里云c_sdk抽取代码时遇到的坑:抽取代码失败wrapper.c中没有相应接口(原因:config.bat完成后要点击exit)

〇、起因,遇到相同坑的可以参考

MCU上移植开发C·SDK流程中,第一步就是下载C_SDK,下载好之后就是点击config.bat配置功能。

阿里云官方文档有抽取代码的移植说明:

https://help.aliyun.com/document_detail/111026.html?spm=a2c4g.11186623.2.11.4fe81c84h17oAM

【基于代码收取时的移植说明】我从头到尾读了,并且很久之前就做过stm32f103 + esp8266的连接阿里云例程,但今天才发现抽取代码的一个巨大的坑,导致我配置不出来想要的功能和wrapper.c的接口。

 

直到参考了这篇博客,我按照博主的操作进行了一遍,才发现猫腻。https://blog.csdn.net/weixin_42023797/article/details/100520969

 

只因为我的一个失误操作,没有在配置完功能后点击【exit】退出。

 

一、正确抽取代码操作步骤

1.官网下载下来c_sdk(下载链接不粘贴了,官网资料都有,我之前也写过),如图这里我下载的是3.1.0版本

2.双击运行config.bat脚本,然后出现配置功能界面

 

3.注意!这里先点击<Save>保存按钮,

点击<OK>

随后文件夹下出现一个:.config文件

功能配置完了,点击【exit】,后回到配置界面:

 

4.重点来了!

这一步我看到生成了.config文件,以为结束了,就直接点叉关掉了窗口。这导致我!怎么都生成不了正确的代码!生成的是默认的代码! 

正确的操作是:配置完功能后,文件夹下有.config文件后,回到配置界面后:

紧接着:点击【Exit】退出,退出后文件加下的.config会自动删除掉!

紧接着:点击【Exit】退出,退出后文件加下的.config会自动删除掉!

.config消失:

5.此时 ,点击extract.bat 脚本,抽取代码:

此时,看到output文件夹下,有我们选择功能的代码

 

但是,按照我之前的错误操作,这一步无论如何抽取,都抽取不出代码。

这个问题困扰我1天半的时间,还发工单给阿里云的技术支持也没解决,最后还是参考博主的https://blog.csdn.net/weixin_42023797/article/details/100520969 跟着这位博主在cmd下运行脚本,才解决。

 

二、总结:

说难也不难,就是配置功能时以为生成了.config文件是对着的,结果怎么都不能正确抽取代码..... 仅仅是点击了×关闭配置界面没有点击【Exit】退出的小问题,耽误我将近2天时间,真TMD醉了

各位使用阿里云官网sdk的开发者,还是要认真看文档....

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
【RT-Thread作品秀】基于RT-Thread的气压温度测量系统作者:安静的句型 概述(说明应用产生的背景、实现功能)基于ART-Pi,利用MS-P2XD10气压传感器模块,L610-CN-00-MiniPCIe-10Cat模块,设计了一款气压温度测量系统,测量环境的大气压力和温度,并上报到阿里云,连接到物模型,实显示。 开发环境(所采用的软、硬件方案)硬件:ART-Pi;L610;LPS22HH RT-Thread版本:4.0.3 开发工具及版本:MDK-v5.27.0.0 RT-Thread使用情况概述(简要总结下应用RT-Thread使用情况:内核部分、组件部分、软件包部分、内核、其他)使用了RT-Thread内核使用线程、信号量、 邮箱、内存池等功能,在读取到传感器数据后,将气压和温度数据通过邮箱传输到阿里云发布线程,向云端发送。 调用了FinSH组件用于系统过程调试,监视线程应用情况、设备使用情况、其它信息等。 加载了多个软件包: AT DEVICE软件包,用于L610的驱动。 WebClient软件包,测试L610功能。 ali_iotkit软件包,配置阿里云三元组信息,连接阿里云。 cJSON软件包,进行数据封装。 硬件框架(概述应用所采用的硬件方案框图,并对核心部分做介绍)利用ART-Pi作为主控单元,通过I2C接口与LPS22HH气压传感器模块通讯,获取气压和温度值。通过UART接口与L610Cat通讯模块通讯,与云端连接。 其LPS22HH需注意连线,具体连线如下: LPS22HH板 ART-Pi 定义 VDD P1-1 3.3V VDDIO P1-1 3.3V SA0 P2-39 GND SDA P1-3 I2C-SDA SCL P1-5 I2C-SCL CS P1-1 3.3V GND P1-39 GND 其VDD和VDDIO都是为LPS22HH供电,直接使用ART-Pi的3.3V电源。SA0是用于选择地址,接地后地址为0x5C。SDA和SCL是I2C接口“i2c3”。CS作为片选信号,接高电平后选择接口为I2C。 L610连线如下: L610板 ART-Pi 定义 UA1_TX P1-10 UART-TX UA1_RX P1-8 UART-RX AUTO_POWER_ON_1 P1-6 GND AUTO_POWER_ON_2 P1-12 PI5 CTS短路帽不接。 电源短路帽接至VUSB。 连接USB接口供电和通讯。 软件框架说明(介绍应用所采用的软件方案框图、流程图等,并加以解说)在main.c文件首先进行了L1610的上电,mqtt初始化,lps22hh初始化等,并创建了四个线程,LED闪烁线程、阿里云发送数据线程、接收阿里云命令线程、定器线程。 当前实现了基础功能: 通过控制台发送读取传感器数据指令后,在阿里云显示的功能。 后期还需继续完善两个功能: 硬件定器功能,可按设定的间间隔进行工作,采集传感器数据并上报云端,当前使能了timer13,但是定器无法正常工作,程序是按照文档和原潘多拉板直接移植的,暂未找到问题原因。 阿里云下发命令功能,阿里云可以下发命令控制LED开关,下发命令控制硬件定器定间隔,随修改传感器上报数据频率。除了阿里云在线调试界面,暂未找到如何下发命令方法。 还有一些问题: L610的初始化过程有些不太清楚,看at_device_l610.c文件,是在其创建了一个初始化的线程并直接调用了,这个怎么能在main统一初始化呢,现在是在main了10秒等待初始化完成后再执行mqtt等初始化。 对接sensor设备框架未成功,尝试了创建sensor设备成功,但是初始化过程应该有问题,对于一个传感器两个参数的情况暂未了解透彻。 软件模块说明(介绍应用软件关键部分的逻辑、采用的实现方式等)sensor_st_lps22hh应用模块直接调用了st的函数库lps2hh_reg,首先创建了stmdev_ctx_t变量,完成了寄存器读写函数的实例化,在此需注意lps22hh的地址,选择了sa0为gnd后地址为0x5c,此地址为7位,可以直接在i2c设备框架直接赋值无需右移。另外在读取寄存器值应首先写地址然后才是读数据。参考st的polling文件,编写了初始化函数和读取数据函数,直接读取气压和温度值,并发送至邮箱。 api_ali应用模块参考ali-iotkit的mqtt_example文件,在ENV配置好三元组信息后,进行mqtt初始化,读取三元组,与云端建立mqtt连接,并订阅了发布和读取主题。编写了数据发布函数,可由发布线程直接调用。试验了cJSON软件包,直接打包成json数据,试验了直接赋值字符串,均可正常实现。试验了接收命令线程,在阿里云
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值