小熊派4G开发板初体验 小熊派iot开发板
qiyuwang 2024-10-23 14:51 11 浏览 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闪烁的现象。
以上就是本次的分享,如有错误欢迎指出!如果文章有帮助不妨点赞、在看、转发。谢谢!
相关推荐
- PPO 强化学习机械臂 IK 训练过程可视化利器 Tensorboard
-
视频讲解:PPO强化学习机械臂IK训练过程可视化利器Tensorboard_哔哩哔哩_bilibili...
- 免费定时运行Python程序并存储输出文档的服务推荐
-
免费定时运行Python程序并存储输出文档的服务推荐以下是几种可以免费定时运行Python程序并存储输出结果的云服务方案:1.PythonAnywhere特点:提供免费的Python托管环境...
- 实战搭建深度学习运行
-
一、准备环境ubuntu22.04nvidia显卡这里使用的是RTX3060已安装Python3.10二、安装pip3...
- 部署Django到阿里云服务器教程
-
基于Ubuntu16.04+Python3+nginx+mysql+Django接下来先安装这些必要的环境,这些操作都是在你已经购买了阿里云服务器。并且在本地你已经搭建好了Django...
- Ubuntu 22.04安装MySQL : Qwen2.5 模型对话数据收集与微调教程
-
1安装MySQL首先来到(安装)根目录下,开启终端...
- 3D点云数据处理简明教程【Python】
-
近年来,在AR和空间计算技术的大力推动下,在Apple和Meta等大公司的支持下,最近推出了AppleVisionPro,3D理解领域受到越来越多的关注。...
- Ubuntu22.04中定时执行任务(cron)设置
-
做这个实验,主要涉及内容如下:cronTest.py待执行的python文件,代码会读入本地文件内容,并打印当前时间cron_run.sh将执行cronTest.py的语句,包装成shellcro...
- 使用vllm部署DeepSeek
-
1、基础环境1.1、基础环境准备RTX3090*2卡ubuntu22.04python3.12cuda12.4pytorch2.5.1...
- 一键打包,随时运行,Python3项目虚拟环境一键整合包的制作(Venv)
-
之前我们介绍了如何使用嵌入式Python3环境给项目制作一键整合包,在使用嵌入式Python环境时,通常是作为另一个应用程序的一部分,而Python3虚拟环境是为了在开发过程中隔离项目所需的...
- 从零开始:Ubuntu Server中MySQL 8.0的安装与Django数据库配置详解
-
Ubuntu系统纯净安装MySQL8.01、安装Mysql8.0sudoaptinstallmysql-server...
- 同一台电脑如何共存多个版本Python?
-
同一台电脑可以安装多个版本Python吗?可以共存!当前电脑安装了Python3.8.832位,为了调用大漠插件dll,但是我又想安装较新版本的64位Python3.12.0,就涉及到多个Pytho...
- zabbix企业微信告警
-
zabbix企业微信告警的前提是用户有企业微信且创建了一个能够发送消息的应用,具体怎么创建可以协同用户侧企业微信的管理员。第一步:企业微信准备我们需要的内容包括企业ID,应用的AgentId和应用的S...
- 「2022 年」崔庆才 Python3 爬虫教程 - urllib 爬虫初体验
-
首先我们介绍一个Python库,叫做urllib,利用它我们可以实现HTTP请求的发送,而不用去关心HTTP协议本身甚至更低层的实现。我们只需要指定请求的URL、请求头、请求体等信息即...
- 手把手教你搭建深度学习环境Pytorch版-Ubuntu
-
引言很多搞人工智能的小伙伴,刚开始学习,往往摸不着头脑怎么跑代码。跑代码的前提是要有个环境。本篇结合自己的亲身经历,带你搭建环境。相关知识Ubuntu是Linux系统的一种...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 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)