LD3320语音部分使用

SmartSoundDoll dtkun 5923℃ 0评论

概述

附录的文件里面使用了我自己的SPI驱动,会有解说,可以用同样功能来替换。官方参考地址

1.LD3320驱动

LD3320驱动流程

  • 为SPI创建两条静态循环队列,一条为发送队列,一条为接受队列。
  • 创建SPI中断,在中断中根据循环队列来进行发送接受,并且开启SPI接收中断
    • LD3320_TXIT
    • LD3320_RXIT
  • LD3320读寄存器驱动-LD3320_ReadREG,将读命令,要读的寄存器地址和一个用来给读出来的数据时序的数据压入发送队列,开启SPI发送中断
  • LD3320写寄存器驱动-LD3320_WriteREG,将写命令,要写的寄存器地址和要写到寄存器的数据压入发送队列,开启SPI发送中断
  • 创建一些端口IO控制函数
    • SET_LD3320_RST
    • SET_LD3320_WR 这个管脚是接地
    • SET_LD3320_CS
  • 初始化LD3320对象,保存LD3320所使用的输入输出跟SPI驱动对象和LD3320必要的初始化
  • 开启ASR初始化
  • 等待语音输入
  • 处理语音结果
  • 完成

一些小注意点

  • STM32的SPI需要网发送数据寄存器里面存数据,时钟才会从主机发出
  • STM32的外部中断需要使用对应端口的AFIO功能才能不一直进外部中断。这里的代码是用了轮询的方式进行,因为懒得配中断嵌套 =。=
  • LD3320_Process 是LD3320模块的轮询函数

<!–nextpage–>

附录,惯例代码~

LD3320.c

LD3320.h

转载请注明:猫头鹰工作室 » LD3320语音部分使用

喜欢 (0)or分享 (0)
Avatar
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址