物理链路层

需要处理VOICE_BUSY与VOICE_DATA线

VOICE_BUSY:PC4 通用输入

VOICE_DATA:PC5 通用推挽输出

BUSE线说明:有声音输出高、无声音时输出低、发协议码之前先判断是否忙碌

while(VOICE_BUSY);

VOICE_SEND(cmd);

数据层(软件层)

通过数据引脚(DATA)发送特定的协议码播报对应的语音

同步头:8ms高,1ms低

数据1:1.5ms高,0.5ms低

数据0:0.5ms高,1.5ms低

每次发送八位数据、先处理高位(MCU发到高位)

数据处理

//伪代码说明:先发送高位
void fun(u8 data)
{u8 i;for(i=0;i<8;i++){if(data & 0x80){DATA=1;}else{DATA=0;}data<<=1;}
}

代码流程分析

1.配置IO(PC4 输入 PC5 输出)

/*
Function name:Voice_Broad_Config
Description:MCU驱动语音模块基本配置
param:None
retval:None
Remarks:
PC5-->通用推挽输出
PC4-->通用输入
*/
void Voice_Broad_Config(void)
{/*************************库函数********************************/GPIO_InitTypeDef gpio_InitTypeDef;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC,ENABLE);//打开PC时钟gpio_InitTypeDef.GPIO_Mode=GPIO_Mode_OUT;//通用输出模式gpio_InitTypeDef.GPIO_OType=GPIO_OType_PP;//输出类型 推挽gpio_InitTypeDef.GPIO_Pin=GPIO_Pin_5;//引脚gpio_InitTypeDef.GPIO_PuPd=GPIO_PuPd_NOPULL;//无上下拉gpio_InitTypeDef.GPIO_Speed=GPIO_Fast_Speed;//速度GPIO_Init(GPIOC,&gpio_InitTypeDef);gpio_InitTypeDef.GPIO_Mode=GPIO_Mode_IN;//通用输出模式gpio_InitTypeDef.GPIO_Pin=GPIO_Pin_4;//引脚GPIO_Init(GPIOC,&gpio_InitTypeDef);
}

2.同步头

/*
Function name:synchro_head
Description:同步头
param:None
retval:None
Remarks:
8ms高 1ms低
*/
void synchro_head(void)
{SEND_DATA=1;time_delay(8000);SEND_DATA=0;time_delay(1000);
}

3.数据1

/*
Function name:data_1
Description:数据1
param:None
retval:None
Remarks:
1.5ms高 0.5ms低
*/
void data_1(void)
{SEND_DATA=1;time_delay(1500);SEND_DATA=0;time_delay(500);
}

4.数据0

/*
Function name:data_0
Description:数据0
param:None
retval:None
Remarks:
0.5ms高 1.5ms低
*/
void data_0(void)
{SEND_DATA=1;time_delay(500);SEND_DATA=0;time_delay(1500);
}

5.发送协议码(按先发送高位来)

/*
Function name:send_data_high
Description:先发送数据最高位
param:u8 data
retval:None
Remarks:
*/
void send_data_high(u8 data)
{u8 i;synchro_head();for(i=0;i<8;i++){if(data & 0x80)//第二种方法{data_1();}else{data_0();}data<<=1;}
}

6.判断BUSY线不忙的时候发(发声音时忙碌,无声音时不忙碌):注意两句话发出的间隔不能小于等于1ms

for(i=0;i<3;i++)
{send_data_high(i);while(REV_DATA);Delay_us(1100);
}

STM32f401驱动【语音模块】相关推荐

  1. 遨博协作机器人ROS开发 - 麦克风阵列语音模块ROS驱动

    目录 一.简介 二.环境版本 三.学习目标 四.知识储备 五.任务实施 六.任务拓展 七.课堂小结 八.课后练习 一.简介 大家好,欢迎关注遨博学院带来的系列技术分享文章(协作机器人ROS开发),在前 ...

  2. STM32F103C8T6驱动SYN6288语音模块(暂时做到能播放连续语音,其他诸如背景音乐的功能还没做)

    使用USART3(PB10,PB11)引脚连接模块的对应引脚,模块还有一个BY忙碌检测引脚,低电平表示语音模块空闲,高电平表示语音模块忙碌,这里连的是PA7.VCC接3~5V. **USART3部分程 ...

  3. HAL库使用硬件SPI驱动0.96寸OLED stm32F401

    找一个可以使用SPI接口的OLED驱动程序,一般买OLED会提供,或者自己网上找,这里用的是中景园的例程. 由于我使用的开发板是STM32F401ccu6,所以我先移植到我的开发板上,主要改的 打开M ...

  4. 启明云端WT516P6Core离线语音模块发布后,开发者朋友提出的问题最多的是:是否可以自己编译指令

    关于这个问题,开发者朋友后期可以在esp32.8ms.xyz.平台上进行二次开发,方便定制,目前正在完善测试中,很快发布. 目前市面上的离线语音大多无法做到自定义控制指令,用户如果需要按照业务场景自行 ...

  5. 基于STM32-F401的平衡小车

    目录 一.控制系统设计 1.1机械结构设计 1.2传感系统设计 1.3执行器设计 1.4控制算法设计 二.控制系统的制作与调试 2.1机械结构的制作与调试 2.2电路系统的制作与调试 2.3控制程序的 ...

  6. 语音模块LD3320模块的二次开发,并与树莓派进行串口通信

    一.首先模块介绍 (1)参数详解 型号:YS-LDV7 名称:一体化语音识别模块 规格:43*29.7MM 供电电压:5V (内部工作电压 3.3V) 待机电流:30MA 识别时电流:45MA IO ...

  7. 硬件开发——语音模块开发 (包含语音识别模块代码等资料包 )

    一.语音模块以及硬件模块开发的行情 硬件模块的开发--常用:语音模块 语音模块STC11L08XE 比如 人脸识别打卡器--虹膜识别(购买方式) 语音识别(购买方式) 车牌识别(购买方式) 华为手机( ...

  8. 【嵌入式开发】 Linux Kernel 下载 配置 编译 安装 及 驱动简介

    作者 : 韩曙亮 转载请出名出处 : http://blog.csdn.net/shulianghan/article/details/38636827 一. Linux 内核简介 1. 内核功能简介 ...

  9. 语音模块开发——YS-LDV7 语音识别模块

    文章目录 硬件模块化开发定义 模块参数 模块结构介绍 串口连接图 验货测试方法 语音模块源码阅读 文件结构 分析代码(从main.c函数出发) 识别语句的修改 1.添加关键词和识别码 2.定义识别码 ...

  10. 基于SU-03T语音模块的超声波拍照系统

    系统使用的是最常见的STM32F103C8T6/C6T6核心板: STM32原理图: STM32端部分代码,开机时停止PWM输出: 再配上SU-03语音模块即可实现离线语音控制,SU-03语音模块和S ...

最新文章

  1. 【其他】将幕布文章OPML转换为Markdown的方法
  2. 今晚8点直播 | 美团是怎么玩儿AI的?大牛揭秘美团超大规模数据集——美团大脑
  3. arm linux gcc 4.6.3,编译gcc-4.6.3
  4. jquery防止冒泡
  5. python遍历链表_Python;链表和遍历!
  6. action标签的使用
  7. oracle恢复库覆盖原来的库,oracle如何恢复被覆盖的存储过程
  8. java8获取实现某个接口的所有类_Java 试题八
  9. 防火墙(9)——禁止某个时间段内访问我们的web
  10. 编程书籍阅读随谈(第四篇)
  11. mac svn工具_程序员或产品经理,这些Mac的效率工具一定不要错过
  12. for循环中let,var 的经典面试题:for循环中 console.log(i)详解
  13. Maven私服(一)
  14. python开发图片_python实现图片上添加图片
  15. 【4】CCNA理论第三天
  16. js学习总结----深入扩展-js同步与异步编程
  17. python使用逐行读取,出现空行,清楚空行方法
  18. PinPhp项目目录结构
  19. php 自定义 bin2hex,php bin2
  20. 教师计算机培训汇报ppt,教师培训工作总结ppt模板

热门文章

  1. js表格实现行、列冻结
  2. mysql身份证校验码_javascript身份证验证代码
  3. 测试质量体系搭建--测试团队目标
  4. MATLAB求最大值max函数
  5. 如何在EXCEL表格中加斜线表头
  6. 多种方法对网页文字进行快速复制(仅供学习使用,勿践踏他人成果)
  7. python-map()/reduce()/filter()/sorted()/排列组合
  8. MD5 文件校验之 java 实现
  9. 10个免费高清图片网站,良心推荐,收藏就是学会了
  10. QQ登录界面测试用例设计: