基于AVR的串口與PC機通信代碼怎么寫,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
為托里等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及托里網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、成都做網(wǎng)站、托里網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
為了以后根據(jù)此代碼繼續(xù)改進功能,特意把代碼放在此處,也和大家一起學(xué)習(xí)。
/************************************
AVR時鐘:8.00MHz
*波特率9600(51)8位數(shù)據(jù),1位停止,當(dāng)波特率設(shè)置為19200時,UBRR=25,4800=103
*注:波特率設(shè)置9600最佳,別的數(shù)據(jù)不穩(wěn)定,不同波特率對應(yīng)的UBRR值參考手冊
*PC機向開發(fā)板發(fā)送一個字符,開發(fā)板將其大寫字母回寫給PC機
***********************************/
#include<iom16v.h>
#include<macros.h>
void USART_Init( unsigned int baud )
{
/* 設(shè)置波特率,baud的值查數(shù)據(jù)手冊*/
UBRRH = (unsigned char )(baud>>8);
UBRRL = (unsigned char )baud;
/* 接收器與發(fā)送器使能*/
UCSRB = (1<<RXEN)|(1<<TXEN);
/* 設(shè)置幀格式: 8 個數(shù)據(jù)位, 2個停止位*/
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
}
void USART_Transmit( unsigned char data )
{
/* 等待發(fā)送緩沖器為空 */
while ( !( UCSRA & (1<<UDRE)) )
;
/* 將數(shù)據(jù)放入緩沖器,發(fā)送數(shù)據(jù) */
UDR = data;
}
unsigned char USART_Receive( void )
{
/*等待接收數(shù)據(jù)*/
while ( !(UCSRA & (1<<RXC)) )
;
/* 從緩沖器中獲取并返回數(shù)據(jù)*/
return UDR;
}
void main()
{
unsigned char cr;
DDRD=0X02; //端口PD2(TXD)輸出,端口PD1(RXD)輸入上拉
PORTD=0XFF;
//CLR_PORTD(BUZZER);
USART_Init(51); //波特率對應(yīng)的UBRR值做形參初始化
while(1)
{
cr = USART_Receive();
cr-=32;
USART_Transmit(cr);
}
}
//大寫字母和小寫字母的ASCII碼相差32,如果PC機發(fā)送的是非小寫字母,開發(fā)板可能會發(fā)回亂碼。
看完上述內(nèi)容,你們掌握基于AVR的串口與PC機通信代碼怎么寫的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
網(wǎng)站標(biāo)題:基于AVR的串口與PC機通信代碼怎么寫
地址分享:http://aaarwkj.com/article10/ihhodo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、微信公眾號、網(wǎng)站導(dǎo)航、定制網(wǎng)站、做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)