STM32使用ASR01语音播报模块
这里使用的asr01语音播报模块是模块化编程
先下载天问block软件
选上设备:
添加扩展:
自己再根据鹿小班模块进行操作进行相关操作,先接上usb数据线
记得先生成模型再去编译下载
发送给单片机通信时只需要vcc gnd 还有tx接上单片机rx,如果想用stm32控制语音模块,可以接线,让asr01读取单片机引脚。
这里提供一套修改好的天问程序模板和stm32f103模板
链接: 天问模板链接 提取码: ytie
main.c
-
-
-
-
-
-
-
-
int main(void)
-
{
-
vu8 k=0;
-
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//选择第二组
-
led_init();
-
beep_init();
-
key_init();
-
delay_init();
-
usat2_init();
-
led0=1;
-
led1=1;
-
while(1)
-
{
-
if(USART_ReceiveData(USART1)=='A')led1=0;
-
if(USART_ReceiveData(USART1)==2)led1=1;
-
if(USART_ReceiveData(USART1)==5)BEEP =1;
-
if(USART_ReceiveData(USART1)==6)BEEP =0;
-
-
k=ks(0);
-
if(k)
-
{
-
switch(k)
-
{
-
case sup:led0=!led0;USART_SendData(USART1,0x01);break;
-
case s0:USART_SendData(USART1,0x04);led0=!led0;led1=!led1;break;
-
case s1:USART_SendData(USART1,0x02);led1=!led1;break;
-
case s2:USART_SendData(USART1,0x03);led1=!led1;break;
-
-
}
-
}
-
else delay_ms(10);
-
}
-
}
-
Usart.c
-
-
-
void usat2_init(void)
-
{
-
GPIO_InitTypeDef uart;
-
USART_InitTypeDef uart1;
-
NVIC_InitTypeDef uart2;
-
-
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//使能相应时钟
-
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE); //串口时钟
-
-
uart.GPIO_Mode=GPIO_Mode_AF_PP;//复用推挽输出
-
uart.GPIO_Pin=GPIO_Pin_9;//输出引脚
-
uart.GPIO_Speed=GPIO_Speed_10MHz;
-
GPIO_Init(GPIOA,&uart);
-
-
uart.GPIO_Mode=GPIO_Mode_IN_FLOATING;//浮空输入
-
uart.GPIO_Pin=GPIO_Pin_10;
-
uart.GPIO_Speed=GPIO_Speed_10MHz;
-
GPIO_Init(GPIOA,&uart);//模式设置
-
-
uart1.USART_BaudRate=9600;//比特率
-
uart1.USART_HardwareFlowControl=USART_HardwareFlowControl_None;//不使用yingjianliu
-
uart1.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;//使能发送与接收
-
uart1.USART_Parity=USART_Parity_No;//奇偶校验
-
uart1.USART_StopBits=USART_StopBits_1;//停止位
-
uart1.USART_WordLength=USART_WordLength_8b;//字长
-
USART_Init(USART1,&uart1);//初始化串口,并进行配置
-
-
-
USART_Cmd(USART1,ENABLE);//使能串口
-
//以上为串口
-
-
//之后为中断
-
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//(中断使能函数)开启接收中断;串口端选择,方式,使能{EA}
-
-
uart2.NVIC_IRQChannel=USART1_IRQn;
-
uart2.NVIC_IRQChannelCmd=ENABLE;
-
uart2.NVIC_IRQChannelPreemptionPriority=1;//抢占优先级
-
uart2.NVIC_IRQChannelSubPriority=1;//响应优先级
-
NVIC_Init(&uart2);//NVIC中断优先级
-
-
}
-
-
void USART1_IRQ(void)//中断服务函数
-
{
-
u8 res;
-
if(USART_GetITStatus(USART1,USART_IT_RXNE))
-
{
-
res=USART_ReceiveData(USART1);//接收
-
USART_SendData(USART1,res);//发送
-
}
-
}
Usart.h
-
-
-
-
-
void usat2_init(void);
-
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgabkeb
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24