基於AVR的串列埠與PC機通訊程式碼(uart8位資料)
為了以後根據此程式碼繼續改進功能,特意把程式碼放在此處,也和大家一起學習。
/************************************
AVR時鐘:8.00MHz*波特率9600(51)8位資料,1位停止,當波特率設定為19200時,UBRR=25,4800=103
*注:波特率設定9600最佳,別的資料不穩定,不同波特率對應的UBRR值參考手冊
*PC機向開發板傳送一個字元,開發板將其大寫字母回寫給PC機***********************************/
#include<iom16v.h>
#include<macros.h>
void USART_Init( unsigned int baud )
{
/* 設定波特率,baud的值查資料手冊*/
UBRRH = (unsigned char )(baud>>8);
UBRRL = (unsigned char )baud;
/* 接收器與傳送器使能*/
UCSRB = (1<<RXEN)|(1<<TXEN);
/* 設定幀格式: 8 個資料位, 2個停止位*/
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
}
void USART_Transmit( unsigned char data )
{
/* 等待傳送緩衝器為空 */
while ( !( UCSRA & (1<<UDRE)) )
;
/* 將資料放入緩衝器,傳送資料 */
UDR = data;
}
unsigned char USART_Receive( void )
{
/*等待接收資料*/
while ( !(UCSRA & (1<<RXC)) )
;
/* 從緩衝器中獲取並返回資料*/
return UDR;
}
void main()
{
unsigned char cr;
DDRD=0X02; //埠PD2(TXD)輸出,埠PD1(RXD)輸入上拉
PORTD=0XFF;
//CLR_PORTD(BUZZER);
USART_Init(51); //波特率對應的UBRR值做形參初始化
while(1)
{
cr = USART_Receive();
cr-=32;
USART_Transmit(cr);
}
}
//大寫字母和小寫字母的ASCII碼相差32,如果PC機傳送的是非小寫字母,開發板可能會發回亂碼。
相關文章
- 串列埠資料抓取及串列埠通訊模擬串列埠
- 基於WebSocket的modbus通訊(三)- websocket和串列埠Web串列埠
- 串列埠通訊上位機資料傳輸協議串列埠協議
- 串列埠通訊串列埠
- Android 串列埠通訊Android串列埠
- linux 串列埠通訊Linux串列埠
- 國內的 Stduino IDE 基於 STM32 的串列埠通訊與 LED 燈閃爍UIIDE串列埠
- 11. 串列埠通訊串列埠
- (10)uart串列埠通訊串列埠
- 串列埠通訊型別串列埠型別
- 串列埠通訊協議串列埠協議
- 通過串列埠進行通訊 :串列埠
- 串列埠通訊與其他通訊方式相比有什麼優勢?串列埠
- 串列埠無法正常通訊串列埠
- C# SerialPort 串列埠通訊C#串列埠
- C#實現掃碼槍串列埠通訊C#串列埠
- 樹莓派4B基於OpenCV的C++環境的串列埠通訊樹莓派OpenCVC++串列埠
- AndroidSerialPort:安卓串列埠通訊庫Android安卓串列埠
- 安卓串列埠通訊疑問安卓串列埠
- ROS環境下串列埠通訊ROS串列埠
- 串列埠通訊gui介面顯示串列埠GUI
- 小型plc串列埠通訊簡介串列埠
- 如何使用Java串列埠進行資料通訊及應用案例Java串列埠
- Arduino下的STM32的串列埠通訊UI串列埠
- 樹莓派已經通過網路連線通過串列埠通訊在串列埠除錯小助手列印與操作樹莓派串列埠除錯
- C# 串列埠通訊利器 SerialPortStream庫C#串列埠
- STM32串列埠通訊串列埠
- 【嵌入式系統】STM32串列埠通訊的四種方法(基於RTOS)串列埠
- 基於單連結串列的班級通訊錄
- STMF4串列埠通訊使用串列埠
- 基於Atmega8微控制器的串列埠收發程式串列埠
- 沒有真實串列埠裝置時使用"虛擬串列埠驅動"除錯你的串列埠程式碼串列埠除錯
- 美麗新農村:基於PLC和串列埠通訊的農村汙水物聯網解決方案串列埠
- 串列埠通訊利器:SerialPortStream庫詳解,輕鬆實現C#串列埠開發串列埠C#
- ros中使用serial包實現串列埠通訊ROS串列埠
- 打工筆記--------------------------c#實現串列埠通訊筆記C#串列埠
- 有沒有大佬玩過串列埠通訊啊?串列埠
- 串列埠通訊常見的錯誤和故障排除方法串列埠
- python讀取串列埠 資料Python串列埠