簡體   English   中英

使用C ++的AVR ATMega169P LCD顯示器

[英]AVR ATMega169P LCD display using C++

我正在嘗試在ATMega 169P微控制器的LCD屏幕上顯示某些內容。 使用C時,我可以使用以下代碼:

char str[50];
int value = 100;
str = sprintf(str, "some text %d", value);
LCD_puts(str);

它將顯示正常。 LCD_puts是我的老師給我們的一種方法。 但是,我嘗試使用C ++進行分配,因此無法使LCD_puts()正常工作。 我已經使用sprintf和snprintf,並且在使用snprintf時收到以下編譯器錯誤。 我正在使用的代碼也在下面。 (抱歉,無法發布圖片)。

char str[100];
int rpm = 100; //Genaric value

snprintf(str, 100, '%d in',rpm);
LCD_puts(str);

從'char *'到'unint8_t *'{aka unsigned char *}'的無效轉換'[-fpermissive]

我認為我的確切代碼不是必需的,我只需要知道為什么會引起此錯誤,以及是否存在與我可以使用的sprintf等效的C ++函數。 不過,如果需要,我會發布確切的代碼。

您正在嘗試將無符號字符數組存儲到有符號字符數組中。 將str聲明為unsigned char:

unsigned char str[100];

或在參數中將str強制轉換為unsigned char:

snprintf((uint8_t*)str, 100, '%d in',rpm);

在這種情況下, uint8_tunsigned char是等效的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM