打印
[STM8]

应该怎么把它提取出来

[复制链接]
473|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shimx|  楼主 | 2021-4-12 22:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用STM8S105K4的UART2串口跟蓝牙模块通信的,我发送字符串指令给蓝牙后,蓝牙返回来了十几条(有时候二十多条不定)响应字符串指令,我是用一个字符串数组来接收这些返回来的指令的。我现在只需要读取数组里的某一条指令,应该怎么把它提取出来啊

使用特权

评论回复
沙发
llljh| | 2021-4-12 22:39 | 只看该作者

然后呢?你是怎么应对这个的呢        

使用特权

评论回复
板凳
shimx|  楼主 | 2021-4-12 22:41 | 只看该作者
找了好久找到一个函数strstr(str1, str2);,不知道只用这个函数来读取我数组里的某个字符串行不行。

使用特权

评论回复
地板
supernan| | 2021-4-12 22:43 | 只看该作者

什么意思?不是很明白你说的什么,能再解释一下这个现象吗

使用特权

评论回复
5
shimx|  楼主 | 2021-4-12 22:45 | 只看该作者
比如,我数组接收到的指令是这些:
Rx_Buffer[] ={
AT-B PBCSTAT 1
AT-B A2DPSTAT 1
AT-B SPPSTAT 1
AT-B AVRCPSTAT 1
AT-B HFSTAT 1
AT-B SNKINIT 0
AT-B SLDN 0
AT-B HFSTAT 2
AT-B SCAN 0
AT-B SSPPIN 772052,0,44C346698642
AT-B PAIR 2,44C346698642
AT-B HFSTAT 2
AT-B SSPPIN 425883,0,44C346698642
AT-B PAIR 2,44C346698642
AT-B HFCONN 8,44C346698642,0
AT-B HFSTAT 1
AT-B SCAN 0
AT-B SSPPIN 754058,0,44C346698642
AT-B PAIR 0,44C346698642
}
然后我只需要读取其中的某一条指令来进行判断,这样我就可以进行下一步操作。

使用特权

评论回复
6
wuhany| | 2021-4-12 22:47 | 只看该作者
strstr当然没问题。

使用特权

评论回复
7
shimx|  楼主 | 2021-4-12 22:50 | 只看该作者
但最好还是用状态机解析:收到字符都传递给状态机,状态机里根据帧头、位段解析得到你所需的数据。

使用特权

评论回复
8
zhaoxqi| | 2021-4-12 22:52 | 只看该作者
这个标准库的内容肯定可以

使用特权

评论回复
9
yszong| | 2021-4-12 22:55 | 只看该作者
用状态机+中断解析即可

使用特权

评论回复
10
chuxh| | 2021-4-12 22:57 | 只看该作者
我不习惯用标准c库的函数,还是自己写方便。

使用特权

评论回复
11
xxrs| | 2021-4-12 23:04 | 只看该作者
这是at指令代码啊

使用特权

评论回复
12
shimx|  楼主 | 2021-4-12 23:05 | 只看该作者
这是发送的什么呀

使用特权

评论回复
13
shimx|  楼主 | 2021-4-12 23:08 | 只看该作者

嗯,预料中的结果,多谢大家啦

使用特权

评论回复
14
观海| | 2021-5-7 14:25 | 只看该作者
自己定制通讯协议啊

使用特权

评论回复
15
guanjiaer| | 2021-5-7 14:27 | 只看该作者
理解好数据的内容啊

使用特权

评论回复
16
heimaojingzhang| | 2021-5-7 15:18 | 只看该作者
at指令代码吗

使用特权

评论回复
17
keaibukelian| | 2021-5-7 15:21 | 只看该作者
说明协议没有明确好

使用特权

评论回复
18
labasi| | 2021-5-7 15:22 | 只看该作者
定义好包头包尾和数据位

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

857

主题

10661

帖子

5

粉丝