当前位置: 首页 > article >正文

【星闪EBM-H63开发板】AT固件的配置与测试

引言

前面的博客已经介绍了【星闪EBM-H63开发板】小熊派固件中心的使用_bearpi-bm h63固件烧录工具-CSDN博客和【星闪EBM-H63开发板】固件的烧录-CSDN博客,今天来测试一下另一种固件,也就是AT固件。有关AT固件的介绍参见:【星闪EBM-H63开发板】AT固件的接口简介-CSDN博客。

固件中心的配置

和透传固件不同,AT固件的很多配置工作是在运行过程中通过AT命令编程实现的,所以固件中心的配置就非常简单,只有个串口组的配置。

  • 串口组,表示AT命令交互使用的串口组,可选串口0或串口1,串口默认波特率为115200

注:当串口组选串口0时,串口TX引脚对应芯片UART0_TXD,RX引脚对应芯片UART0_RXD;当串口组选串口1时,串口TX引脚对应芯片UART1_TXD,RX引脚对应芯片UART1_RXD。

900ebd9f8d2b4c24ae619d93a787312a.png

这个配置一般不用改。

由于主从角色的指定也是运行时决定的,所以主模块和从模块烧写的AT固件是相同的。

固件烧写 

两个模块都必须烧写为AT命令固件,如果一侧为AT命令固件,另一侧为透传固件是不行的。烧写的步骤在前面的博文中已经介绍了,这里不再赘述。

1783fd26e5534e7493238d9ff5500aa5.png

程序执行

程序启动后的日志如下:

boot.
Flash Init Fail! ret = 0x80001341
verify_public_rootkey secure verify disable!
verify_params_key_area secure verify disable!
verify_params_area_info secure verify disable!
verify_image_key_area secure verify disable!
verify_image_code_info secure verify disable!
SSB Uart Init Succ!
SSB Flash Init Succ!
verify_image_key_area secure verify disable!
verify_image_code_info secure verify disable!
veriboot.
Flash Init Fail! ret = 0x80001341
verify_public_rootkey secure verify disable!
verify_params_key_area secure verify disable!
verify_params_area_info secure verify disable!
verify_image_key_area secure verify disable!
verify_image_code_info secure verify disable!
SSB Uart Init Succ!
SSB Flash Init Succ!
verify_image_key_area secure verify disable!
verify_image_code_info secure verify disable!
************************************
BearPi SLE_AT
V2024_r1
Powered by www.bearpi.cn
************************************
at cmd ready.

日志和透传固件差不多,唯一的区别在于最后显示“at cmd” ,表示是个AT命令固件。

输入AT+HELP,就可以看到所有支持的命令。

AT+HELP
AT+HELP:Show cmd list
AT+RESET:Reboot device
AT+RESTORESET:Restore factory settings
AT+SETUARTCFG:Set uart config
AT+SETTXPOWER:Set tx power
AT+MODLE:Set server-client mode
AT+SLEADDR:Set Mac address
AT+SKEY:Server set key
AT+SSERVER:Server set the working mode
AT+SCLIST:Server obtains client list
AT+SSEND:Server send hex data
AT+SSENDALL:Server send hex data to all clients
AT+SSENDSTR:Server send string data
AT+SSENDALLSTR:Server send string data to all clients
AT+SBLACK:Server set blacklist
AT+SRADIOFRE:Server set broadcasting frequency
AT+SKILLCLIENT:Server disconnect from the client
AT+SSETNAME:Server set name
AT+CKEY:Client set key
AT+CCONNECT:Client connect server
AT+CDISCONNECT:Client disconnect from the server
AT+CSEND:Client send hex data
AT+CSENDSTR:Client send string data
AT+CSLIST:Client obtains server list
AT+CSETNAME:Client set name

作为星闪服务器端的开发板执行如下命令:

AT+SETMODE=1                    //设置为服务端模式
AT+SETSLEADDR=111122220009      //设置服务端MAC地址
AT+SSETNAME=SERVER              //设置服务端名称为SERVER
AT+SSERVER=1	                //服务端开启服务,等待连接

得到的日志如下:

AT+SETMODE=1
+SETMODE:1

OK
AT+SETSLEADDR=111122220009
+SETSLEADDR:1111222209

OK
AT+SSETNAME=SERVER
+SSETNAME:SERVER

OK
AT+SSERVER=1
+SSERVER:1,0,

OK

 作为客户端的开发板执行如下指令:

AT+SETMODE=0                    //设置为客户端模式
AT+SETSLEADDR=111122220001      //设置客户端MAC地址
AT+CSETNAME=CLIENT1             //设置客户端名称为CLIENT1

客户端要执行以下配置命令:

AT+SETMODE=0                    //设置为客户端模式
AT+SETSLEADDR=111122220001      //设置客户端MAC地址
AT+CSETNAME=CLIENT1             //设置客户端名称为CLIENT1

 然后就可以执行AT+CSLIST 搜索并获取服务端列表。

AT+CSLIST
SERVER,111122220009,-59

OK

看到SERVER在列表中,就可以使用AT+CONNECT命令去连接服务器端了。

AT+CCONNECT=SERVER

OK

+CONNECT:0,0,1111222209

 同时,在服务器端也可以看到有客户端进行连接。


+CONNECT:0,0,1111222201

接下来就可以在客户端用AT+CSEND命令发送数据了,这条命令中的数据必须是ASCII码的16进制形式。比如AT+CSEND=30313233343536373839将发送“0123456789”字符串。

AT+CSEND=30313233343536373839
+CSEND:30313233343536373839

 此时服务器端会显示接收到的数据。

+SRECVDATA:CLIENT1,30313233343536373839

服务器端也可以用AT+SEND命令发送数据,由于SLE支持一对多通信,所以发送数据时要制定客户端的名字。

AT+SSEND=CLIENT1,313233
+SSEND:CLIENT1,313233

 客户端显示正常收到数据。

+CRECVDATA:313233

结语

至此,我已经测试完成了小熊派的两种固件的测试,总体还算稳定。

 


http://www.kler.cn/a/396595.html

相关文章:

  • 基于Matlab的碎纸片的自动拼接复原技术
  • 一文说清C++类型转换操作符(cast operator)
  • Shell基础2
  • 论文阅读 - Causally Regularized Learning with Agnostic Data Selection
  • Springboot定时任务
  • 三:网络为什么要分层:OSI模型与TCP/IP模型
  • 【Java Web】JSON 以及 JSON 转换
  • JavaWeb笔记整理——Spring Task、WebSocket
  • 【摄像头识别动物行为通常涉及计算机视觉技术】
  • 基于Java+SpringBoot+Vue的智慧社区设计与实现
  • 用枚举算法解决LeetCode第3348题最小可整除数位乘积II
  • 代码随想录算法训练营第三十八天 | 322.零钱兑换 279.完全平方数 139.单词拆分 多重背包以及背包总结
  • 如何使用EasyExcel生成多列表组合填充的复杂Excel示例
  • Dockerfile构建镜像(练习一Apache镜像)(5-1)
  • 蓝桥杯每日真题 - 第10天
  • [Android]相关属性功能的裁剪
  • Linux---常用shell脚本
  • 力扣654:最大二叉树
  • 【鸿蒙开发】第二十二章 IPC与RPC进程间通讯服务
  • 【LeetCode】【算法】53. 最大子数组和
  • 【日常记录-Git】撤销工作区中所有已跟踪文件的修改
  • Java集合(Collection+Map)
  • 回调函数的概念、意义和应用场景
  • SQL 审核在 CloudQuery 的四大场景应用
  • leetcode hot100【 LeetCode 121.买卖股票的最佳时机】java实现
  • uniapp ios app以framwork形式接入sentry