编程经验&零碎记录

本文介绍了在Arduino C++环境中如何将其他类型转换为字符串,并提供了一个文字流动显示的算法,适用于ESP8266等平台。同时,还分享了一个实用的字符串截取函数。在51单片机中断使用中,强调了开启中断总开关和特定中断开关的重要性。
摘要由CSDN通过智能技术生成

一、arduinoC++环境中其他类型转字符串的方法

arduino,包括esp8266等,其他类型转换为字符串string类型可以使用 .c_str() 函数。

二、一种文字流动显示算法,不限单片机

/******************
//文字流动显示函数
//需提前定义全局二维数组:欲显示的文字数组
参数一:颜色(0-7)
参数二:亮度(0-31)
参数三:文字数组欲显示的起始行
参数三:文字数组欲显示的终止行
******************/
void display_flow(unsigned int color,unsigned int light,unsigned int n0,unsigned int n1)
{
  int i,j,k=n0;
  unsigned int m;
  unsigned char *p = display0;

  for(i=0;i<(8*(n1-n0+1));i=i+8)
  {
    for(j=0;j<8;j++)
    {
     display0[(i+j)]=str[k][j];
    }
    k++;
  }
  
  for(m=0;m<(i+j)-15;m++)
  {
   buf[7]=*(p+m+7);
   buf[6]=*(p+m+6);
   buf[5]=*(p+m+5);
   buf[4]=*(p+m+4);
   buf[3]=*(p+m+3);
   buf[2]=*(p+m+2);
   buf[1]=*(p+m+1);
   buf[0]=*(p+m);
   sendscr7(1,light,color);//此句为屏幕显示函数,显示的数据来源于全局数组,当然也可以传入数组
   delayms(180);
   clear(1);

  }
}

三、好用的字符串截取函数

/******************
字符串截取函数
参数一:被截取字符串
参数二:起始字符串
参数三:终止字符串
返回值:截取到的部分
******************/
unsigned char* StringCut(unsigned char* src1,unsigned char* start,unsigned char* stop)
{
   unsigned char *src = src1;
   unsigned char dest[85] = {0};
   unsigned char *p1,*p2;
   p1 = strstr(src,start);
   p2 = strstr(src,stop);
   if (p1 == NULL || p2 == NULL || p1 > p2) 
   {
    return NULL;
   }
   else
   {
    p1 += strlen(start);
    memcpy(dest, p1, p2 - p1);
	return dest;
   }
}

四、51单片机中断的注意事项

如果使用中断,记得打开中断总开关EA=1,然后,若使用串口中断,应打开ES=1,若使用定时器中断,应打开定时器中断开关ETx,需要开始计时时令TRx=1。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

j682tzh

码字不易,欢迎鼓励~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值