UART Txのプログラムを入れてみる。
出来た事
1.UART PJT作成, Txのプログラム追加と動作確認
2.C言語をちょっと学ぶ。(文字列の変数)
1.UART PJT作成, Txのプログラム追加と動作確認
さていよいよ、プログラムに取り掛かっていきます。
まずはエレキジャックさんの記事の(6),(7)をやっていきます。
LPC1100がLPC1343になるだけです。
問題なく出来ました(^^)
Hyper terminalでHello worldがちゃんと出てます。
2.C言語をちょっと学ぶ。(文字列の変数)
次に Hello worldでやったように
文字列の変数を使って以下のようにしてみました。
エレキジャックさんの記事の該当部分と比較してください。
#include
// 追加0
#include// 追加1
#include// 追加2
// Main loop
int main(void) {
uart_init(9600);//追加3 Start
int dat =128; // EEPROMの数値データのイメージです。
char str2[3]; // 文字列の型
itoa(dat,str2,10); // 数値データを文字列に変換
char str[]="Data="; // 付加する文字列。
//追加3 Enduart_puts("%s%s",str,str2); // 変更1
// Enter an infinite loop, just incrementing a counter
volatile static int i = 0 ;
while(1) {
i++ ;
}
return 0 ;
するとエラーがでました。(><)
uart_puts("%s%s",str,str2); // 変更1
の部分が悪いようです。
too many arguments to function 'uart_puts'
というエラーが出ています。
uart_putsはエレキジャックさんが作った関数です。
int uart_puts(const char *s) {
int n;
for (n = 0; *s; s++, n++) {
uart_putc(*s);
}
return n;
どうやらuart_putのconst char *sの部分を何とか直すか
uart_puts("%s%s",str,str2)と記載した
("%s%s",str,str2)を直す必要がありそうです。
今回は下のほうの
uart_puts("%s%s",str,str2)を直しました。
どうやら%sを使った代入がダメなようです。
()内は文字列を入れなければならないようなので
以下のようにしたらうまくいきました。
(黄色い部分を変更したら、ちゃんとコンパイル出来て
Hyperterminalでも出ました)