Re: [問題] 如何把暫存器SBUF的資料讀出來?(keil C)
※ 引述《billy00685 (milano)》之銘言:
: code char string1[]={ "Kick ass ! " };
: code char string2[]={ "I am a LCD." };
: main()
: {
: char buf[10];
: while(1)
: {
: RI=0;
: while(RI==0);
: if(RI==1)
RI 是用來收資料的吧
你這裡的意思是指要等待收到某個字元後才做後面的事嗎?
不然你是要送東西出去, 不是應該要檢查 TI 嗎?
: {
: SBUF=buf;
如果你是如上面所說的, 只是要等待收到一個字元才開始做事
那應該是從 SBUF 讀出(xxx = SBUF)而不是寫入 (SBUF = xxx);
如果不是, 你是真的要送資料出去
buf 到這時還沒有給值
你等於把一個不知道是多少的值(事實上是陣列的位址取byte)寫給 SBUF
另外 buf 是一個陣列
SBUF = buf 在這裡也不太對
至少也該是 SBUF = buf[0] 才符合定義
: position(1,1);
: display(buf);
buf 到此時還是沒有給它值, 所以即使有印東西也應該只是亂碼
: position(2,1);
: display(string2);
這行就直接給 string2 了, (而不是給未給值的buf),
所以你說只看到第二行是合理的
因為這裡有給正確的字串
但第一個 display() 你給的是一個未給值的 buf
: void wrdata(char d)
: {
: RS=1;
: RW=0;
: E=0;
: delayms(1);
: E=1;
: DB=d;
: delayms(1);
: E=0;
: delayms(1);
: }
這些 RS/RW/E 我不熟, 不過既然你 string2 可以正常顯示
表示 wrdata() 是可以正確運作的,
那就表示你的資料不是透過 RS232 出去的?
因為 SBUF 在你的 code 裡並沒有被正確使用
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.80.67.18
※ 編輯: MetalChao 來自: 210.80.67.18 (12/23 20:23)
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章