资源简介
STM32的手写识别程序,亲测可用。内有详细的注释和文档。很好的学习资料。
代码片段和文件信息
#include “mp3player.h“
#include “vs10xx.h“
#include “delay.h“
#include “led.h“
#include “key.h“
#include “lcd.h“
#include “malloc.h“
#include “text.h“
#include “string.h“
#include “exfuns.h“
#include “fattester.h“
#include “ff.h“
#include “flac.h“
#include “usart.h“
//////////////////////////////////////////////////////////////////////////////////
//MP3播放驱动 代码
//修改日期:2012/9/20
//版本:V1.0
//All rights reserved
//////////////////////////////////////////////////////////////////////////////////
//显示曲目索引
//index:当前索引
//total:总文件数
void mp3_index_show(u16 indexu16 total)
{
//显示当前曲目的索引及总曲目数
LCD_ShowxNum(60+0230index3160X80); //索引
LCD_ShowChar(60+24230‘/‘160);
LCD_ShowxNum(60+32230total3160X80); //总曲目
}
//显示当前音量
void mp3_vol_show(u8 vol)
{
LCD_ShowString(60+1102302001616“VOL:“);
LCD_ShowxNum(60+142230vol2160X80); //显示音量
}
u16 f_kbps=0;//歌曲文件位率
//显示播放时间比特率 信息
//lenth:歌曲总长度
void mp3_msg_show(u32 lenth)
{
static u16 playtime=0;//播放时间标记
u16 time=0;// 时间变量
u16 temp=0;
if(f_kbps==0xffff)//未更新过
{
playtime=0;
f_kbps=VS_Get_HeadInfo(); //获得比特率
}
time=VS_Get_DecodeTime(); //得到解码时间
if(playtime==0)playtime=time;
else if((time!=playtime)&&(time!=0))//1s时间到更新显示数据
{
playtime=time;//更新时间
temp=VS_Get_HeadInfo(); //获得比特率
if(temp!=f_kbps)
{
f_kbps=temp;//更新KBPS
}
//显示播放时间
LCD_ShowxNum(60210time/602160X80); //分钟
LCD_ShowChar(60+16210‘:‘160);
LCD_ShowxNum(60+24210time%602160X80); //秒钟
LCD_ShowChar(60+40210‘/‘160);
//显示总时间
if(f_kbps)time=(lenth/f_kbps)/125;//得到秒钟数 (文件长度(字节)/(1000/8)/比特率=持续秒钟数
else time=0;//非法位率
LCD_ShowxNum(60+48210time/602160X80); //分钟
LCD_ShowChar(60+64210‘:‘160);
LCD_ShowxNum(60+72210time%602160X80); //秒钟
//显示位率
LCD_ShowxNum(60+110210f_kbps3160X80); //显示位率
LCD_ShowString(60+1342102001616“Kbps“);
LED0=!LED0; //DS0翻转
}
}
//得到path路径下目标文件的总个数
//path:路径
//返回值:总有效文件数
u16 mp3_get_tnum(u8 *path)
{
u8 res;
u16 rval=0;
DIR tdir; //临时目录
FILINFO tfileinfo; //临时文件信息
u8 *fn;
res=f_opendir(&tdir(const TCHAR*)path); //打开目录
tfileinfo.lfsize=_MAX_LFN*2+1; //长文件名最大长度
tfileinfo.lfname=mymalloc(SRAMINtfileinfo.lfsize); //为长文件缓存区分配内存
if(res==FR_OK&&tfileinfo.lfname!=NULL)
{
while(1)//查询总的有效文件数
{
res=f_readdir(&tdir&tfileinfo); //读取目录下的一个文件
if(res!=FR_OK||tfileinfo.fname[0]==0)break; //错误了/到末尾了退出
fn=(u8*)(*tfileinfo.lfname?tfileinfo.lfname:tfileinfo.fname);
res=f_typetell(fn);
if((res&0XF0)==0X40)//取高四位看看是不是音乐文件
{
rval++;//有效文件数增加1
}
}
}
myfree(SRAMINtfileinfo.lfname);
return rval;
}
//播放音乐
void mp
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 8787 2017-11-25 21:10 实验46 手写识别实验\APP\mp3pla
文件 559 2017-11-25 21:10 实验46 手写识别实验\APP\mp3pla
文件 9945 2017-11-25 21:10 实验46 手写识别实验\APP\recorder.c
文件 2099 2017-11-25 21:10 实验46 手写识别实验\APP\recorder.h
文件 79400 2017-11-25 21:02 实验46 手写识别实验\ATKNCR\ATKNCR_M_V2.0.lib
文件 78900 2017-11-25 21:02 实验46 手写识别实验\ATKNCR\ATKNCR_N_V2.0.lib
文件 1291 2017-11-25 21:10 实验46 手写识别实验\ATKNCR\atk_ncr.c
文件 2503 2017-11-25 21:10 实验46 手写识别实验\ATKNCR\atk_ncr.h
文件 2815 2012-07-25 00:19 实验46 手写识别实验\FATFS\doc\css_e.css
文件 3177 2012-07-25 00:19 实验46 手写识别实验\FATFS\doc\css_j.css
文件 1414 2011-09-02 22:10 实验46 手写识别实验\FATFS\doc\img\f1.png
文件 1458 2007-02-10 03:12 实验46 手写识别实验\FATFS\doc\img\f2.png
文件 1039 2007-02-10 03:12 实验46 手写识别实验\FATFS\doc\img\f3.png
文件 2335 2008-01-05 20:27 实验46 手写识别实验\FATFS\doc\img\f4.png
文件 2479 2008-01-05 20:27 实验46 手写识别实验\FATFS\doc\img\f5.png
文件 1436 2010-08-21 10:13 实验46 手写识别实验\FATFS\doc\img\f6.png
文件 2401 2009-03-20 21:57 实验46 手写识别实验\FATFS\doc\img\la
文件 2379 2009-06-13 21:48 实验46 手写识别实验\FATFS\doc\img\la
文件 5209 2012-07-27 01:26 实验46 手写识别实验\FATFS\doc\img\modules.png
文件 19068 2008-10-18 19:31 实验46 手写识别实验\FATFS\doc\img\rwtest.png
文件 8153 2010-09-13 10:55 实验46 手写识别实验\FATFS\doc\img\rwtest2.png
文件 3011 2009-06-15 00:03 实验46 手写识别实验\FATFS\doc\img\rwtest3.png
文件 4185 2012-08-27 21:56 实验46 手写识别实验\FATFS\doc\updates.txt
文件 3334 2017-11-25 21:10 实验46 手写识别实验\FATFS\exfuns\exfuns.c
文件 1218 2017-11-25 21:10 实验46 手写识别实验\FATFS\exfuns\exfuns.h
文件 6587 2017-11-25 21:10 实验46 手写识别实验\FATFS\exfuns\fattester.c
文件 935 2017-11-25 21:10 实验46 手写识别实验\FATFS\exfuns\fattester.h
文件 4815 2017-11-25 21:10 实验46 手写识别实验\FATFS\exfuns\mycc936.c
文件 6821 2012-09-04 22:50 实验46 手写识别实验\FATFS\src\00readme.txt
文件 5972 2017-11-25 21:10 实验46 手写识别实验\FATFS\src\diskio.c
............此处省略193个文件信息
- 上一篇:HYSPLIT模式简介及使用201293
- 下一篇:语法分析实验报告.docx
相关资源
- 音频信号分析仪07电设国赛,STM32实现
- STM32官方USB例程JoyStick详解
- 拼音输入法STM32寄存器代码
- 基于STM32F103RCT6的无源蜂鸣器音乐播放
- STM32F407按键和LCD多级菜单显示.zip
- stm32f103 LIN 从模式参考例程
- PCA9685 STM32驱动
- STM32控制SIM900A和继电器电路原理图
- STM32串口的LIN从模式完整代码
- 基于STM32F103RBT6 的CAN双机通讯成功案例
- 基于STM32 DSP库的电力谐波分析,根据
- 基于STM32F103RCT6的无源蜂鸣器音乐播放
- 基于STM32实现的温度控制系统TFTLCD 蜂
- stm32实现485通信
- STM32的音乐播放器程序,亲测可用
- 使用STM32F103控制无源蜂鸣器发声播放
- stm32 4x4简易密码锁
- WS2812 5050RGB灯 stm32f103控制
- STM32的无线图像采集传输系统的软件设
- 基于STM32的锂电池组并行充电系统的设
- STM32的录音机程序,亲测可用
- stm32同步规则转换DMA传输
- 基于stm32利用GPRS发送彩信
- STM32 智能充电器原理图
- STM32全部系列芯片protel99se的库sch
- HMC5883L-STM32驱动程序
- 野火STM32开发板串口1接收-串口2转发
- STM32模拟I2C驱动PN532
- STM32f103 ADC采集电压数据 显示在LCD液晶
- STM32下MCP2515驱动
评论
共有 条评论