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"); 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。