找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2770|回復: 6
打印 上一主題 下一主題
收起左側

STC12c5a60s2單片機串口應用問題

  [復制鏈接]
回帖獎勵 40 黑幣 回復本帖可獲得 10 黑幣獎勵! 每人限 1 次(中獎概率 70%)
跳轉到指定樓層
樓主
ID:394056 發(fā)表于 2019-2-19 15:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
請教下面關于串口發(fā)送的問題,如下3個程序有什么區(qū)別?還請高手詳細講解一下。
這種芯片(STC12c5a60s2)的串口應用還有那些好的例子請貼出來共享一下唄(注本人菜鳥一
1
void send_uart1(uchar ck1)
{
SBUF=ck1;
while(TI==0);
TI=0;
}

2

void UartPrintASCII(unsigned char c)  
{
    TI=0;   
    SBUF=c;   
    while(TI==0);   
    TI=0;   
}

3
void UartPrintf(unsigned char *p)   
{
  while(*p)
  {
   SBUF=*(p++);
  while(TI==0)
  {
   ;
   ;
   ;
  };
  TI=0;
}   
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:213173 發(fā)表于 2019-2-19 21:28 | 只看該作者
例1和例2沒有什么區(qū)別,例2的第一行TI=0;是贅句,但不影響功能,都是串口發(fā)送一個字節(jié)函數。例3是串口連續(xù)發(fā)送多字節(jié)函數,通常指針P指向某個數組,當數組元素發(fā)完while(*p)為假,即跳出循環(huán),while(TI==0)花括號內的分號是為了獲得短暫延時,實際應用中可有可無。希望對你有所幫助。
回復

使用道具 舉報

板凳
ID:432823 發(fā)表于 2019-2-19 21:34 | 只看該作者
對你可能有幫助,串口通訊數據協議中有校驗。

STC12C5A60S2_UART.rar

1.62 KB, 下載次數: 15

串口通訊

回復

使用道具 舉報

地板
ID:394056 發(fā)表于 2019-2-20 09:29 | 只看該作者
wulin 發(fā)表于 2019-2-19 21:28
例1和例2沒有什么區(qū)別,例2的第一行TI=0;是贅句,但不影響功能,都是串口發(fā)送一個字節(jié)函數。例3是串口連續(xù) ...

例三能舉個例子嗎?怎樣發(fā)送數組不太明白啊
回復

使用道具 舉報

5#
ID:158375 發(fā)表于 2019-2-20 12:12 | 只看該作者
瞎猜:例三最多只能發(fā)送256個吧。具體發(fā)送多少個,看實際應用。
回復

使用道具 舉報

6#
ID:474677 發(fā)表于 2019-2-20 12:29 | 只看該作者
代碼蝦1 發(fā)表于 2019-2-20 09:29
例三能舉個例子嗎?怎樣發(fā)送數組不太明白啊

二樓的兄弟說得比較清楚了,例三里面主要有個指針的概念,這個是C語言編程的一個難點,是其他高級語言所沒有的,這個例子里指針實際指向了一個數組,它在程序里體現為一段連續(xù)的存儲空間,所以配合一個循環(huán)語句你就可以把這段存儲空間的字節(jié)內容挨個送給串口輸出
回復

使用道具 舉報

7#
ID:477934 發(fā)表于 2019-2-20 17:52 | 只看該作者
wulin 發(fā)表于 2019-2-19 21:28
例1和例2沒有什么區(qū)別,例2的第一行TI=0;是贅句,但不影響功能,都是串口發(fā)送一個字節(jié)函數。例3是串口連續(xù) ...

說的很明了

評分

參與人數 5黑幣 +62 收起 理由
static + 12 回帖助人的獎勵!
zhengchong60 + 15
sheng7533967 + 15
shuisheng60 + 10
jinsheng7533967 + 10

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表