AVR单片机中如何计算字符串长度?

2019-03-24 20:36发布

AVR单片机中如何计算字符串长度?比如我的字符串是"ABCD",如何计算出是4个字符。我现在能发数据,但是总是发的不对,有些多出的地方,程序如下,请高手指教。

unsigned char strlen(char *str)   //返回字符串长度
{
       
}

void send_data(unsigned char str)    //发送数据  time次
{  
        unsigned char *data;
        unsigned char a,leng;
        data=str;
        leng=strlen(*data);    //计算字符串长度       

        for(a=0;a<leng;a++)
        {  
                if(UCSRA&(1<<UDRE))
                {
                        UDR=*data;
                        *data++;
                }       
                _delay_us(1);   //延时 等待数据发送完
        }
}

主程序测试是这么写的:

   send_data("ABCD"); 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
zhengwbang
1楼-- · 2019-03-24 22:10
求高手 自己顶
Li_Lei
2楼-- · 2019-03-25 03:44
void send_data(unsigned char *data) {  
        unsigned char i=0;
         while(data i  !=0) {
               发送data i;
               i++;
          }
}

中括号打不上去。。。


[ 本帖最后由 huo_hu 于 2013-10-2 16:11 编辑 ]
lcofjp
3楼-- · 2019-03-25 05:37
为啥不用string.h自带的strlen?
zhengwbang
4楼-- · 2019-03-25 10:54
谢谢您  解决了

一周热门 更多>