我有以下代码:
#define PLL0STAT (*((volatile unsigned short*) 0xE01FC088))
// Function Prototypes
void diaplayInRow1WithPosition(unsigned char* data, unsigned char position);
unsigned char convertLowerNibbleToASCIIValue(unsigned char data);
void func1 (void)
{
unsigned char temp = (unsigned char) PLL0STAT; // Interested in last byte only
temp = convertLowerNibbleToASCIIValue(temp);
diaplayInRow1WithPosition(&temp,15);
}
而不是上面的代码,我想我会用一个步骤替换最后一行并使用以下语句
diaplayInRow1WithPosition(((unsigned char*)convertLowerNibbleToASCIIValue(temp3)),15);
但是代码可以正确编译,但LCD中不显示任何内容。无法找出原因。我认为的指针的类型转换正确完成。还有其他问题吗?
原始代码已经很好了。为什么你试图把它变成一个不可读的单行,我不知道。你不会获得性能,你不会一事无成,你只会混淆代码。正如我们从问这个问题的需要中看到的那样:你已经使你的代码甚至对你自己都不可读。只需保持代码原样即可。
实际的错误来自您添加的奇怪的(unsigned char*)
。