asrpro2.0天问语音模块搭配STM32(STM32F103c8t6)-杨桃电子开发板

这里写自定义目录标题

asrpro2.0天问语音模块搭配STM32(STM32F103c8t6)-杨桃电子开发板

你好! 这是 asrpro2.0天问语音模块搭配STM32(STM32F103c8t6)-杨桃电子开发板手把手

第一步:修改杨桃电子一号板的电路

就是按照杨桃电子连接仿真器JTAG那个视频里面的开发板的模样把跳线帽全部拆了,不要连接
可以去B战看视频
如何你没有这个板子只有一个stm32f103c8t6的话那就更棒了

直接用杜邦线直接连接

用PB5和PB6直接和电脑通信
目的是干什么呢:看看这个模块是否正常

  1. 接下来就是单片机和电脑的串口通信了
  2. 这个杨桃电子开发板已经提供好了,估计买最小系统板的时候也应该有实例历程,测测板子的串口通信是正常
  3. 如果两个都OK,那就很好办了

接下来就是硬件接线了

语音模块GND 杜邦线连接单片机GND
语音模块PB5连接单片机PB11
语音模块PB6连接单片机PB10

好!!!!以上这就是硬件连接部分了

接下来应该就是代码了

接下来就是杨桃电子提供的代码了

作为参考

C 复制代码
/*********************************************************************************************
模板制作:  杜洋工作室/洋桃电子
程序名:	USART串口控制程序
编写人:	杜洋	
编写时间:	2018年1月12日
硬件支持:	STM32F103C8   外部晶振8MHz RCC函数设置主频72MHz   

修改日志:  
1-	
	
							
说明:
 # 本模板加载了STM32F103内部的RCC时钟设置,并加入了利用滴答定时器的延时函数。
 # 可根据自己的需要增加或删减。

*********************************************************************************************/
#include "stm32f10x.h" //STM32头文件
#include "sys.h"
#include "delay.h"
#include "led.h"
#include "key.h"
#include "buzzer.h"
#include "usart.h"

extern u8 Res;  //这是新增加的

int main (void){//主程序
	u8 a;
	//初始化程序
	RCC_Configuration(); //时钟设置
	LED_Init();//LED初始化
	KEY_Init();//按键初始化
	BUZZER_Init();//蜂鸣器初始化
	USART1_Init(9600); //串口初始化(参数是波特率)
	USART3_Init(9600); //串口初始化(参数是波特率)

	//主循环
	while(1){

		//查询方式接收
		if(USART_GetFlagStatus(USART1,USART_FLAG_RXNE) != RESET){  //查询串口待处理标志位
			a =USART_ReceiveData(USART1);//读取接收到的数据
			switch (a){
				case '0':
					GPIO_WriteBit(LEDPORT,LED1,(BitAction)(0)); //LED控制
					printf("%c:LED1 OFF ",a); //
					break;
				case '1':
					GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1)); //LED控制
					printf("%c:LED1 ON ",a); //
					break;
				case '2':
					BUZZER_BEEP1(); //蜂鸣一声
					printf("%c:BUZZER ",a); //把收到的数据发送回电脑
					break;
				default:
					break;
			}		  
		}
		
		switch(Res)  //这也是自己加的
		{
			    case '0':
					GPIO_WriteBit(LEDPORT,LED1,(BitAction)(0)); //LED控制
					printf("%c:LED1 OFF ",a); //
					break;
				case '1':
					GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1)); //LED控制
					printf("%c:LED1 ON ",a); //
					break;
				case '2':
					BUZZER_BEEP1(); //蜂鸣一声
					printf("%c:BUZZER ",a); //把收到的数据发送回电脑
					break;
				default:
					break;
		}

		//按键控制
		if(!GPIO_ReadInputDataBit(KEYPORT,KEY1)){ //读按键接口的电平
			delay_ms(20); //延时20ms去抖动
			if(!GPIO_ReadInputDataBit(KEYPORT,KEY1)){ //读按键接口的电平
				while(!GPIO_ReadInputDataBit(KEYPORT,KEY1)); //等待按键松开 
				printf("KEY1 "); //
			}
		}		 
		if(!GPIO_ReadInputDataBit(KEYPORT,KEY2)){ //读按键接口的电平
			delay_ms(20); //延时20ms去抖动
			if(!GPIO_ReadInputDataBit(KEYPORT,KEY2)){ //读按键接口的电平
				while(!GPIO_ReadInputDataBit(KEYPORT,KEY2)); //等待按键松开 
				printf("KEY2 "); //
			}
		}		 

//      delay_ms(1000); //延时
	}
}


/*********************************************************************************************
 * 杜洋工作室 www.DoYoung.net
 * 洋桃电子 www.DoYoung.net/YT 
*********************************************************************************************/
/*

【变量定义】
u32     a; //定义32位无符号变量a
u16     a; //定义16位无符号变量a
u8     a; //定义8位无符号变量a
vu32     a; //定义易变的32位无符号变量a
vu16     a; //定义易变的 16位无符号变量a
vu8     a; //定义易变的 8位无符号变量a
uc32     a; //定义只读的32位无符号变量a
uc16     a; //定义只读 的16位无符号变量a
uc8     a; //定义只读 的8位无符号变量a

#define ONE  1   //宏定义

delay_us(1); //延时1微秒
delay_ms(1); //延时1毫秒
delay_s(1); //延时1秒

*/

然后就是usart.h

C 复制代码
//不使用某个串口时要禁止此串口,以减少编译量
#define EN_USART1 			1		//使能(1)/禁止(0)串口1
#define EN_USART2 			0		//使能(1)/禁止(0)串口2
#define EN_USART3 			1		//使能(1)/禁止(0)串口3

这里使用了串口1和串口3

C 复制代码
//串口3中断服务程序(固定的函数名不能修改)
void USART3_IRQHandler(void){ 	
    Res = USART_ReceiveData(USART3);
} 

大概思路就是串口3利用中断获得模块的返回值也就是字符串 1 和 0,
在主函数中对res进行判断是关灯还是开灯

串口一就还是那个历程完成串口控制功能

大概就是这样,感谢你能看到这里

也是为了防止以后遗忘,偶尔可以回来翻翻

相关推荐
点灯小铭5 小时前
基于51单片机步数检测计步器无线蓝牙APP上传设计
单片机·嵌入式硬件·毕业设计·51单片机·课程设计
沐欣工作室_lvyiyi9 小时前
基于单片机和LabVIEW的多路数据采集器系统设计(论文+源码)
单片机·嵌入式硬件·毕业设计·数据采集·labview
何须至远10 小时前
机器人市场:犹如一颗深水核弹
stm32·单片机·机器人
m0_5982500013 小时前
串扰12-串扰对信号的影响
笔记·嵌入式硬件·硬件工程
LadyKaka22614 小时前
【IMX6ULL驱动学习】PWM驱动
linux·stm32·单片机·学习
Molesidy15 小时前
【MCU】【STM32】基于STM32CubeMX+CLion的STM32开发环境
stm32·单片机·嵌入式硬件·stm32cubemx·clion
10001hours16 小时前
(基于江协科技)51单片机入门:10.AT24C0
科技·嵌入式硬件·51单片机
transuperb17 小时前
51单片机AD/DA
网络·嵌入式硬件·51单片机
光子物联单片机19 小时前
STM32G474单片机开发入门(一)STM32G474RET6单片机详解
stm32·单片机·嵌入式硬件·mcu