小熊派4G开发板初体验 小熊派iot开发板
qiyuwang 2024-10-23 14:51 9 浏览 0 评论
开发板硬件资源介绍
前阵子小熊派发布了一款超高性价比的4G开发板,但是板子仅限量1000套。小熊派官方给我送了一块,我们一起来学习学习:
板子做得小巧精致,控制核心用的是移远的EC100Y LTE Cat1无线通信模组,该模组可对所有用户开放二次开发;EC100Y LTE Cat1模组两侧座子/排针是E53接口,可接小熊派的E53拓展模块,如:
小熊派4G开发板与其E53接口拓展模块配合来使用就可以做各种丰富的实验。EC100Y LTE Cat1模组下方是一个SIM卡槽,支持全网通。SIM卡卡槽左侧预留了几个排针孔,连着两个串口,可根据需要焊接排针来使用。板子顶部是一个小辣椒天线。板子左下角有一个摄像头接口与一个音频输入/输出接口。板子右下角是4个按键:BOOT按键、RESET按键、POWER按键、用户按键。板子最下方是一个USB口。
开发板入网测试
1、SIM卡槽插入一张手机卡
SIM卡插入一张手机卡,支持全网通,我这里用的是移动4G卡。
2、串口助手发送AT指令进行测试
AT+CPIN? : 查询SIM卡状态
AT+CSQ : 查询信号质量
AT+CGATT? : 查询是否附着网络
以上图片是入网成功的情况,如果不成功则需要检查SIM卡有没有插反、COM号有没有选对等等。
开发板OPENMCU开发
OPENMCU是一种以模块作为主处理器的应用方式。这里就是把移远的EC100Y LTE Cat1无线通信模组作为主处理器的应用。
1、SDK软件开发包
我们主要需要关注的是ql-application文件夹,一般的开发主要都是在这里面添代码。
2、生成固件
(1)编译环境
一种方法是自己搭建相关编译环境,另一种方法是直接用SDK包里面的编译工具。SDK包中相关的工具在ql-cross-tool中。为了简单省事,我们直接使用SDK包给我们提供的编译工具。
(2)编译流程
图片来自移远官方文档。
可见,固件打包需要用到一些镜像,主要分为四大块:kernel镜像、bootloader镜像、app镜像、其它镜像。
SDK包中有两个编译相关的批处理文件:build.bat、build_all.bat。其中:
build_all.bat:提供整体编译的功能,即双击这个批处理文件就会执行上面四大块镜像的编译及打包生成固件的过程。但一般我们都只是修改APP相关的代码,没有必要全部编译。
所以,SDK包中给我们提供了build.bat批处理文件,我们可以在命令行指定一些参数来执行相应的过程,如:
build.bat bootloader命令:只编译bootloader
build.bat kernel命令 :只编译kernel
build.bat app命令 :只编译app
build.bat firmware命令 :生成固件包
因为我们平时开发基本上只是修改了app,所以大多数情况下都是只需要这两条命令:
build.bat app命令 :只编译app
build.bat firmware命令 :生成固件包
win7环境下在sdk路径下快捷操作进入cmd窗口的方法:
与上面操作相同,在win10环境下可在sdk路径下进入Power shell窗口。当然,win10下也可以进入cmd窗口,然后再进入sdk路径。其中,在Power shell窗口中运行的编译命令与在cmd窗口中运行的编译命令有点不一样,在Power shell窗口中需要加上.\,如:
执行这个编译命令时,会自动找到ql-cross-tool里的编译工具来编译我们的程序。
生成固件操作:
固件存放的路径:
我们并没有编译bootloader与kernel,那么生成固件需要的bootloader镜像与kernel镜像又是从哪来?
其实,SDK包给我们提供了一组出厂的镜像,存放在路径ql-sdk\ql-config\quec-project\aboot\images下:
所以,当我们执行完编译app的命令,并执行生成固件包的命令时,大致过程如下:
当我们需要恢复出厂设置的时候,可以下载出厂自带的那组镜像,此时我们需要先执行如下清除命令:
build.bat kernel/bootloader/app clean命令
分别清除这三大模块编译生成的一些文件,然后再打包生成固件。
(3)实操:输出helloworld实验
sdk包中已经给我们做好了一个hello例程:
一般printf都是重定向到串口,小熊派4G开发板也有引出debug串口的排针孔,我们可以焊接排针来使用;但是小熊派这里给我们提供了另一种更方便的方法,重新封装一个打印函数,打印信息通过USB口输出。
还需要注意的是Makefile文件的修改。这里需要修改两个Makefile文件,一个是ql-sdk\ql-application\threadx\interface\init\example下的Makefile文件:
另一个是ql-sdk\ql-application\threadx\下的Makefile文件:
编译、生成固件前面已经介绍过了。下面看一下如何下载固件到板子里:
打开aboot工具,找到我们编译生成的.zip后缀的固件,点击start:
下载成功,点击back返回。然后按下板子的RESET键复位板子。
这里需要随意发送一串字符串触发我们的输出,至于为什么要这样,后续还需研究研究。另外,有些电脑可能识别不出这个USB串行设备,那打印输出的信息就没办法从USB口输出。我有两台电脑,刚开始用另一台开发,发现一直识别不出这个USB串行设备,各种重启、重装驱动的方法也都试过,还是没用。然后我换用另一台电脑,另一台电脑竟然可以识别。所以可能原因有:
①电脑USB口输出电流不足。小熊派这个USB口的输入的电流有一定的要求,电脑的USB口输出的电流不足板子可能就不正常;
②系统的问题。我一台电脑装的是win7、另一台电脑装的是win10。装win10的那台电脑可以正常识别这个USB串行设备,win7的那一台识别不了。
(4)实操:LED实验
我们创建一个example_led.c文件,与上面的example_helloworld.c放在同一个路径下,并编写如下代码:
#include "ql_application.h"
#include "ql_gpio.h"
#include <stdio.h>
?
/* led配置表 */
static quec_gpio_cfg_t led_gpio_cfg[] =
{
/*---引脚号-----------引脚方向---------引脚边沿--------内部上下拉--------引脚电平---*/
{GPIO_PIN_NO_75, PIN_DIRECTION_OUT, PIN_NO_EDGE, PIN_PULL_DISABLE, PIN_LEVEL_LOW},
?
// 其它GPIO配置......
};
?
/* led测试任务 */
static void led_test(void * argv)
{
/* 用户LED引脚初始化 */
ql_gpio_init(led_gpio_cfg[0].gpio_pin_num, led_gpio_cfg[0].pin_dir, led_gpio_cfg[0].pin_pull, led_gpio_cfg[0].pin_level);
?
while(1)
{
ql_gpio_set_level(led_gpio_cfg[0].gpio_pin_num, PIN_LEVEL_LOW);
ql_rtos_task_sleep_s(1);
ql_gpio_set_level(led_gpio_cfg[0].gpio_pin_num, PIN_LEVEL_HIGH);
ql_rtos_task_sleep_s(1);
}
}
?
application_init(led_test, "led_test", 2, 2);
这里需要注意的是:这里的引脚号并不是原理图上标的(原理图上标的是引脚名)。每个引脚都有好几种模式/功能,我们需要查看《Quectel_EC100Y_QuecOpen硬件设计手册V1.0.pdf》的功能复用表查看真正的引脚号:
这里我们创建了一个led配置表,这样方便添加、修改LED的配置。创建表的形式有时候更清晰一些,关于表驱动的相关文章:
《C语言精华知识:表驱动法编程实践》
《空间换时间,查表法的经典例子》
修改同目录下的Makefile文件:
编译、生成固件,下载固件,可以看到LED闪烁的现象。
以上就是本次的分享,如有错误欢迎指出!如果文章有帮助不妨点赞、在看、转发。谢谢!
相关推荐
- # 安装打开 ubuntu-22.04.3-LTS 报错 解决方案
-
#安装打开ubuntu-22.04.3-LTS报错解决方案WslRegisterDistributionfailedwitherror:0x800701bcError:0x80070...
- 利用阿里云镜像在ubuntu上安装Docker
-
简介:...
- 如何将Ubuntu Kylin(优麒麟)19.10系统升级到20.04版本
-
UbuntuKylin系统使用一段时间后,有新的版本发布,如何将现有的UbuntuKylin系统升级到最新版本?可以通过下面的方法进行升级。1.先查看相关的UbuntuKylin系统版本情况。使...
- Ubuntu 16.10内部代号确认为Yakkety Yak
-
在正式宣布Ubuntu16.04LTS(XenialXerus)的当天,Canonical创始人MarkShuttleworth还非常开心的在个人微博上宣布Ubuntu下个版本16.10的内...
- 如何在win11的wsl上装ubuntu(怎么在windows上安装ubuntu)
-
在Windows11的WSL(WindowsSubsystemforLinux)上安装Ubuntu非常简单。以下是详细的步骤:---...
- Win11学院:如何在Windows 11上使用WSL安装Ubuntu
-
IT之家2月18日消息,科技媒体pureinfotech昨日(2月17日)发布博文,介绍了3中简便的方法,让你轻松在Windows11系统中,使用WindowsSubs...
- 如何查看Linux的IP地址(如何查看Linux的ip地址)
-
本头条号每天坚持更新原创干货技术文章,欢迎关注本头条号"Linux学习教程",公众号名称“Linux入门学习教程"。...
- 怎么看电脑系统?(怎么看电脑系统配置)
-
要查看电脑的操作系统信息,可以按照以下步骤操作,根据不同的操作系统选择对应的方法:一、Windows系统通过系统属性查看右键点击桌面上的“此电脑”(或“我的电脑”)图标,选择“属性”。在打开的...
- 如何查询 Linux 内核版本?这些命令一定要会!
-
Linux内核是操作系统的核心,负责管理硬件资源、调度进程、处理系统调用等关键任务。不同的内核版本可能支持不同的硬件特性、提供新的功能,或者修复了已知的安全漏洞。以下是查询内核版本的几个常见场景:...
- 深度剖析:Linux下查看系统版本与CPU架构
-
在Linux系统管理、维护以及软件部署的过程中,精准掌握系统版本和CPU架构是极为关键的基础操作。这些信息不仅有助于我们深入了解系统特性、判断软件兼容性,还能为后续的软件安装、性能优化提供重要依据。接...
- 504 错误代码解析与应对策略(504错误咋解决)
-
在互联网的使用过程中,用户偶尔会遭遇各种错误提示,其中504错误代码是较为常见的一种。504错误并非意味着网站被屏蔽,它实际上是指服务器在规定时间内未能从上游服务器获取响应,专业术语称为“Ga...
- 猎聘APP和官网崩了?回应:正对部分职位整改,临时域名可登录
-
10月12日,有网友反映猎聘网无法打开,猎聘APP无法登录。截至10月14日,仍有网友不断向猎聘官方微博下反映该情况,而猎聘官方微博未发布相关情况说明,只是在微博内对反映该情况的用户进行回复,“抱歉,...
- 域名解析的原理是什么?域名解析的流程是怎样的?
-
域名解析是网站正常运行的关键因素,因此网站管理者了解域名解析的原理和流程对于做好域名管理、解决常见解析问题,保障网站的正常运转十分必要。那么域名解析的原理是什么?域名解析的流程是怎样的?接下来,中科三...
- Linux无法解析域名的解决办法(linux 不能解析域名)
-
如果由于误操作,删除了系统原有的dhcp相关设置就无法正常解析域名。 此时,需要手动修改配置文件: /etc/resolv.conf 将域名解析服务器手动添加到配置文件中 该文件是DNS域名解...
- 域名劫持是什么?(域名劫持是什么)
-
域名劫持是互联网攻击的一种方式,通过攻击域名解析服务器(DNS),或伪造域名解析服务器(DNS)的方法,把目标网站域名解析到错误的地址从而实现用户无法访问目标网站的目的。说的直白些,域名劫持,就是把互...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- # 安装打开 ubuntu-22.04.3-LTS 报错 解决方案
- 利用阿里云镜像在ubuntu上安装Docker
- 如何将Ubuntu Kylin(优麒麟)19.10系统升级到20.04版本
- Ubuntu 16.10内部代号确认为Yakkety Yak
- 如何在win11的wsl上装ubuntu(怎么在windows上安装ubuntu)
- Win11学院:如何在Windows 11上使用WSL安装Ubuntu
- 如何查看Linux的IP地址(如何查看Linux的ip地址)
- 怎么看电脑系统?(怎么看电脑系统配置)
- 如何查询 Linux 内核版本?这些命令一定要会!
- 深度剖析:Linux下查看系统版本与CPU架构
- 标签列表
-
- navicat无法连接mysql服务器 (65)
- 下横线怎么打 (71)
- flash插件怎么安装 (60)
- lol体验服怎么进 (66)
- ae插件怎么安装 (62)
- yum卸载 (75)
- .key文件 (63)
- cad一打开就致命错误是怎么回事 (61)
- rpm文件怎么安装 (66)
- linux取消挂载 (81)
- ie代理配置错误 (61)
- ajax error (67)
- centos7 重启网络 (67)
- centos6下载 (58)
- mysql 外网访问权限 (69)
- centos查看内核版本 (61)
- ps错误16 (66)
- nodejs读取json文件 (64)
- centos7 1810 (59)
- 加载com加载项时运行错误 (67)
- php打乱数组顺序 (68)
- cad安装失败怎么解决 (58)
- 因文件头错误而不能打开怎么解决 (68)
- js判断字符串为空 (62)
- centos查看端口 (64)