Arduino与LU-ASR01语音识别模块的双向串口通信实现

    之前我写了一篇《Arduino的智能语言输入实现》,讨论了Arduino与LU-ASR01之间通过串口通信实现Arduino的中文语音输入,不过那个通信是不完整的,因为LU-ASR01的串口只有一个发送端口TX,而没有接收端口RX。其实在真正的应用中,LU-ASR01通常也需要接收上位机的数据,例如为确保上位机已经收到LU-ASR01发送的数据,上位机需要返回一个已收到数据的应答,又例如上位机想让LU-ASR01发出某条语音消息或让LU-ASR01进行某个操作,都需要由上位机发送数据,然后由LU-ASR01接收数据后,进行相应的处理。

    为解决LU-ASR01的串口没有接收端口RX这个问题,我们可以利用LU-ASR01的I/O端口(前文介绍过LU-ASR01共有8个I/O端口),取其中的2个端口挪作串口通信用,然后采用软串口通信的方式来实现Arduino与LU-ASR01之间的双向串口通信。

    因为在网上查找不到一点LU-ASR01模块的软串口通信资料,只能通过不断地测试,因为手头连最基本检测工具示波器等都没有,只有一台电脑、一块Arduino板和一块LU-ASR01板,为检测软串口有没有发送数据,我甚至只能连接LED到串口,查看在串口发送数据时LED有没有闪烁。经历了数十次的失败,几乎已经绝望地想放弃了LU-ASR01的软串口通信实现,哈哈,最后当然成功啦,不然我就写不了这篇文章了。

    闲话不说了,本次实验就是通过由LU-ASR01发送命令,Arduino收到该命令后,再返回发送该命令数据(即同样的数值)到LU-ASR01作为应答,最后LU-ASR01收到了Arduino发回的该命令数据,进行比较后(即判别发送的数据与接收到的数据是否相等)ÿ

  • 23
    点赞
  • 164
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值