按命令进行更新

⚠️
你好。。谢谢你来到论坛。令人兴奋的消息!我们现在正在迁移到新的论坛平台,该平台将提供更好的功能,并包含在主对话网站中。所有员额和帐户都已迁移。我们现在只接受新论坛的流量-请在//www.wsdof.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
12个员额/0个新员额
最后一篇文章
ant777222
离线
最后一次见到:2个月2周前
加入:2019-07-11 17:03
按命令进行更新

我将如何在无代码中创建一个新的AT命令来更改BLE uart的波特率。

关键词:
设备:
PM_对话框
离线
最后一次见到:1周4天前
工作人员
加入:2018-02-08 11:03
嗨ant777222,

嗨ant777222,

无代码参考应用程序代码是为了快速评估或执行一些基本的BLE功能而开发的,无需深入代码。您需要实现的是可以实现的,但您需要自己做一些工作并调试一些用户应用程序功能。请查看函数void user_execute_commands(char*cmd)在user_codeless.c.中,此函数使用在命令处分隔的分号字符串并逐个执行。接收到的用户_APP_CMD_发送到内核。然后,检查用户_catch_rest_hndl()它处理用户收到的消息。您的自定义AT命令应添加到AT命令特性跳转表中。请遵循负责启动广告的USE AT ADVSTART宏。此外,您还应注意如何在perpi_init()函数中传递波特率。

谢谢,下午好

ant777222
离线
最后一次见到:2个月2周前
加入:2019-07-11 17:03
我在+BAUD=0时发出了一个命令。

我在+BAUD=0时发出了一个命令。现在它所做的就是返回ok。我正在努力找出将波特率传递到perpi_init()的最佳方法。您建议我如何做?

PM_对话框
离线
最后一次见到:1周4天前
工作人员
加入:2018-02-08 11:03
嗨ant777222,

嗨ant777222,

请看一看periph_init()函数,您将看到UART2是以57600波特率完成的。一旦您发送适当的at命令,您应该将波特率保留在一个变量中,并将其传递到UART2_init()。

谢谢,下午好

ant777222
离线
最后一次见到:2个月2周前
加入:2019-07-11 17:03
现在我有一点

现在我在user_at_commands.c中有一段代码,将波特率更改为115200。

# ifdef USE_AT_BAUD
void user_at_BAUD(struct at_cmd_params_t* arg, char* reply_string)
{
uint8_t index=ahtoi(&arg->cmd_buffer[arg->arg_index[0]]);
如果(索引==3){
uart2_init(UART_波特率_115K2,UART_字符格式_8);
arg->success\u flag=true;
}

}

#恩迪夫

然而,这会冻结终点站。当我将终端的波特率设置为115200时,它仍然被冻结。

PM_对话框
离线
最后一次见到:1周4天前
工作人员
加入:2018-02-08 11:03
嗨ant777222,

嗨ant777222,

请分享您如何使用自定义at命令修改at_命令\u特征\u t跳转表?语法描述如下所示:

  • AT命令id索引
  • AT命令标记字符串
  • AT命令标记长度
  • 实现该功能的AT命令回调
  • 最小参数数
  • 最大参数数
  • 参数的最大回复大小字符串

既然你发送了AT+BAUD=0命令,你能不能在调试模式下运行它,以弄清是否触发了user_at_BAUD()回调函数?

谢谢,下午好

ant777222
离线
最后一次见到:2个月2周前
加入:2019-07-11 17:03
我将以下代码添加到

我向跳转表中添加了以下代码。

# ifdef USE_AT_BAUD

{AT_BAUD,“BAUD”,4,user_AT_BAUD,1,1,RPLY_MAX_SIZE},

#恩迪夫

如果我将void user_at_random()中的代码放入void user_at_BAUD()中,并在+BAUD=3处使用at命令,我会得到一个我期望的随机数。

ant777222
离线
最后一次见到:2个月2周前
加入:2019-07-11 17:03
如果我将此添加到

如果我把这个添加到我的user_at_BAUD()函数,它不改变波特率,但保持它在57K6终端也冻结。

uint8_t index=ahtoi(&arg->cmd_buffer[arg->arg_index[0]]);
如果(索引==3){
uart2_init(UART_波特率_57K6,UART_字符格式_8);
arg->success\u flag=true;

我还没有连接调试程序,我正在等待我的IT部门连接正确的驱动程序。现在连接到J3仅作为电源。我将P0_4连接到Rx,P0_5连接到Tx,J4针脚2连接到COM端口的接地。这可能是问题吗?

ant777222
离线
最后一次见到:2个月2周前
加入:2019-07-11 17:03
所以我改变了波特率

因此,我正在正确地更改波特率,但是,当我更改波特率时,键盘无法再在终端中键入。通过lightblue应用程序,我仍然可以在更改波特率后发送命令,例如使用管道命令键入。如果我键入ATr,例如,终端没有响应ok,我希望能够读取t他在终端和连接的电话上做出响应。另外,我想修复更改波特率后无法用键盘在终端上键入的问题。

PM_对话框
离线
最后一次见到:1周4天前
工作人员
加入:2018-02-08 11:03
嗨ant777222,

嗨ant777222,

对耽搁表示歉意。既然波特率改变了,我想串行终端的波特率也应该改变。

谢谢,下午好

ant777222
离线
最后一次见到:2个月2周前
加入:2019-07-11 17:03
我在改变波特率

我正在改变终端的波特率。添加用户\u charachter\u parser\u start()解决了这个问题。

void user_at_BAUD(struct at_cmd_params_t* arg, char* reply_string)
{
uint8_t index=ahtoi(&arg->cmd_buffer[arg->arg_index[0]]);
如果(索引==5){
uart2_init (UART_BAUDRATE_38K4 UART_CHARFORMAT_8);
用户_charachter_解析器_start();
arg->success\u flag=true;
}

PM_对话框
离线
最后一次见到:1周4天前
工作人员
加入:2018-02-08 11:03
嗨ant777222,

嗨ant777222,

很高兴你解决了你的问题,非常感谢你的指示。

谢谢,下午好