将参数从指针传递到非封闭地址时出错 space
Error passing argument from pointer to non-enclosed address space
我正在使用 ATMEGA16M1 微控制器和 MPLAB IDE。
我有以下功能可以写入端口。
void Lcd8_Write_String(char *a)
{
int i;
for(i=0;a[i]!='[=11=]';i++)
Lcd8_Write_Char(a[i]);
}
void Lcd8_Write_Char(char a)
{
pinChange(RS,1); // => RS = 1
Lcd8_Port(a); //Data transfer
pinChange(EN,1); // => E = 1
_delay_ms(1);
pinChange(EN,0); // => E = 04
_delay_ms(1);
}
我用 Lcd8_Write_String("Hello World");
调用函数。
我得到 error: passing argument 1 of 'Lcd8_Write_String' from pointer to non-enclosed address space
。
如何解决此错误?
如果你写:
Lcd8_Write_String("Hello World");
字符串 "Hello World"
将在微控制器的闪存中,而不是在 RAM 中。所以你必须将你的功能切换到:
void Lcd8_Write_String(const char *a)
我正在使用 ATMEGA16M1 微控制器和 MPLAB IDE。
我有以下功能可以写入端口。
void Lcd8_Write_String(char *a)
{
int i;
for(i=0;a[i]!='[=11=]';i++)
Lcd8_Write_Char(a[i]);
}
void Lcd8_Write_Char(char a)
{
pinChange(RS,1); // => RS = 1
Lcd8_Port(a); //Data transfer
pinChange(EN,1); // => E = 1
_delay_ms(1);
pinChange(EN,0); // => E = 04
_delay_ms(1);
}
我用 Lcd8_Write_String("Hello World");
调用函数。
我得到 error: passing argument 1 of 'Lcd8_Write_String' from pointer to non-enclosed address space
。
如何解决此错误?
如果你写:
Lcd8_Write_String("Hello World");
字符串 "Hello World"
将在微控制器的闪存中,而不是在 RAM 中。所以你必须将你的功能切换到:
void Lcd8_Write_String(const char *a)