標(biāo)題:
syn7318智能語(yǔ)音控制初步開(kāi)發(fā) STM32單片機(jī)代碼與手冊(cè)
[打印本頁(yè)]
作者:
zirencharles
時(shí)間:
2022-12-15 09:38
標(biāo)題:
syn7318智能語(yǔ)音控制初步開(kāi)發(fā) STM32單片機(jī)代碼與手冊(cè)
在網(wǎng)上找了很久的SYN7318,現(xiàn)發(fā)上來(lái),共各位學(xué)習(xí)。并附初步開(kāi)發(fā)程序。
STM32單片機(jī)源程序如下:
/************************************************************
** 智能語(yǔ)音控制程序
** 按 S1鍵 開(kāi)始
** 修改記錄: 增加CAN接口
** 推薦使用 參數(shù) : 尋跡速度 50 轉(zhuǎn)彎速度 80
*************************************************************/
#include "stm32f10x.h" //包含
#include "sys.h"
#include "usart.h"
#include "delay_drv.h"
#include "init.h"
#include "led.h"
#include "test.h"
#include "djqd.h"
#include "key.h"
#include "xj.h"
#include "csb.h"
#include "hw.h"
#include "74hc595.h"
#include "bh1750.h"
#include "uart_my.h"
#include "canp_hostcom.h"
#include "can_drv.h"
#include "fifo_drv.h"
#include "data_channel.h"
#include "power_check.h"
#include "syn7318.h"
#include "iic.h"
#include "hmc5883l.h"
#define NUM 10 // 定義接收數(shù)據(jù)長(zhǎng)度
#define ZCKZ_ADDR 0xAA // 定義運(yùn)輸標(biāo)志物地址編號(hào)
#define YSBZW_ADDR 0x02 // 定義運(yùn)輸標(biāo)志物地址編號(hào)
#define DZ_ADDR 0x03 // 定義道閘標(biāo)志物地址編號(hào)
#define LEDXS_ADDR 0x04 // 定義LED顯示標(biāo)志物地址編號(hào)
#define JXB_ADDR 0x05 // 定義機(jī)械臂標(biāo)志物地址編號(hào)
void IO_Init(void); //IO初始化
//u8 mp;
u8 G_Tab[6]; //定義紅外發(fā)射數(shù)組
u8 S_Tab[NUM]; //定義主返回?cái)?shù)據(jù)數(shù)組
u8 C_Tab[NUM]; //定義運(yùn)動(dòng)標(biāo)志物返回?cái)?shù)據(jù)數(shù)組
u8 Stop_Flag=0; //狀態(tài)標(biāo)志位
u8 Track_Flag=0; //循跡標(biāo)志位
u8 G_Flag=0; //前進(jìn)標(biāo)志位
u8 B_Flag=0; //后退標(biāo)志位
u8 L_Flag=0; //左轉(zhuǎn)標(biāo)志位
u8 R_Flag=0; //右轉(zhuǎn)標(biāo)志位
u8 SD_Flag=1; //運(yùn)動(dòng)標(biāo)志物數(shù)據(jù)返回允許標(biāo)志位
u8 Rx_Flag =0;
u16 CodedDisk=0; //碼盤(pán)值統(tǒng)計(jì)
u16 tempMP=0; //接收碼盤(pán)值
u16 MP; //控制碼盤(pán)值
int Car_Spend = 50;//小車(chē)速度默認(rèn)值
int count = 0; //計(jì)數(shù)
int LSpeed; //循跡左輪速度
int RSpeed; //循跡右輪速度
u8 Line_Flag=0; //
u8 send_Flag=0; // 發(fā)送標(biāo)志位
unsigned Light=0; //光照度
// 主函數(shù)
RCC_ClocksTypeDef RCC_Clocks;
extern void pwm_test(void);
int main(void)
{
u8 ut=0;
u8 i;
global_times = 0;
SystemInit();
Delay_us_Init();
RCC_GetClocksFreq(&RCC_Clocks);
SysTick_Config(RCC_Clocks.HCLK_Frequency / 1000);
NVIC_Configuration();
uart1_init(115200); // 串口初始化為115200
uart2_init(115200, 0); // 串口初始化為115200 // 默認(rèn)開(kāi)中斷
IO_Init(); //IO初始化
S_Tab[0]=0x55;
S_Tab[1]=0xaa;
C_Tab[0]=0x55;
C_Tab[1]=0x02;
CanP_Init();
Power_Check(); //電量檢測(cè) 上電先檢測(cè)一次電量
Send_Electric( Electric_Buf[0],Electric_Buf[1]);
STOP();
Host_Close_UpTrack();
while(1)
{
ut ++;
LED0 =!LED0;
delay_ms(100);
SYN7318_Test(); // 語(yǔ)音測(cè)試
if(!KEY0) //按鍵K1按下
{
delay_ms(30);
if(!KEY0)
{
LED1 = !LED1;
SYN7318_Open(); // 開(kāi)啟測(cè)試
}
}
if( !(ut %100))
{
Power_Check(); //電量檢測(cè) 無(wú)需實(shí)時(shí)操作
Send_Electric( Electric_Buf[0],Electric_Buf[1]);
}
}
}
/***************************************************************
** 功能: 初始化核心板所使用端口
** 參數(shù): 無(wú)參數(shù)
** 返回值: 無(wú)
****************************************************************/
void IO_Init(void)
{
YJ_INIT(); //初始化硬件
GPIOB->CRH&=0XFFFFFFF0;
GPIOB->CRH|=0X00000008;//PB8 設(shè)置成輸入
GPIOB->ODR|=1<<8; //PB8上拉
GPIOC->CRH&=0X000FFFFF;
GPIOC->CRH|=0X33300000; //PC13/PC14/PC15推挽輸出
GPIOC->ODR|=0XE000; //PC13/PC14/PC15輸出高
GPIOD->CRH&=0XFFF0FFFF;
GPIOD->CRH|=0X00030000; //PD12推挽輸出
GPIOD->ODR|=0X1000; //PD12推挽高
LED_L=1;
LED_R=1;
BEEP=1;
beep=0;
}
復(fù)制代碼
Keil代碼下載:
Keil代碼 智能語(yǔ)音控制.7z
(260.23 KB, 下載次數(shù): 15)
2022-12-15 15:39 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
SYN7318.pdf
(2.44 MB, 下載次數(shù): 14)
2022-12-15 09:37 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
zirencharles
時(shí)間:
2022-12-15 09:39
本程序是百科融創(chuàng)代碼,僅供學(xué)習(xí),切勿商用。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1