完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
如题,我写了个程序,如果把独立按键去掉语音播报就播报不了。求教各位大神如何将语音播报中的独立按键去掉也能让语音正常播报。
#include #include #include #define uchar unsigned char #define uint unsigned int #define KEY P0 //P1用于键扫描 #define BUFLEN 32 //文字缓冲区的长度 #define HEADLEN 5 //数据包头的长度 #define LEN_OFFSET 2 //长度字节的偏移量(本例中长度不超过255字节,因此只使用1字节长度) //数据包头(0xFD + 2字节长度 + 1字节命令字 + 1字节命令参数) uchar head[HEADLEN] = {0xfd,0x00,0x00,0x01,0x00}; //文字(中间有需要变化的内容可在发送前修改) uchar text[BUFLEN] = {"机油温度 度"}; //延时1ms void Delay1ms(uchar n) { uchar i=112; while(n--) { while(i--); } } //串口初始化 void UART_InitBaud(void) { SCON=0xD8 ; //晶振为11.059MHZ时,设定串口波特率为9600bit/s,方式3 TMOD=0x20 ; PCON=0x00 ; TH1=0xFD ; TR1=1; } //串口发送数据 void UART_Trans(uchar n) { SBUF = n; while(ti==0); //发送数据 TI=0; } //发声程序 void Speech(uchar *buf, uchar len) { uchar i = 0; //循环计数变量 uchar xor = 0x00; //校验码初始化 head[LEN_OFFSET] = len + 3; //计算正文长度(1命令字 + 1命令参数 + 文字长度 + 1校验位) //发送数据包头(0xFD + 2字节长度 + 1字节命令字 + 1字节命令参数) for(i = 0; i < HEADLEN; i++) { xor ^= head[i]; UART_Trans(head[i]); Delay1ms(2); } //发送文字内容 for(i = 0; i < len; i++) { xor ^= buf[i]; UART_Trans(buf[i]); Delay1ms(2); } UART_Trans(xor); //发送校验位 } //主函数 void main() { uchar xor = 0; //校验码(正文内容的异或) uchar i = 0; //循环计数变量 float num = 123.45; //测试值,可以由用户程序自动生成 uchar numbuf[10]; memset(numbuf,0,sizeof numbuf); UART_InitBaud(); //初始化串口为 9600bps while(1) { if(KEY != 0xff) { Delay1ms(10); if(KEY != 0xff) { sprintf(text + 10,"%6.2f",num); //将浮点数 num 转为字符串, //并追加到数组text[]的第6字节后 //(前6字节为字符串“当前值”) //参见库函数sprintf()的用法 num -= 0.43; Speech(text,20); //调用发声函数,读出指定长度数据 } } Delay1ms(100); //延时 } } |
|
相关推荐
4 个讨论
|
|
谢谢楼主的分享
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1912个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36369 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4405 浏览 0 评论
6063 浏览 1 评论
6772 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4221 浏览 0 评论
625浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
621浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
616浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
698浏览 2评论
802浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 12:31 , Processed in 1.038526 second(s), Total 68, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号