1.
char * msg[MSG_NUM] = { //以下内容请自行修改
{"乘客您好,欢迎乘坐"},
{"[n1]2[n0]路"}, //车次,采用单个数字变读(1读作幺)模式,读后恢复正常模式
{"公交车,本路车由"},
{"开往"},
{",前门上车,后门下车,本车无人售票,请自备零钱"},
{"车辆起动,请站稳扶好"},
{"[2]车辆转弯,请注意安全"},
{"前方到站"},
{"下车的乘客后门请"},
{"车站到了,请您带好随身物品,从后门下车,谢谢您的乘坐,再见"},
{"始发站"},
{"终点站"},
{"soundk"},
{"到了"}
};
指针数组:指针的数组。
在字符串定义的时候使用指针;
调用的时候
void syn6288_SpeakStr(char *text,char MusicID)
例如 syn6288_SpeakStr(msg[12],0);
2.
u8 * sta[STA_NUM] = {
{"XXXX"},
{"XXXX"},
{"XXXX"},
{"XXXX"},
{"XXXX"},
{"XXXX},
{"XXXX"},
};
调用的时候
如果 syn6288_SpeakStr(sta[0],0);
会报警告
main.c(96): warning: #167-D: argument of type "u8 *" is incompatible with parameter of type "char *"
这样就不会报告了syn6288_SpeakStr((u8*)sta[0],0);
3.结构体数组
typedef struct
{
unsigned char Index[2];
char Msk[32];
}typFNT_GB16;
const typFNT_GB16 tfont16[]=
{
"公",0x00,0x80,0x04,0x80,0x04,0x80,0x08,0x40,0x08,0x40,0x10,0x20,0x20,0x10,0x42,0x08,
0x82,0x06,0x04,0x00,0x04,0x40,0x08,0x20,0x10,0x20,0x3F,0xF0,0x10,0x10,0x00,0x00,/*0*/
"交",0x02,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x00,0x00,0x10,0x10,0x10,0x08,0x20,0x24,
0x48,0x24,0x04,0x40,0x02,0x80,0x01,0x00,0x02,0x80,0x0C,0x40,0x30,0x30,0xC0,0x0E,/*1*/
"报",0x10,0x00,0x11,0xFC,0x11,0x04,0x11,0x04,0xFD,0x14,0x11,0x08,0x11,0x00,0x15,0xFC,
0x19,0x44,0x31,0x44,0xD1,0x28,0x11,0x28,0x11,0x10,0x11,0x28,0x51,0x44,0x21,0x82,/*2*/
"站",0x10,0x20,0x08,0x20,0x08,0x20,0x7E,0x20,0x00,0x3E,0x04,0x20,0x44,0x20,0x44,0x20,
0x25,0xFC,0x29,0x04,0x29,0x04,0x0F,0x04,0xF1,0x04,0x41,0x04,0x01,0xFC,0x01,0x04,/*3*/
"℃",0xC0,0x00,0x23,0xE8,0x2C,0x18,0xD8,0x08,0x10,0x08,0x30,0x00,0x30,0x00,0x30,0x00,
0x30,0x00,0x30,0x00,0x30,0x00,0x10,0x00,0x18,0x08,0x0C,0x10,0x03,0xE0,0x00,0x00,/*0*/
}
自动统计汉字数目 HZnum=sizeof(tfont16)/sizeof(typFNT_GB16);
//******************************************************************
//功能: 显示单个16X16中文字体
//输入参数:x,y :起点坐标
// fc:前置画笔颜色
// bc:背景颜色
// s:字符串地址
// mode:模式 0,填充模式;1,叠加模式
//返回值: 无
//修改记录:无
//******************************************************************
void GUI_DrawFont16(u16 x, u16 y, u16 fc, u16 bc, u8 *s,u8 mode)
{
u8 i,j;
u16 k;
u16 HZnum;
u16 x0=x;
HZnum=sizeof(tfont16)/sizeof(typFNT_GB16); //自动统计汉字数目
for (k=0;k if ((tfont16[k].Index[0]==*(s))&&(tfont16[k].Index[1]==*(s+1))) { LCD_SetWindows(x,y,x+16-1,y+16-1); for(i=0;i<16*2;i++) { for(j=0;j<8;j++) { if(!mode) //非叠加方式 { if(tfont16[k].Msk[i]&(0x80>>j)) LCD_WR_DATA_16Bit(fc); else LCD_WR_DATA_16Bit(bc); } else { POINT_COLOR=fc; if(tfont16[k].Msk[i]&(0x80>>j)) LCD_DrawPoint(x,y);//画一个点 x++; if((x-x0)==16) { x=x0; y++; break; } } } } } continue; //查找到对应点阵字库立即退出,防止多个汉字重复取模带来影响 } LCD_SetWindows(0,0,lcddev.width-1,lcddev.height-1);//恢复窗口为全屏 } if(tfont16[k].Msk[i]&(0x80>>j)) LCD_DrawPoint(x,y);//画一个点 通过移位来判断是否画点; 4, int fputc(int ch, FILE *f) { while((USART1->SR&0X40)==0);//循环发送,直到发送完毕 USART1->DR = (u8) ch; return ch; } printf 必备的; 5. Rct6 是256 k 的flash 要选择HD的 下载时候 6. 绝对不要在中断中处理太多,不然上一次的中断还没有完,下一次的中断有可能就来了;中断竞争。 ———————————————— 版权声明:本文为CSDN博主「csdn_dx」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/u011041241/article/details/51069573
上一篇:usmart_dev.init(SystemCoreClock/1000000); stm32 战舰的usmart 程序
下一篇:keil_提示出错 cannot load flash programming algorithm !
推荐阅读最新更新时间:2024-11-13 10:12
推荐帖子
- 单片机ABSACC.H_文件库文件是什么作用
- #ifndef__ABSACC_H__#define__ABSACC_H__#defineCBYTE((unsignedcharvolatilecode*)0)#defineDBYTE((unsignedcharvolatiledata*)0)#definePBYTE((unsignedcharvolatilepdata*)0)#defineXBYTE((unsignedcharvolatilexdata*)0)#defin
- HUI535233725 单片机
- 旧手机的新用法(9)- 文件同步
- 在这里,推荐大家使用syncthing做文件同步。已经有很多免费或收费的网盘了,一些手机甚至集成了云同步功能,为什么还需要使用syncthing呢? 一些手机虽然带有云同步功能,但这个功能和厂家是绑定的,不能在不同品牌手机之间同步; 不想安装收费并带有很多不需要功能的网盘 免费的网盘限速,容量较小; 大部分网盘没有提供版本管理功能; 大部分网盘只能同步一个文件夹借用知乎上一段介绍文字:Syncthing是一款开源免费跨平台的文件同步工具,是基于P2P技术实
- dcexpert DIY/开源硬件专区
- 51函数中断系统问题
- 为什么这个程序,我不用按矩阵键盘的第三排键,烧录之后LED等就会四个灯、四个灯的变,就像流水灯那样,我的中断函数完全没有用,这是什么情况51函数中断系统问题按键中断的话感觉还是下降沿触发方式更好一些,你可以将IT0设为1看下,另外可以测量一下外部中断0io口实际电平看看是硬件的问题还是软件的问题。按键进入中断时候关中断,执行完中断任务后开中断首先确保硬件连接正确稳定,另外就是一点点调啦 还真的对了。谢谢哈 不客气!
- 圈在指尖 51单片机
- NXP收购FreeScale后会有什么变化
- NXP收购了FreeScale,大家觉得对FreeScale的MCU会有什么影响?NXP收购FreeScale后会有什么变化原有业务不会有太大变化吧,个人认为收购飞思卡尔只是资本上的运作,对飞思卡尔现有的产品线应该不会有大的改动。。。freescale的社区以后是不是要合并到NXP了。老实说还没用过飞思卡尔的mcu呢。。。飞思卡尔的mcu,贵啊,,,,,,,,,jianping-sun发表于2015-3-310:24老实说还没用过飞思卡尔的mcu呢。。。可以
- dcexpert 单片机
- keil4在编译时出现了空间不足
- 有哪位大神帮忙解决一下这个问题keil4在编译时出现了空间不足试试C/C++里面的Level-1(01)应该是内存空间不足,把不用的程序删掉,或者优化一下。破解了没有?
- wxdm2dzx stm32/stm8
- 【2024 DigiKey 创意大赛】会议声源追踪器 会议室环境检测(1)
- 这次打算做一个会议拾音系统,主要功能如下:1、声源定位,识别声音方向;(麦克风阵列,控制器)2、声源追踪,用步进电机控制麦克风方向,追踪声源,减少干扰噪声;(麦克风阵列,控制器)3、检测会议室环境,上传云端,可以提醒工作人员提前开启空调等设备。(传感器、ESP32)。由于功能1、2较难,先进行了任务3。任务3主要使用的模块是ESP32和传感器,结合阿里云物联网平台。使用的开发环境是VSCode+Platformio。由易到难:1、首先连
- 左手阿飞 DigiKey得捷技术专区
设计资源 培训 开发板 精华推荐
- DM163029,用于 PIC16F914 MCU 的机电一体化演示套件
- D1 - ST-LINKV2
- 使用 STMicroelectronics 的 L9929XP 的参考设计
- 使用 ON Semiconductor 的 CAT3643 的参考设计
- LT6656BIS6-1.25、1.25V 2 端子电压基准电流源的典型应用
- 使用 NXP Semiconductors 的 MC9S08RG60CFG 的参考设计
- LT3758、18V 至 72V 输入、24V 输出 SEPIC 转换器的典型应用电路
- 紧凑、多功能、准确、三态可编程电源监控器
- LT1168 的典型应用 - 低功率、单电阻器增益可编程、精密仪表放大器
- DC2341A,使用 LTC7130EY 单片式 20A 降压和 DCR 感应的演示板,4.5 至 20V 输入电压,Vout = 1.5V @ 20A