編程原理
為企業(yè)提供網(wǎng)站建設、成都網(wǎng)站制作、網(wǎng)站優(yōu)化、成都全網(wǎng)營銷推廣、競價托管、品牌運營等營銷獲客服務。成都創(chuàng)新互聯(lián)公司擁有網(wǎng)絡營銷運營團隊,以豐富的互聯(lián)網(wǎng)營銷經(jīng)驗助力企業(yè)精準獲客,真正落地解決中小企業(yè)營銷獲客難題,做到“讓獲客更簡單”。自創(chuàng)立至今,成功用技術實力解決了企業(yè)“網(wǎng)站建設、網(wǎng)絡品牌塑造、網(wǎng)絡營銷”三大難題,同時降低了營銷成本,提高了有效客戶轉化率,獲得了眾多企業(yè)客戶的高度認可!
程序1為查詢通信方式接口程序,為一典型的數(shù)據(jù)采集例程。其中bioscom()函數(shù)初始化COM1(此函數(shù)實際調(diào)用BIOS
INT
14H中斷0號功能)。這樣在程序中就避免了具體設置波特率因子等繁瑣工作,只需直接訪問發(fā)送/接收寄存器(3F8H)和線路狀態(tài)寄存
分接收端和發(fā)送端。
接收端:
1·打開com1端口
fd=fopen("/dev/ttys0",方式);
2·取得當前串口值,保存到結構體變量oldtio
tcgetattr(fd,oldtio);
3·串口結構體變量newtio清0.
bzero(newtio,sizeof(newtio))
4·設置串口參數(shù)
主要設置比特率、是否忽略奇偶校驗錯誤,啟用正規(guī)模式等等。
接收端
1·打開com端口
2·取得當前串口值
3·串口結構體變量清0
4·設置串口參數(shù)。
我寫的串口通信代碼比較長,給幾個關鍵函數(shù)你吧,可實現(xiàn)PC與單片機的雙工通信
/*串口通訊 單片機晶振:11.0592MHz
T1工作于方式2 波特率=2^smod*fosc/32/12/(256-X)*/
#includecommon.h
void do_uart(void); //串口接收執(zhí)字符時的操作
/*串口發(fā)送字符串 */
void sendstr(uchar *p)
{
while(*p!='\0')
{ SBUF=*p; //待發(fā)送的數(shù)據(jù)寫入緩沖區(qū)
while(!TI); //等待發(fā)送完成
TI=0; //清零發(fā)送標志位
p++; //指針加1
cnt_s++; //發(fā)送計數(shù)
}
}
/*串口接收中斷函數(shù)*/
void int_rec(void) interrupt 4 using 2
{
if(RI) //查詢接收標志位(有數(shù)據(jù)發(fā)送過來時置為1)
{
RI = 0; //接收標志位清零
// sendchar(SBUF);//讓從電腦上傳到單片機的數(shù)據(jù),傳回的電腦顯示
do_uart();//對接受到得字符操作
}
}
/*串口初始化*/
void com_init(uint baud)
{
SCON = 0x50; //串口工作方式為1,串行允許接受
TMOD = 0x21; //定時器1工作在方式2 定時器0工作在方式1
//PCON = 0x80; //SMOD = 1; 波特率加倍
TH1=256-fosc/32/12/baud;
TL1=TH1;
ES = 1; //開串口中斷
TR1 = 1; //允許定時器1工作
EA = 1; //開總中斷
}
void sendchar(uchar uart_dat) //串口發(fā)送字符函數(shù)
{
SBUF = uart_dat; //待發(fā)送的數(shù)據(jù)寫入緩沖區(qū)
while(!TI); //等待發(fā)送完成
TI = 0; //清零發(fā)送標志位
cnt_s++; //發(fā)送計數(shù)
}
新聞標題:一個串口通訊c語言函數(shù) c語言調(diào)用串口
轉載來源:http://chinadenli.net/article0/hiepio.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供電子商務、營銷型網(wǎng)站建設、全網(wǎng)營銷推廣、網(wǎng)站維護、網(wǎng)站導航、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)