找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1211|回复: 1
打印 上一主题 下一主题
收起左侧

syn7318智能语音控制初步开发 STM32单片机代码与手册

[复制链接]
跳转到指定楼层
楼主
ID:753618 发表于 2022-12-15 09:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在网上找了很久的SYN7318,现发上来,共各位学习。并附初步开发程序。

STM32单片机源程序如下:
  1. /************************************************************
  2. **  智能语音控制程序
  3. **  按 S1键 开始
  4. **  修改记录: 增加CAN接口
  5. **  推荐使用 参数 : 寻迹速度 50   转弯速度  80
  6. *************************************************************/
  7. #include "stm32f10x.h"  //包含
  8. #include "sys.h"                                       
  9. #include "usart.h"               
  10. #include "delay_drv.h"
  11. #include "init.h"
  12. #include "led.h"                          
  13. #include "test.h"
  14. #include "djqd.h"
  15. #include "key.h"
  16. #include "xj.h"
  17. #include "csb.h"
  18. #include "hw.h"
  19. #include "74hc595.h"
  20. #include "bh1750.h"
  21. #include "uart_my.h"
  22. #include "canp_hostcom.h"
  23. #include "can_drv.h"
  24. #include "fifo_drv.h"
  25. #include "data_channel.h"
  26. #include "power_check.h"
  27. #include "syn7318.h"
  28. #include "iic.h"
  29. #include "hmc5883l.h"

  30. #define  NUM  10                   // 定义接收数据长度
  31. #define  ZCKZ_ADDR    0xAA  // 定义运输标志物地址编号
  32. #define  YSBZW_ADDR   0x02  // 定义运输标志物地址编号
  33. #define  DZ_ADDR      0x03  // 定义道闸标志物地址编号
  34. #define  LEDXS_ADDR   0x04  // 定义LED显示标志物地址编号
  35. #define  JXB_ADDR     0x05  // 定义机械臂标志物地址编号


  36. void IO_Init(void); //IO初始化        

  37. //u8 mp;        
  38. u8 G_Tab[6];           //定义红外发射数组
  39. u8 S_Tab[NUM];            //定义主返回数据数组
  40. u8 C_Tab[NUM];            //定义运动标志物返回数据数组

  41. u8 Stop_Flag=0;    //状态标志位
  42. u8 Track_Flag=0;   //循迹标志位
  43. u8 G_Flag=0;           //前进标志位
  44. u8 B_Flag=0;           //后退标志位
  45. u8 L_Flag=0;           //左转标志位
  46. u8 R_Flag=0;           //右转标志位
  47. u8 SD_Flag=1;      //运动标志物数据返回允许标志位
  48. u8 Rx_Flag =0;

  49. u16 CodedDisk=0;   //码盘值统计
  50. u16 tempMP=0;             //接收码盘值
  51. u16 MP;                               //控制码盘值
  52. int Car_Spend = 50;//小车速度默认值
  53. int count = 0;           //计数
  54. int LSpeed;                     //循迹左轮速度
  55. int RSpeed;                     //循迹右轮速度
  56. u8 Line_Flag=0;           //
  57. u8 send_Flag=0;           // 发送标志位

  58. unsigned Light=0; //光照度
  59. // 主函数

  60. RCC_ClocksTypeDef RCC_Clocks;
  61. extern void pwm_test(void);

  62. int main(void)
  63. {
  64.         u8 ut=0;
  65.         u8 i;
  66.         global_times = 0;
  67.         SystemInit();
  68.         Delay_us_Init();
  69.         RCC_GetClocksFreq(&RCC_Clocks);
  70.         SysTick_Config(RCC_Clocks.HCLK_Frequency / 1000);        
  71.         NVIC_Configuration();         
  72.         
  73.         uart1_init(115200);                // 串口初始化为115200
  74.         uart2_init(115200, 0);            // 串口初始化为115200 // 默认开中断
  75.         
  76.         IO_Init();                  //IO初始化

  77.         S_Tab[0]=0x55;
  78.         S_Tab[1]=0xaa;

  79.         C_Tab[0]=0x55;
  80.         C_Tab[1]=0x02;
  81.         
  82.         CanP_Init();
  83.         
  84.         Power_Check();  //电量检测  上电先检测一次电量
  85.         Send_Electric( Electric_Buf[0],Electric_Buf[1]);
  86.         
  87.         STOP();
  88.         Host_Close_UpTrack();
  89.          
  90.         while(1)
  91.         {                           
  92.                  ut ++;
  93.                  LED0 =!LED0;
  94.            delay_ms(100);
  95.                
  96.                  SYN7318_Test();  // 语音测试

  97.                  if(!KEY0)                          //按键K1按下
  98.                  {
  99.                     delay_ms(30);

  100.                     if(!KEY0)
  101.                           {
  102.                                    LED1 = !LED1;
  103.                                          SYN7318_Open();  // 开启测试
  104.                           }
  105.                 }
  106.                  
  107.                 if( !(ut %100))
  108.                 {               
  109.                         Power_Check();  //电量检测  无需实时操作
  110.       Send_Electric( Electric_Buf[0],Electric_Buf[1]);               
  111.                 }
  112.          
  113.         }
  114.         
  115. }

  116. /***************************************************************
  117. ** 功能:     初始化核心板所使用端口
  118. ** 参数:            无参数
  119. ** 返回值:   无
  120. ****************************************************************/
  121. void IO_Init(void)
  122. {
  123.                 YJ_INIT();                        //初始化硬件

  124.                 GPIOB->CRH&=0XFFFFFFF0;         
  125.                 GPIOB->CRH|=0X00000008;//PB8 设置成输入                              
  126.                 GPIOB->ODR|=1<<8;           //PB8上拉

  127.                 GPIOC->CRH&=0X000FFFFF;
  128.                 GPIOC->CRH|=0X33300000;   //PC13/PC14/PC15推挽输出           
  129.                 GPIOC->ODR|=0XE000;       //PC13/PC14/PC15输出高
  130.                         
  131.                 GPIOD->CRH&=0XFFF0FFFF;
  132.                 GPIOD->CRH|=0X00030000;   //PD12推挽输出           
  133.                 GPIOD->ODR|=0X1000;       //PD12推挽高                                                                                          

  134.                 LED_L=1;                                 
  135.                 LED_R=1;
  136.                 BEEP=1;
  137.                 beep=0;               
  138. }
复制代码

Keil代码下载:
Keil代码 智能语音控制.7z (260.23 KB, 下载次数: 15)
SYN7318.pdf (2.44 MB, 下载次数: 14)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:753618 发表于 2022-12-15 09:39 | 只看该作者
本程序是百科融创代码,仅供学习,切勿商用。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表