我是靠谱客的博主 懦弱小懒猪,这篇文章主要介绍基于STM32C8T6语音数字的播报小算法前言 因为我的毕设时超市收银系统,自己12月份课设学习了一款与语音播报模块,基于毕设需要,就顺手写个数字语音播报小算法,如有不足,请在下方评论指正,新手小白不懂的也可以提问,我有空看到了也会第一时间回复。一、MY2480是什么?二、使用步骤总结,现在分享给大家,希望可以做个参考。

文章目录

  • 前言:
  • 一、pandas是什么?
  • 二、使用步骤
    • 1.引入库
    • 2.读入数据
  • 总结


前言
因为我的毕设时超市收银系统,自己12月份课设学习了一款与语音播报模块,基于毕设需要,就顺手写个数字语音播报小算法,如有不足,请在下方评论指正,新手小白不懂的也可以提问,我有空看到了也会第一时间回复。


提示:以下是本篇文章正文内容,下面案例可供参考

一、MY2480是什么?

 

 

MY2480-16P 是一款小巧的微集成语音模块。采用 MY2480-24TS MP3 主控芯片,支持 MP3 WAV 格式双解
码。模块最大支持 16M Byte FLASH ;也可外接 U 盘或 USB 数据线连接电脑更换 FLASH 音频文件。该模块内置 3W
功放,可以直接驱动 3W 的喇叭,使用更方便。
应用领域:智能语音播报
模块资料我就不提供,大家自己去淘宝店找,很多的,小白可以锻炼一下找资料能力

二、使用步骤

1.引入库

代码如下:只要用串口发送指令,模块即可执行相关任务

复制代码
1
2
3
4
5
6
7
8
9
void voice_send_command(u8 command,u8 grama) {     usart3_send_byte(0X7E);     usart3_send_byte(0X03);     usart3_send_byte(command);     usart3_send_byte(grama);     usart3_send_byte(0XEF); } 2.读入数据

代码如下:取数值运算,这里只给一小部分,具体的去下方下载看代码

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        a = strtod((char *)usart1_type.usart1_readBuf, NULL);       //字符类型转浮点型数据         c = (a - (int)a) * 100;                                     //取小数 //            printf("a=%.2frn", a);         while (i--)         {             if (((int)a) / ((int)pow(10, i)) % 10 > 0)                            // (int)a)强制转换数据类型,如果这里看不懂,好好用C语言编译器练练             {                 money[i] = i + 1;                 for (j = i; j >= 0; j--)                 {                     sound[j] = ((int)a) / ((int)pow(10, j)) % 10;   // ((int)pow(10, j))如果j=4  10000  万位,j- 依次类推  %10这里就是取位数的数值                 }                                                                                                                                                    //j=3  1000   千位                 break;                                                                                                                                        //j=2  100    百位             }                                                                                                                                                            //j=1  10       十位         }                                                                                                                                                                    //j=0  1           万位         num_flag = money[i]-1;                                                                             //判断位数,这里赋值时要-1,不然会给你多判断一个位数   

实物接线图

数据验证效果图

小数点这里打印或加延时会导致bug出现,所以就不打印到串口助手这里,具体什么原因不清楚,有会的大神请给个思路和方法验证 


 

总结

这是我的第一篇博客,目的初衷是为了大家能共同进步学习,我是从小白经历过来,理解稍有有点逻辑的程序,就看不懂了,这里我也写了多个注释,希望小白们看懂,变强!

大神看懂了,有想法也可以指出来,乐意接收学习!

作者:Mr'K   (一位热爱嵌入式的预工程师)

百度网盘:百度网盘 请输入提取码

提取码:MrsK

最后

以上就是懦弱小懒猪最近收集整理的关于基于STM32C8T6语音数字的播报小算法前言 因为我的毕设时超市收银系统,自己12月份课设学习了一款与语音播报模块,基于毕设需要,就顺手写个数字语音播报小算法,如有不足,请在下方评论指正,新手小白不懂的也可以提问,我有空看到了也会第一时间回复。一、MY2480是什么?二、使用步骤总结的全部内容,更多相关基于STM32C8T6语音数字的播报小算法前言内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部