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

【星闪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:1OK
AT+SETSLEADDR=111122220009
+SETSLEADDR:1111222209OK
AT+SSETNAME=SERVER
+SSETNAME:SERVEROK
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,-59OK

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

AT+CCONNECT=SERVEROK+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.mrgr.cn/news/70744.html

相关文章:

  • 随笔20241113 数据分组与期次累加计算功能实现
  • UniApp 应用、页面与组件的生命周期详解
  • AlphaFold3中文安装教程
  • 数据重塑:长宽数据转换【基于tidyr】
  • Unity编辑器的高级扩展技术
  • 【数据结构】图的应用的时间复杂度
  • 121页PPT | 企业战略规划全景:战略设计、工具、模板和分析方法
  • JAVA完成猜数字小游戏
  • python练习-Django web入门
  • STM32:ADC
  • 万字长文解读机器学习——决策树
  • [C++]——位图与布隆过滤器
  • Rust 模板匹配——根据指定图片查找处于大图中的位置(支持GPU加速)
  • APP封装系统 app误报毒app可上传 自动实现5分钟随机更换包名和签名
  • VMnet NAT模式配置
  • Perfetto中如何使用SQL语句
  • MutationObserver与IntersectionObserver的区别
  • IEEE JSSC更新|Tiny Tapeout:让每个人都能设计定制芯片
  • 【C】一文速学----线程池原理与实战
  • 【计算机网络】网络框架
  • C0028.在Clion中快速生成头文件中声明的函数的方法
  • 车载诊断架构---域控下挂节点信息同步策略
  • 基于51单片机密码锁—有3个密码lcd1602显示
  • 【项目开发】RESTful架构及RESTful API设计指南
  • dapp获取钱包地址,及签名
  • js.零钱兑换