KT142A语音芯片驱动程序以及使用注意事项

目录

1.概述

1.1 简介 

KT142A是一个提供串口的语音芯片,完美的集成了MP3、WAV的硬解码。内置350KByte的空间,最大支持300秒的语音长度,支持多段语音,内置空间不够也可以选择外挂spiflash存储器,同时支持直驱0.5W的扬声器,无需功放

软件支持串口通信协议,可以外挂SPIFLASH、U盘、TF卡作为存储介质,用户可以灵活的选用其中的任何一种设备作为语音的存储介质。通过简单的串口指令即可完成播放指定的语音,以及如何播放等功能,无需繁琐的底层操作,使用方便,外围简单,稳定可靠是此款产品的最大特点。

1.2 功能简介

2.方案说明

2.1 参数说明

2.2 管脚说明

3.1 通讯格式

3.2 串口下载语音的方法

 3.3 参考的代码


1.概述

1.1 简介 

KT142A是一个提供串口的语音芯片,完美的集成了MP3、WAV的硬解码。内置350KByte的空间,最大支持300秒的语音长度,支持多段语音,内置空间不够也可以选择外挂spiflash存储器,同时支持直驱0.5W的扬声器,无需功放

软件支持串口通信协议可以外挂SPIFLASH、U盘、TF卡作为存储介质,用户可以灵活的选用其中的任何一种设备作为语音的存储介质。通过简单的串口指令即可完成播放指定的语音,以及如何播放等功能,无需繁琐的底层操作,使用方便,外围简单,稳定可靠是此款产品的最大特点。

1、支持用于使用我们配套的上位机软件,直接串口下载mp3文件到芯片内置的350kByte存储空间中

2、无需任何烧录器,无需任何软件,PC虚拟外挂的SPIFLASH为存储介质的U盘功能,后面章节详细说明

3、芯片内置0.5W的功放,超宽的供电范围【3.3--5.2V】,外置2个105的电容即可正常工作,非常简单

1.2 功能简介

1、芯片支持重复烧写,支持采样率(KHz):8/11.025/12/16/22.05/24/32

2、24位DAC输出,动态范围支持90dB,信噪比支持85dB 。芯片支持任意切换DAC输出和PWM直驱扬声器

3、最大支持外挂16M字节的SPIFLASH。例如W25Q16[2M字节]、W25Q128[16M字节]

4USB接口更新语音文件,无需安装任何软件。支持XP和WIN7、WIN10等等系统。

5支持组合播放功能,可以实现报时、报温度,在一定程度上可以替代一些昂贵的TTS方案

6、支持外挂多种类型的功放,如3W、5W、10W等等 。也支持内置0.5W的PWM直接驱动扬声器

7、支持上电循环播放的功能

8、可以支持多种存储介质,如:U盘、TF卡、SPIFLASH[超小型封装]作为存储介质

2.方案说明

芯片选用的是SOC方案,集成了一个16位的MCU,以及一个专门针对音频解码的aDSP,采用硬解码的方式,更加保证了系统的稳定性和音质。小巧的封装尺寸更加满足嵌入其它产品的需求

2.1 参数说明

名称

参数

MP3文件格式

1、支持所有比特率11172-3和ISO13813-3 layer3音频解码

2、采样率支持(KHZ):8/11.025/12/16/22.05/24/32

3、支持Normal、Jazz、Classic、Pop、Rock等音效

USB接口

2.0标准

UART接口

标准串口,TTL电平,波特率可设[指令设置]

输入电压

2.7V-5.2V[7805后级串一个二极管为最佳]

额定电流

10MA[静态]

低功耗电流

<200uA

功放功率

内置0.5W的PWM输出

尺寸

参见封装章节

工作温度

[-40] -- [80度]

湿度

5% ~ 95%

主芯片型号

KT142A[SOP16]

2.2 管脚说明

 

引脚序号

引脚名称

功能描述

备注

1

PA6

SPI的片选

2

PA5

SPI的数据口

3

PA4

SPI的时钟口数字地

4

USBDM

USB接口/通用输入输出口

必须预留测试点

5

UDBDP

USB接口/通用输入输出口

必须预留测试点

6

PA0

串口-RX

连接MCU的TX脚

7

PB1

串口-TX

连接MCU的RX脚

8

AGND

模拟音频

9

PB0

指示灯脚

必须预留测试点

10

VDDIO

3.3V LDO输出[是KT142A的输出]

必须预留测试点

11

VBAT

供电脚正极

4.2V为最佳

12

GND

数字地

13

SPO1

扬声器输出脚1

直驱0.5W扬声器

14

SPO2

扬声器输出脚1

直驱0.5W扬声器

15

PA12

通用输入输出口

有声音输出低,空闲输出高

16

PA11

通用输入输出口

测试脚

串口作为一种在控制领域常用的通信,我们进行了工业级别的优化,加入的帧的校验、重发、错误处理等措施,大大加强通信的稳定性和可靠性,同时可以在此基础上扩展更加强大的RS485

进行组网功能,串口的通信波特率可自行设置,默认为9600   

3.1 通讯格式

支持异步串口通讯模式,通过串口接受上位机发送的命令
    通讯标准:115200 bps --- 不可修改
    数据位  :8

    停止位  :1
    校验位  :none
    流控制  :none

格式:$S  VER  Len  CMD  Feedback  para1  para2  checksum  $O

1

0x7E

起始标记

2

CMD

命令字节

3

lenH

包的序号--高字节

4

lenL

包的序号--低字节

.....

DAT

数据区

结束

0xEF

结束标志

举个例子,如果我们指定播放SPIFLASH的分区1里面的语音播放,就需要发送:7E A5 00 02 00 01 EF   数据长度为2 ,这2个字节分别是[00 01] 。代表是指定分区1的第1段语音播放

3.2 串口下载语音的方法

 3.3 参考的代码

/**
  ******************************************************************************
  * @file    main.c
  * @author  fire
  * @version V1.0
  * @date    2015-xx-xx
  * @brief   串口接发测试,串口接收到数据后马上回传。
  ******************************************************************************
  * @attention
  *
  * 实验平台:野火  STM32 F407 开发板
  * 论坛    :http://www.firebbs.cn
  * 淘宝    :https://fire-stm32.taobao.com
  *
  ******************************************************************************
  */
  
#include "stm32f4xx.h"
#include "./usart/bsp_debug_usart.h"
#include "delay.h"
/**
  * @brief  主函数
  * @param  无
  * @retval 无
  */
/**********************************************************
1、程序的整个下载流程比较复杂,不能想当然的理解,一定要配合我们给的上位机进行对比

2、下载流程,我们没有提供参考程序,需要您自己去写

3、上位机的源码我们是不提供的,您可以参考,原理其实也就是

握手---->分包发--->完毕--->退出下载---->MCU发指令点播
**********************************************************/
  
  
/**********************************************************
 -- 这里是通过winhex,获取的一个小音乐文件的数组
 -- 这里仅仅用来模拟测试而已
 -- 很明显可以看到这个音乐文件,大概在2K
 -- 这个语音文件的数组,播放的音乐是"8"
 -- 详细的参见文档"20191209_如何使用WINHEX查看音频文件的数据以及生成数组"
**********************************************************/
unsigned char musicdata[2560] = {
	0xFF, 0xF3, 0x28, 0xC4, 0x00, 0x09, 0xE0, 0x5D, 0x78, 0x0C, 0x18, 0xC6, 0x28, 0x0E, 0x00, 0xCA, 
	0x28, 0x48, 0xE3, 0x0B, 0x10, 0x2C, 0x71, 0x85, 0xA3, 0xC5, 0x62, 0x12, 0x38, 0xC3, 0x88, 0x07, 
	0x02, 0xDF, 0xE8, 0x32, 0xEF, 0xFF, 0xFF, 0xF4, 0x9A, 0x7F, 0xE8, 0x32, 0x09, 0x8A, 0xA1, 0xF9, 
	0x93, 0x26, 0x81, 0xC1, 0x65, 0x0C, 0x39, 0x25, 0x17, 0x0D, 0x80, 0xFC, 0x01, 0x13, 0xBE, 0x20, 
	0x71, 0x40, 0xC1, 0x22, 0xE3, 0x9D, 0xF2, 0xF9, 0xFF, 0xF3, 0x28, 0xC4, 0x13, 0x09, 0x30, 0x06, 
	0x9E, 0x5E, 0x00, 0x44, 0x02, 0x01, 0x39, 0xC6, 0xFE, 0x08, 0x3C, 0xE5, 0x1F, 0x9C, 0xFF, 0xFF, 
	0xEA, 0x04, 0xC1, 0xFF, 0xF3, 0xFE, 0x51, 0x7A, 0x90, 0x5D, 0x80, 0x19, 0x42, 0x64, 0x14, 0x46, 
	0xCB, 0x1D, 0x85, 0x4E, 0x10, 0x07, 0x54, 0x95, 0x00, 0x91, 0x10, 0xF0, 0x32, 0x7D, 0xE2, 0xAB, 
	0x04, 0x88, 0x9A, 0x4F, 0x4C, 0x8E, 0x09, 0x24, 0xE8, 0x5C, 0xC8, 0x99, 0xC1, 0x21, 0x43, 0x20, 
	0xFF, 0xF3, 0x28, 0xC4, 0x29, 0x10, 0x28, 0x4A, 0x5C, 0x3E, 0x32, 0x4C, 0x08, 0x60, 0xA1, 0xCF, 
	0xFA, 0x59, 0x43, 0xF9, 0x88, 0x81, 0x2C, 0x26, 0x64, 0xA0, 0x86, 0x27, 0xA0, 0x2E, 0x21, 0x88, 
	0xD0, 0x91, 0xCA, 0x6C, 0xC2, 0x2F, 0x39, 0x25, 0xB7, 0x61, 0xFF, 0xC0, 0x74, 0x3C, 0x55, 0x11, 
	0xC1, 0xF7, 0x43, 0x29, 0x52, 0x63, 0xFB, 0x13, 0x74, 0x55, 0x22, 0x59, 0xD5, 0x99, 0x3F, 0xC9, 
	0xE7, 0x44, 0x20, 0x76, 0xB3, 0x31, 0xB6, 0x62, 0xFF, 0xF3, 0x28, 0xC4, 0x23, 0x10, 0x52, 0x4E, 
	0x99, 0xBE, 0x10, 0x0B, 0xA2, 0x0F, 0x52, 0x68, 0x16, 0xFF, 0xF4, 0x14, 0xC8, 0x86, 0x6D, 0x5B, 
	0x33, 0x13, 0xB6, 0x40, 0xE0, 0x27, 0x2F, 0x4E, 0x26, 0x1F, 0x40, 0xDF, 0x2E, 0x58, 0xD9, 0x0A, 
	0xBD, 0x5B, 0xBA, 0xEA, 0x05, 0x2A, 0x72, 0x8D, 0x74, 0x03, 0x34, 0x83, 0x8F, 0x7B, 0x70, 0xF4, 
	0xD5, 0xBA, 0xA2, 0x94, 0x42, 0x35, 0xFF, 0x64, 0x6B, 0x68, 0x6F, 0xB9, 0xF4, 0xAF, 0xA2, 0xAF, 
	0xFF, 0xF3, 0x28, 0xC4, 0x1C, 0x10, 0x6A, 0x1E, 0x5C, 0xFE, 0x0A, 0x44, 0x10, 0x18, 0xB7, 0x83, 
	0x32, 0x29, 0x54, 0xAB, 0x2A, 0xA3, 0x94, 0x8C, 0x75, 0x4F, 0xFF, 0xFF, 0xF4, 0x9C, 0xFC, 0xDF, 
	0xFA, 0x32, 0xA9, 0x51, 0x50, 0x10, 0x20, 0x83, 0xEC, 0x00, 0x5B, 0xF0, 0x2A, 0xC1, 0x54, 0xF6, 
	0xFD, 0x5F, 0x6D, 0x09, 0x37, 0x1C, 0x92, 0x5B, 0xB0, 0xD8, 0x01, 0xD0, 0xD7, 0xC4, 0xB8, 0x3C, 
	0x21, 0x15, 0x29, 0x90, 0xC4, 0x44, 0x5D, 0x4A, 0xFF, 0xF3, 0x28, 0xC4, 0x15, 0x0F, 0x02, 0x1A, 
	0x8E, 0x5E, 0x10, 0x05, 0xC2, 0xF3, 0x5C, 0xDE, 0x67, 0xCD, 0xAF, 0x7F, 0x76, 0x2C, 0xCD, 0xA0, 
	0xE7, 0x55, 0x50, 0xA2, 0x5C, 0xC1, 0x81, 0x91, 0x94, 0xCA, 0x52, 0x3F, 0xF5, 0xBE, 0xCD, 0x7D, 
	0x16, 0x94, 0x7B, 0xB0, 0x85, 0x92, 0x54, 0xF2, 0xCA, 0x9C, 0xD9, 0xEB, 0x09, 0xC9, 0x24, 0xB4, 
	0x6B, 0x80, 0xFC, 0x01, 0xD3, 0x1D, 0xB4, 0x65, 0xD8, 0xA3, 0x5E, 0x7B, 0xD5, 0xD1, 0xF0, 0xB4, 
	0xFF, 0xF3, 0x28, 0xC4, 0x14, 0x0B, 0xE9, 0x2E, 0x96, 0x5E, 0x11, 0x84, 0x46, 0x5E, 0xBA, 0x5F, 
	0xFE, 0xB6, 0x80, 0x11, 0xB6, 0xA3, 0x3D, 0xC8, 0xEE, 0xD1, 0xC8, 0x91, 0x73, 0xFF, 0xFF, 0xFE, 
	0xB8, 0x7A, 0x91, 0x55, 0xB4, 0xDE, 0xB7, 0xB0, 0xD2, 0x01, 0x39, 0x2D, 0xB6, 0x8D, 0xC7, 0xE0, 
	0x01, 0xBD, 0x8A, 0x41, 0x32, 0x07, 0xE9, 0x13, 0xB3, 0x02, 0xD0, 0x9F, 0x75, 0x96, 0x5E, 0xB3, 
	0xA2, 0x96, 0x99, 0xFF, 0xFF, 0xEE, 0x5B, 0x02, 0xFF, 0xF3, 0x28, 0xC4, 0x1F, 0x0D, 0xD9, 0x2A, 
	0x96, 0x5E, 0x01, 0x84, 0x36, 0x19, 0x18, 0x38, 0x42, 0x8A, 0x20, 0x81, 0x60, 0xA8, 0x80, 0xD0, 
	0x54, 0x31, 0xFE, 0xFD, 0x28, 0x07, 0xCD, 0xEF, 0xC4, 0xAC, 0xAC, 0x39, 0x6D, 0x55, 0x4D, 0xC9, 
	0x25, 0xB4, 0x0D, 0x80, 0x45, 0xA2, 0x1C, 0xD4, 0x29, 0xA1, 0x04, 0x88, 0xB9, 0x93, 0x70, 0xB1, 
	0x87, 0xED, 0x5A, 0x37, 0xF9, 0xDB, 0x2A, 0xE0, 0xC4, 0x66, 0x78, 0x39, 0x89, 0x69, 0x04, 0xA4, 
	0xFF, 0xF3, 0x28, 0xC4, 0x22, 0x07, 0xF1, 0x2A, 0x96, 0x58, 0x10, 0x07, 0x27, 0x00, 0x7A, 0x1E, 
	0x13, 0xA7, 0x93, 0x8E, 0x68, 0x28, 0xCB, 0x84, 0x97, 0x78, 0xD4, 0x9B, 0xBC, 0x6A, 0x77, 0xF5, 
	0xD6, 0x7E, 0x23, 0xBF, 0x81, 0x5B, 0x7A, 0x5B, 0x37, 0xB6, 0x29, 0x7F, 0xE5, 0x22, 0xAD, 0x05, 
	0x33, 0x3C, 0x0D, 0x47, 0x17, 0x44, 0x0B, 0x9C, 0x34, 0xF9, 0x0F, 0xF1, 0xEE, 0xC0, 0x67, 0xDC, 
	0xC2, 0x79, 0x51, 0xCE, 0xEA, 0x81, 0x5B, 0xFA, 0xFF, 0xF3, 0x28, 0xC4, 0x3D, 0x0F, 0x51, 0x32, 
	0x34, 0x14, 0x78, 0x07, 0x24, 0x15, 0x13, 0xF6, 0xE0, 0x02, 0xD1, 0xB0, 0xA0, 0x5F, 0xB7, 0x63, 
	0x94, 0x29, 0x67, 0x67, 0x4F, 0xB7, 0x55, 0xAA, 0x4A, 0xF2, 0x35, 0x8E, 0xAC, 0x08, 0xD4, 0x05, 
	0x7F, 0xD7, 0xFF, 0xFF, 0xA3, 0x39, 0xD5, 0x9E, 0x8E, 0x24, 0x16, 0x0E, 0x0B, 0xF4, 0x1A, 0x22, 
	0x5C, 0xA8, 0x54, 0x8B, 0xFF, 0xFE, 0xBF, 0x8C, 0xEE, 0x74, 0x8A, 0x05, 0x6B, 0xBD, 0xB9, 0x25, 
	0xFF, 0xF3, 0x28, 0xC4, 0x3A, 0x0D, 0x29, 0xC6, 0x81, 0xBE, 0x10, 0x05, 0x0A, 0x90, 0x00, 0xEE, 
	0x1F, 0x3E, 0x70, 0x1C, 0x30, 0x32, 0x84, 0x6C, 0x6A, 0x9C, 0x91, 0xA8, 0x50, 0xC0, 0x40, 0xA3, 
	0x13, 0x90, 0xA3, 0x93, 0x7A, 0x18, 0x5C, 0x5C, 0xDE, 0x50, 0x10, 0x39, 0xCF, 0x80, 0xF2, 0xF0, 
	0x39, 0x70, 0xB8, 0x7F, 0x44, 0x63, 0xE2, 0xA4, 0xD6, 0x5D, 0xBF, 0xFE, 0x07, 0x07, 0xC1, 0xF0, 
	0x70, 0x10, 0xFE, 0x66, 0x0C, 0x06, 0x04, 0x0E, 0xFF, 0xF3, 0x28, 0xC4, 0x40, 0x0E, 0xF0, 0x0A, 
	0x7D, 0x9F, 0x42, 0x10, 0x02, 0x07, 0x03, 0xA2, 0x51, 0x68, 0xB4, 0x0A, 0x00, 0x80, 0x0C, 0x77, 
	0xA3, 0xE9, 0x8A, 0x33, 0xDA, 0x06, 0x15, 0x56, 0xE1, 0x7D, 0x09, 0x12, 0x18, 0xD3, 0x0E, 0x80, 
	0x07, 0xB2, 0xBA, 0x22, 0xD8, 0x64, 0xE6, 0x68, 0xED, 0x8F, 0xE4, 0xD8, 0xF1, 0x1C, 0x15, 0x1A, 
	0x55, 0x42, 0x82, 0x10, 0xC2, 0xE6, 0x84, 0xA8, 0x9C, 0x0E, 0x98, 0xBD, 0x6D, 0xA0, 0x83, 0x79, 
	0xFF, 0xF3, 0x28, 0xC4, 0x3F, 0x17, 0x3A, 0x23, 0x0E, 0x5F, 0x8D, 0x88, 0x02, 0x84, 0xD4, 0xD9, 
	0xD6, 0xFF, 0xFD, 0x9F, 0x77, 0x3A, 0xA4, 0x96, 0x82, 0x45, 0xC3, 0x6F, 0xFF, 0xFF, 0xB1, 0x7C, 
	0xB8, 0xA3, 0x22, 0x01, 0xE1, 0x7F, 0xFF, 0xFF, 0x80, 0xDF, 0xD5, 0x50, 0x20, 0xE0, 0x01, 0xA4, 
	0x97, 0x81, 0x99, 0x47, 0x41, 0x79, 0x58, 0x49, 0xD1, 0x47, 0xCC, 0xC7, 0xF1, 0x66, 0x75, 0xBD, 
	0x24, 0x84, 0x04, 0xDF, 0xD6, 0xB5, 0x88, 0xE0, 0xFF, 0xF3, 0x28, 0xC4, 0x1D, 0x13, 0xC2, 0x32, 
	0xF2, 0x37, 0xCD, 0x68, 0x02, 0x28, 0xE6, 0xCD, 0xF7, 0x20, 0x1A, 0x7D, 0x46, 0x23, 0x90, 0xB8, 
	0xDE, 0x89, 0x90, 0xDE, 0x69, 0x7F, 0x98, 0xBB, 0x7D, 0x68, 0xFF, 0xCF, 0xA1, 0xFD, 0x7F, 0xE8, 
	0x9B, 0xFF, 0x51, 0x9A, 0x6F, 0xEA, 0x3E, 0x58, 0x9B, 0xAB, 0xCC, 0x4E, 0x32, 0x32, 0x20, 0x87, 
	0x3B, 0xFF, 0x21, 0x88, 0xAC, 0xD1, 0x90, 0xC8, 0x28, 0x00, 0x79, 0x05, 0xC0, 0x69, 0x6F, 0xC8, 
	0xFF, 0xF3, 0x28, 0xC4, 0x09, 0x0F, 0x39, 0x36, 0xFD, 0x96, 0x3B, 0x4B, 0x02, 0x88, 0xCD, 0xF5, 
	0x34, 0xA0, 0x6F, 0xFC, 0x28, 0x43, 0xF3, 0x20, 0xEC, 0x30, 0x6F, 0xFA, 0x05, 0x8B, 0xFE, 0x83, 
	0xC0, 0x82, 0x9F, 0x28, 0x74, 0x39, 0xFC, 0xA0, 0x28, 0xB7, 0x59, 0xCE, 0x1A, 0x7F, 0x09, 0x72, 
	0xA0, 0x99, 0xFE, 0x04, 0xD2, 0x1D, 0x39, 0xD0, 0x1E, 0xE6, 0x7F, 0xA5, 0xE0, 0x37, 0xEB, 0xFF, 
	0x26, 0x62, 0x00, 0x20, 0x00, 0xA1, 0x01, 0x50, 0xFF, 0xF3, 0x28, 0xC4, 0x07, 0x0E, 0xB2, 0x4A, 
	0xEE, 0x3E, 0x68, 0x45, 0xA4, 0x1B, 0xF9, 0x24, 0x23, 0xFF, 0xCC, 0xC8, 0x4F, 0xEA, 0xCD, 0xC6, 
	0xDE, 0x82, 0xAA, 0x2F, 0x80, 0x2D, 0x2E, 0xFF, 0x27, 0x90, 0xBF, 0x9D, 0x18, 0x71, 0xB7, 0xFC, 
	0xB7, 0xFC, 0x9E, 0x7B, 0xFC, 0x5F, 0xF5, 0xFE, 0x5F, 0xF0, 0x3F, 0xF2, 0xFF, 0x86, 0x4F, 0xD0, 
	0xE1, 0xDB, 0x89, 0x1F, 0xFC, 0xB8, 0x39, 0xD6, 0x4A, 0x02, 0x80, 0x30, 0x01, 0xEE, 0x25, 0xC0, 
	0xFF, 0xF3, 0x28, 0xC4, 0x07, 0x0E, 0xC2, 0x42, 0xF6, 0x3E, 0x6A, 0x0B, 0x60, 0x3F, 0xCD, 0x47, 
	0x67, 0xF9, 0x14, 0xD3, 0xFA, 0xC5, 0x8F, 0xF5, 0x1A, 0x82, 0x04, 0xD5, 0xFF, 0x24, 0x4F, 0xFF, 
	0x3A, 0x3C, 0x00, 0x54, 0x58, 0xEB, 0x6B, 0x7C, 0x90, 0x49, 0x7F, 0xC1, 0x5B, 0xF8, 0xD1, 0xDF, 
	0xD0, 0x4F, 0xFE, 0xDF, 0xEB, 0xFE, 0x85, 0xFF, 0x56, 0xFF, 0x05, 0x67, 0x6F, 0x5B, 0x7A, 0xFF, 
	0xE8, 0x02, 0x80, 0x20, 0x01, 0x6D, 0x4A, 0x50, 0xFF, 0xF3, 0x28, 0xC4, 0x07, 0x0D, 0x01, 0x5E, 
	0xF6, 0x3E, 0x02, 0x8E, 0x3C, 0x28, 0x5C, 0x45, 0xFF, 0x95, 0x13, 0x3F, 0xC2, 0x81, 0xFB, 0xBD, 
	0x44, 0xA0, 0x19, 0x4F, 0xE2, 0x02, 0xFF, 0xE0, 0xF4, 0x91, 0xD5, 0x6E, 0x82, 0xF7, 0xFD, 0x09, 
	0xFF, 0xA9, 0x07, 0x70, 0x87, 0xBB, 0xA1, 0xFC, 0x57, 0xC3, 0x7E, 0xDE, 0xA7, 0x71, 0x30, 0x63, 
	0xFF, 0xEE, 0x02, 0x00, 0x20, 0x17, 0xA9, 0x40, 0xE7, 0xC0, 0x65, 0xFF, 0xE4, 0xD7, 0xF7, 0xC6, 
	0xFF, 0xF3, 0x28, 0xC4, 0x0E, 0x0C, 0x88, 0xF2, 0xEE, 0x16, 0x01, 0x9A, 0x24, 0x31, 0x9F, 0xBD, 
	0x65, 0x40, 0x25, 0x83, 0x98, 0x7B, 0xF2, 0x71, 0x1D, 0xBF, 0x50, 0xFC, 0x39, 0xD3, 0xEA, 0xF2, 
	0x5E, 0x8F, 0x35, 0xCB, 0x3F, 0xD3, 0xEE, 0xE1, 0xB3, 0x9C, 0x8F, 0xFC, 0x37, 0x7F, 0xE4, 0x5D, 
	0xC8, 0xD5, 0x02, 0xC0, 0x20, 0x49, 0x29, 0xB7, 0xDB, 0x01, 0x57, 0x02, 0x41, 0xBF, 0xF1, 0x80, 
	0xFF, 0xD0, 0x3C, 0xBF, 0xE2, 0x60, 0x46, 0xFD, 0xFF, 0xF3, 0x28, 0xC4, 0x16, 0x0C, 0xA0, 0xF7, 
	0x26, 0x5E, 0x01, 0xCA, 0x26, 0x4B, 0xFE, 0xE1, 0x21, 0x33, 0xFC, 0x0A, 0x1E, 0xC4, 0x46, 0xB9, 
	0x64, 0xF1, 0x12, 0x7C, 0x57, 0xCF, 0x6A, 0x06, 0x83, 0xDB, 0x45, 0x53, 0xC4, 0xBF, 0xE5, 0x43, 
	0x41, 0xC5, 0x02, 0x80, 0x22, 0x55, 0x37, 0xD6, 0xE0, 0x1D, 0x1B, 0x1F, 0xFF, 0x19, 0xFE, 0x60, 
	0x19, 0xFF, 0x56, 0x8A, 0xF8, 0x97, 0x89, 0x87, 0x31, 0x18, 0x34, 0x77, 0x9E, 0xF8, 0x4B, 0xFE, 
	0xFF, 0xF3, 0x28, 0xC4, 0x1E, 0x0B, 0x18, 0xAB, 0x0E, 0x3E, 0x00, 0xCA, 0x26, 0x12, 0xF2, 0x4E, 
	0xD4, 0xA0, 0x8D, 0x70, 0x69, 0xFF, 0xE5, 0x7D, 0x41, 0xC2, 0x7D, 0xEA, 0x50, 0x90, 0x5C, 0xB5, 
	0xBA, 0x02, 0x80, 0x0D, 0xFE, 0xA1, 0x88, 0xD4, 0x2F, 0x04, 0x3F, 0xF7, 0x20, 0x13, 0xFF, 0x9B, 
	0xF4, 0xD0, 0x2D, 0xFF, 0xAA, 0x13, 0xFD, 0x7F, 0xE9, 0xFF, 0xFF, 0xEB, 0xFF, 0xFF, 0xC3, 0x15, 
	0xFF, 0xAB, 0x37, 0xFF, 0xFF, 0xD1, 0x1D, 0x91, 0xFF, 0xF3, 0x28, 0xC4, 0x2C, 0x0C, 0x12, 0xC6, 
	0xE4, 0x7E, 0x01, 0x44, 0x4E, 0x58, 0x10, 0xE3, 0xFA, 0x6A, 0x05, 0xCB, 0x51, 0x29, 0x83, 0x98, 
	0x0D, 0xB2, 0x03, 0x1A, 0xC3, 0xF3, 0x90, 0x28, 0x90, 0x57, 0x2C, 0x4B, 0x9E, 0x2D, 0x95, 0x5A, 
	0x8D, 0xA4, 0x36, 0x7A, 0xAF, 0x18, 0x1D, 0xFA, 0xD6, 0x82, 0xC3, 0xC6, 0x7F, 0xFF, 0x8C, 0x42, 
	0xCE, 0xE2, 0xEE, 0x67, 0xFD, 0x61, 0xB5, 0x0A, 0x1F, 0x09, 0x01, 0x8D, 0xE2, 0x2D, 0x95, 0x80, 
	0xFF, 0xF3, 0x28, 0xC4, 0x36, 0x0D, 0x18, 0x5E, 0xD1, 0x9E, 0x00, 0xC4, 0x2A, 0x53, 0x69, 0x80, 
	0x15, 0x89, 0x01, 0xC5, 0x7F, 0xB2, 0x27, 0xFD, 0x38, 0xAB, 0xFE, 0x30, 0xB8, 0xA2, 0x26, 0xB9, 
	0x67, 0x77, 0xFB, 0xF1, 0xBC, 0x5E, 0x98, 0x4A, 0xD4, 0x41, 0xE1, 0x47, 0x69, 0xFF, 0x66, 0x6E, 
	0xC4, 0x95, 0x72, 0xF9, 0x6E, 0xDD, 0xE9, 0x83, 0x42, 0xC0, 0x55, 0x05, 0x2C, 0x7B, 0x10, 0x03, 
	0x08, 0x23, 0x92, 0x00, 0x30, 0x00, 0x28, 0x7B, 0xFF, 0xF3, 0x28, 0xC4, 0x3C, 0x0C, 0xB8, 0xEE, 
	0x9C, 0x3E, 0x01, 0x4C, 0x34, 0xFA, 0xDC, 0x77, 0xD1, 0x83, 0xA1, 0x8D, 0xEB, 0x12, 0x06, 0x16, 
	0x03, 0x19, 0x6B, 0x5C, 0x37, 0xCD, 0x6A, 0x89, 0x81, 0xD0, 0xD8, 0x77, 0xFF, 0xFF, 0xFF, 0xE8, 
	0xEF, 0x9E, 0x0D, 0x55, 0x00, 0x50, 0x20, 0xD7, 0x6E, 0x00, 0x54, 0x77, 0x3F, 0xB2, 0xFE, 0x73, 
	0x96, 0x18, 0x57, 0xE9, 0x72, 0x41, 0xCE, 0xEF, 0xEC, 0xA8, 0x7F, 0x4C, 0x0B, 0x51, 0x3C, 0x19, 
	0xFF, 0xF3, 0x28, 0xC4, 0x44, 0x09, 0xC8, 0xEE, 0xC5, 0xBE, 0x01, 0x46, 0x5E, 0xAA, 0x00, 0x50, 
	0x00, 0xDF, 0xFE, 0x00, 0xFF, 0xDD, 0x64, 0x6F, 0xA1, 0x44, 0x44, 0x40, 0x53, 0x8F, 0xA9, 0xFC, 
	0xB2, 0x00, 0x71, 0xC0, 0x03, 0xFF, 0xFF, 0xA7, 0xCE, 0xF5, 0x55, 0x00, 0x40, 0x00, 0xBB, 0x6D, 
	0xC0, 0xFF, 0x98, 0x3D, 0xFA, 0xC2, 0xD4, 0x06, 0x71, 0xC2, 0xDB, 0x5F, 0xE6, 0xEF, 0xAB, 0x74, 
	0xBA, 0x95, 0x4C, 0x41, 0x4D, 0x45, 0x33, 0x2E, 0xFF, 0xF3, 0x28, 0xC4, 0x57, 0x07, 0x40, 0xAA, 
	0xD2, 0x58, 0x02, 0x4E, 0x43, 0x39, 0x38, 0x2E, 0x34, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 
	0x55, 0x00, 0x40, 0x05, 0xB6, 0xED, 0xC0, 0x34, 0xBF, 0xFF, 0x30, 0xBF, 0xDD, 0x92, 0x12, 0xE0, 
	0xCA, 0xF7, 0xFB, 0xA0, 0x22, 0x0D, 0x4F, 0xB8, 0xF3, 0x41, 0x81, 0x3D, 0x4A, 0x4C, 0x41, 0x4D, 
	0x45, 0x33, 0x2E, 0x39, 0x38, 0x2E, 0x34, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x12, 0xDB, 0xB7, 
	0xFF, 0xF3, 0x28, 0xC4, 0x75, 0x04, 0xA8, 0xA6, 0xE2, 0x58, 0x08, 0x0A, 0x6E, 0x03, 0xF0, 0x07, 
	0x23, 0x01, 0xCF, 0xE4, 0xC2, 0x3C, 0xDC, 0x1A, 0x47, 0xB2, 0x34, 0x05, 0x5F, 0x76, 0x21, 0x8F, 
	0xB1, 0xC3, 0x93, 0x1C, 0x51, 0xEB, 0xBA, 0x20, 0x66, 0x14, 0xB6, 0x7F, 0xFF, 0xFE, 0x7E, 0xB5, 
	0xF7, 0xC4, 0x07, 0x16, 0x07, 0x03, 0x47, 0x1B, 0xFF, 0x56, 0x06, 0x91, 0x82, 0x02, 0x36, 0xD2, 
	0x7C, 0x86, 0x77, 0x81, 0x06, 0x87, 0x25, 0xBA, 0xFF, 0xF3, 0x28, 0xC4, 0x9D, 0x02, 0x48, 0x02, 
	0xE8, 0x78, 0x00, 0x44, 0x4E, 0xFB, 0xB6, 0x4A, 0xF6, 0x68, 0x54, 0x24, 0x19, 0x14, 0x13, 0xA4, 
	0x98, 0x39, 0xB8, 0xEF, 0xB3, 0xB7, 0x46, 0x1B, 0x50, 0x58, 0xA0, 0x98, 0x4A, 0xC2, 0x31, 0x09, 
	0x29, 0x92, 0xE4, 0xA2, 0x73, 0xA6, 0x55, 0x11, 0xBE, 0x74, 0x6A, 0x6B, 0xA7, 0xB2, 0x4E, 0x9D, 
	0xFF, 0x59, 0x5F, 0xED, 0x89, 0x32, 0x60, 0x73, 0xE1, 0x87, 0xA4, 0x20, 0xB3, 0xF8, 0x73, 0x93, 
	0xFF, 0xF3, 0x28, 0xC4, 0xCE, 0x05, 0x90, 0xAA, 0xC2, 0x58, 0x08, 0x0A, 0x6E, 0x19, 0x79, 0x0A, 
	0x06, 0xAF, 0x0B, 0x00, 0x1C, 0x85, 0x18, 0xFD, 0xAC, 0xAC, 0xE2, 0x43, 0x31, 0x85, 0x5E, 0x1F, 
	0x7F, 0xBE, 0x59, 0x70, 0xE1, 0xD8, 0x7B, 0x52, 0x8D, 0x30, 0xC2, 0x84, 0xA1, 0x21, 0x77, 0x7F, 
	0xFF, 0xF8, 0xD7, 0xA8, 0x1A, 0x0A, 0x95, 0x92, 0x2A, 0x2B, 0x4A, 0x4B, 0x55, 0x4C, 0x41, 0x4D, 
	0x45, 0x33, 0x2E, 0x39, 0x38, 0x2E, 0x34, 0x55, 0xFF, 0xF3, 0x28, 0xC4, 0xE0, 0x06, 0xD9, 0x1E, 
	0xBE, 0x58, 0x00, 0x44, 0x5E, 0x09, 0xB9, 0x46, 0xE3, 0xF0, 0x07, 0x99, 0x97, 0x4C, 0xCB, 0xE5, 
	0x96, 0x47, 0x23, 0x26, 0x50, 0xC0, 0xC1, 0x82, 0x6C, 0xFA, 0x9B, 0x8A, 0x8A, 0x8B, 0x1A, 0x02, 
	0x85, 0x45, 0x0F, 0xEB, 0x6F, 0xFF, 0xFD, 0x58, 0xA8, 0xA5, 0x4D, 0x16, 0x15, 0x4C, 0x41, 0x4D, 
	0x45, 0x33, 0x2E, 0x39, 0x38, 0x2E, 0x34, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 
	0xFF, 0xF3, 0x28, 0xC4, 0xEF, 0x0A, 0xC1, 0x4A, 0xC4, 0x7E, 0x00, 0x4C, 0xD2, 0x55, 0x55, 0x55, 
	0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 
	0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 
	0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 
	0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xFF, 0xF3, 0x28, 0xC4, 0xFF, 0x14, 0x21, 0x56, 
	0x58, 0x00, 0x33, 0x12, 0xE4, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 
	0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 
	0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 
	0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 
	0xFF, 0xF3, 0x28, 0xC4, 0xE9, 0x0B, 0x09, 0x32, 0x80, 0x56, 0x00, 0x46, 0xC0, 0x55, 0x55, 0x55, 
	0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 
	0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 
	0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 
	0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xFF, 0xF3, 0x28, 0xC4, 0xEC, 0x0A, 0x00, 0xDE, 
	0x44, 0x7E, 0x00, 0x46, 0xC8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 
	0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 
	0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 
	0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};  
  
  

  
  
unsigned char xxx,iii,jjj;  
unsigned char KB_X;
unsigned char numnum;
unsigned char numnum_CRC;

unsigned int yyy;


unsigned char UART_DATA;  
  
  
  

  
uint8_t mycode[] = {0x12,0x13,0x14}; 
  
 
  
void Key_Init()
{
	GPIO_InitTypeDef  GPIO_InitStructure;

	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);//使能GPIOB时钟

	//GPIOB1初始化设置
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;//普通输出模式
//	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;//100MHz
	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
	GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化
}
  
  
  
int main(void)
{	
	int i,j;
	
		delay_init(168);
	
  /*初始化USART 配置模式为 115200 8-N-1,中断接收*/
  Debug_USART_Config();
	
	Key_Init();	
	
	/* 发送一个字符串 */
//	Usart_SendString( DEBUG_USART,"这是一个串口中断接收回显实验\n");
//	printf("这是一个串口中断接收回显实验\n");
	
  while(1)
	{	
		
		if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1)==0)
		{
			delay_us(10000);
			
			if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1)==0)
			{

/******************************************************
 - MCU端发起下载的指令 -- 
******************************************************/
				Usart_SendByte(USART1, 0x7E);
				Usart_SendByte(USART1, 0xA0);
				Usart_SendByte(USART1, 0x00);
				Usart_SendByte(USART1, 0x03);
				Usart_SendByte(USART1, 0x01); //第一个文件
				Usart_SendByte(USART1, 0x00);
				Usart_SendByte(USART1, 0x0A); //总包数---是10包
				Usart_SendByte(USART1, 0xEF);
				
				delay_us(10000); //这里延时大概在100ms
				delay_us(60000);
				delay_us(60000);

				
				for(xxx = 1; xxx <= 10; xxx++)
				{
					
					Usart_SendByte(USART1, 0x7E);
					Usart_SendByte(USART1, 0xA1);
					Usart_SendByte(USART1, 0x00);
					Usart_SendByte(USART1, xxx); //下载的包的序号
					for(yyy=0; yyy<256; yyy++)
					{
						Usart_SendByte(USART1,musicdata[(xxx-1)*256 + yyy]); //当前包的实际数据
						
						delay_us(1000);
					}
					Usart_SendByte(USART1, 0xEF); //结束
					delay_us(1000);
				}
				
				
				Usart_SendByte(USART1, 0x7E);
				Usart_SendByte(USART1, 0xA3);
				Usart_SendByte(USART1, 0x00);
				Usart_SendByte(USART1, 0x02);
				Usart_SendByte(USART1, 0x00);
				Usart_SendByte(USART1, 0x01);
				Usart_SendByte(USART1, 0xEF); //MCU告诉KT803c 。当前的文件已经发送完毕
				
				delay_us(10000);
				
				
				Usart_SendByte(USART1, 0x7E);
				Usart_SendByte(USART1, 0xA3);
				Usart_SendByte(USART1, 0x00);
				Usart_SendByte(USART1, 0x02);
				Usart_SendByte(USART1, 0x00);
				Usart_SendByte(USART1, 0x00);
				Usart_SendByte(USART1, 0xEF);//MCU告诉KT803c 。下载过程完毕,退出下载模式
				
				delay_us(10000);
				
				
				
				
				Usart_SendByte(USART1, 0x7E);
				Usart_SendByte(USART1, 0xA6);
				Usart_SendByte(USART1, 0x00);
				Usart_SendByte(USART1, 0x02);
				Usart_SendByte(USART1, 0x00);
				Usart_SendByte(USART1, 0x01);
				Usart_SendByte(USART1, 0xEF);//MCU告诉KT803c 。播放分区2里面的第1段音乐

				
			}
		}
	}	
}



/*********************************************END OF FILE**********************/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值