我正在使用非標準C
庫在LCD屏幕上顯示輸出的項目。我的代碼運行良好,但遇到了問題。錯誤:功能參數太多
這個程序的目的是做一個命令行的文本字符串,並將其轉換爲ASCII十進制值,然後將它們顯示在屏幕上。您輸出文本到屏幕的方式是撥打serialPutchar
函數,以顯示字母H
我會將它寫爲serialPutchar(fd, 'H');
我希望能夠從變量中獲取值並在變量中輸出字母。
的問題是,當我把它寫成serialPutchar(fd, "%c", H);
或嘗試serialPutchar(fd, "%d", x);
我得到以下錯誤:
testing.c: In function âmainâ:
testing.c:22:3: warning: passing argument 1 of âserialPutcharâ makes integer from pointer without a cast [enabled by default]
/usr/local/include/wiringSerial.h:30:14: note: expected âintâ but argument is of type âchar *â
testing.c:22:3: error: too many arguments to function âserialPutcharâ
/usr/local/include/wiringSerial.h:30:14: note: declared here
我猜它不能在該方式使用,就像您使用printf
所以有一個替代這個或者也許我只是有一個簡單的錯誤,我沒有發現。我包含一個鏈接,指向wiringSerial
庫的文檔。同樣從我的錯誤輸出中,我得到圍繞錯誤testing.c In function main:
和其他幾行的奇怪字符。有沒有辦法來防止這種情況?鏈接到庫HERE下面是我工作的代碼輸出HELLO
:
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <time.h>
#include <wiringPi.h>
#include <wiringSerial.h>
int main (int argc, char *argv[])
{
int fd ;
if ((fd = serialOpen ("/dev/ttyAMA0", 9600)) < 0)
{
fprintf (stderr, "Unable to open serial device: %s\n", strerror (errno)) ;
return 1 ;
}
if (wiringPiSetup() == -1)
{
fprintf (stdout, "Unable to start wiringPi: %s\n", strerror (errno)) ;
return 1 ;
}
int H = 1;
serialPutchar(fd, 'H');
serialPutchar(fd, 'E');
serialPutchar(fd, 'L');
serialPutchar (fd, 'L');
serialPutchar (fd, 'O');
}
::: UPDATE :::
這裏是一個適合我的描述,工作代碼:
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <time.h>
#include <wiringPi.h>
#include <wiringSerial.h>
int main (int argc, char *argv[])
{
int fd ;
if ((fd = serialOpen ("/dev/ttyAMA0", 9600)) < 0)
{
fprintf (stderr, "Unable to open serial device: %s\n", strerror (errno)) ;
return 1 ;
}
if (wiringPiSetup() == -1)
{
fprintf (stdout, "Unable to start wiringPi: %s\n", strerror (errno)) ;
return 1 ;
}
for (int i=1; i<argc; i++){
serialPrintf (fd, "%s", argv[i]);
}
}
作爲一個有用的後續作的OP,看看「無效serialPuts(INT FD,字符* S);」 - 您可以使用標準庫函數sprintf來進行格式化,然後使用serialPuts函數編寫整個字符串。祝你好運! – 2013-02-28 01:47:55
@RonDahlgren您能否提供一個關於如何使用該函數或可能使用'serialPrintf'函數的例子,我對編程相對比較陌生 – Yamaha32088 2013-02-28 03:05:40