赞
踩
先下载天问block软件
选上设备:
添加扩展:
自己再根据鹿小班模块进行操作进行相关操作,先接上usb数据线
记得先生成模型再去编译下载
发送给单片机通信时只需要vcc gnd 还有tx接上单片机rx,如果想用stm32控制语音模块,可以接线,让asr01读取单片机引脚。
这里提供一套修改好的天问程序模板和stm32f103模板
链接: 天问模板链接 提取码: ytie
- #include "stm32f10x.h"
- #include "led.h"
- #include "delay.h"
- #include "beep.h"
- #include "key.h"
- #include "Usart.h"
-
- 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);
- }
- }
-
- #include "Usart.h"
-
- 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);//发送
- }
- }
- #ifndef __chaunkou_h
- #define __chaunkou_h
- #include "stm32f10x.h"
-
- void usat2_init(void);
- #endif
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。