ATMega错误的函数参数

时间:2015-09-18 18:01:56

标签: avr avr-studio5

我正在使用AVR Studio + WinAVR为AT90CAN32编写固件。 对于有经验的AVR程序员来说似乎很简单。 我将int参数传递给函数,但在函数内部它始终为零。 内部protocol.c文件:

#include <uart.h>

static char packet[16] =  ":AA111122223!f\r\n";

void vDivRequesting(void)
{
    uint8_t cntOfBms = getCountOfBms( );
    for(uint8_t i=0; i<cntOfBms; i++)
    {
        createPacket(getBmsNetworkNumber(i), REQUEST_V_DIV, 1);
        usartSendString(packet,11);
        _delay_ms(200);
    }
}

有uart.c文件:

void usartSendString( char *data, uint8_t len )
{
    uint8_t i=0;
    usartSendByte(len + 0x30);
    for( i=0; i<len; i++)
    {
       usartSendByte(*data);
       *data++;
    }
}

它打印出len参数为零。 usartSendString函数在uart.h文件中定义。这段代码出了什么问题?

0 个答案:

没有答案