【转】IoT小能手:SOC源码的基本使用及代码移植
本帖最后由 机智小子 于 2017-6-29 14:14 编辑对于使用过多款芯片的老手来说,移植代码是比较简单的一件事情,但是对于新手来说可能就有一些的陌生,接下来我就介绍一下使用步骤1.使用机智云官方新建自己的项目http://club.gizwits.com/data/attachment/forum/201706/12/123521mgyfr2zgujkkkwk6.png
2.新建数据点,可以根据自己需要传输的数据信息的要求建立相应的数据点
http://club.gizwits.com/data/attachment/forum/201706/12/123521dwiiufiupi65fbbi.png
3.生成属于自己使用的源码,MCU(使用底板),SOC(使用esp8266)
http://club.gizwits.com/data/attachment/forum/201706/12/123521m9r4k0rr0lrlkbcs.png
4.进行源码的修改和特定功能的添加
4.1下载微信宠物屋源码(根据自己使用芯片下载),其中 ./Hal (MCU版) ./app/driver./app/include/driver (SOC版),是板载外设的驱动
4.2将驱动文件拷到自己生产源码的相应文件中
4.3在./app/user/或 ./User/下的user_main.c文件中的user_Init中 添加外设驱动的初始化函数(包含在驱动文件中)
4.4在 ./GizWits 或 ./app/GizWits 下的gizwits_product.c文件中的 gizwitsEventProcess函数中 相应case下添加 不同命令下的不同操作
5.gizwitsEventProcess功能添加示例:
触发EVENT_MOTOR_CONTROL事件时的功能添加:
case EVENT_MOTOR_CONTROL:
currentDataPoint.valueMotor_Control =dataPointPtr->valueMotor_Control;
unsigned charString;
if(dataPointPtr->valueMotor_Control!=0){
x=10000*1;
x=x+1*1000;
x=x+(dataPointPtr->valueMotor_Control+5)*10;
String=int_to_char(x/1000000);
String=int_to_char(x%1000000/100000);
String=int_to_char(x%100000/10000);
String=int_to_char(x%10000/1000);
String=int_to_char(x%1000/100);
String=int_to_char(x%100/10);
String=int_to_char(x%10);
String='#';
uart0_tx_buffer(String,8);
}
else
{
x=10000*1;
x=x+0*1000;
x=x+(dataPointPtr->valueMotor_Control+5)*10;
String=int_to_char(x/1000000);
String=int_to_char(x%1000000/100000);
String=int_to_char(x%100000/10000);
String=int_to_char(x%10000/1000);
String=int_to_char(x%1000/100);
String=int_to_char(x%100/10);
String=int_to_char(x%10);
String='#';
uart0_tx_buffer(String,8);
}
简单的串口输出用于与mini2440通信测试
6.源码编译
6.1至于MCU的源码直接使用keil进行编译即可
6.2至于SOC则使用ubuntu系统进行操作(使用Fedora时容易出现问题,并且建议新手使用官方建立好的开发环境进行源码编译)
自己建立环境时步骤:
1.将esp8266的gcc编译包解压到系统(建议用虚拟机)中
2.将解压位置加入PATH环境变量中,可以通过修改/etc/profile 和 /etc/bashrcPATH=$PATH:解压的绝对路径
3.重启使得环境变量生效
4.将源码拷贝到Linux系统中,执行./app/gen_misc.sh 编译
7.烧录,官方均有详细烧录教程不在讲解
页:
[1]