資料介紹
本例程通過PC機(jī)的串口調(diào)試助手將數(shù)據(jù)發(fā)送至STM32,接收數(shù)據(jù)后將所接收的數(shù)據(jù)又發(fā)送至PC機(jī),具體下面詳談。。。
實(shí)例一:
void USART1_IRQHandler(u8 GetData)
{
u8 BackData;
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //中斷產(chǎn)生
{
USART_ClearITPendingBit(USART1,USART_IT_RXNE); //清除中斷標(biāo)志.
GetData = UART1_GetByte(BackData); //也行GetData=USART1->DR;
USART1_SendByte(GetData); //發(fā)送數(shù)據(jù)
GPIO_SetBits(GPIOE, GPIO_Pin_8 ); //LED閃爍,接收成功發(fā)送完成
delay(1000);
GPIO_ResetBits(GPIOE, GPIO_Pin_8 );
}
}
這是最基本的,將數(shù)據(jù)接收完成后又發(fā)送出去,接收和發(fā)送在中斷函數(shù)里執(zhí)行,main函數(shù)里無其他要處理的。
優(yōu)點(diǎn):簡單,適合很少量數(shù)據(jù)傳輸。
缺點(diǎn):無緩存區(qū),并且對數(shù)據(jù)的正確性沒有判斷,數(shù)據(jù)量稍大可能導(dǎo)致數(shù)據(jù)丟失 。
實(shí)例二:
void USART2_IRQHandler()
{
if(USART_GetITStatus(USART2,USART_IT_RXNE) != RESET) //中斷產(chǎn)生
{
USART_ClearITPendingBit(USART2,USART_IT_RXNE); //清除中斷標(biāo)志
Uart2_Buffer[Uart2_Rx_Num] = USART_ReceiveData(USART2);
Uart2_Rx_Num ;
}
if((Uart2_Buffer[0] == 0x5A)&&(Uart2_Buffer[Uart2_Rx_Num-1] == 0xA5)) //判斷最后接收的數(shù)據(jù)是否為設(shè)定值,確定數(shù)據(jù)正確性
Uart2_Sta=1;
if(USART_GetFlagStatus(USART2,USART_FLAG_ORE) == SET) //溢出
{
USART_ClearFlag(USART2,USART_FLAG_ORE); //讀SR
USART_ReceiveData(USART2); //讀DR
}
}
if( Uart2_Sta )
{
for(Uart2_Tx_Num=0;Uart2_Tx_Num
USART2_SendByte(Uart2_Buffer[Uart2_Tx_Num]); //發(fā)送數(shù)據(jù)
Uart2_Rx_Num = 0; //初始化
Uart2_Tx_Num = 0;
Uart2_Sta = 0;
}
這是加了數(shù)據(jù)頭和數(shù)據(jù)尾的接收方式,數(shù)據(jù)頭和尾的個(gè)數(shù)可增加,此處只用于調(diào)試之用。中斷函數(shù)用于接收數(shù)據(jù)以及判斷數(shù)據(jù)的頭尾,第二個(gè)函數(shù)在main函數(shù)里按照查詢方式執(zhí)行。
優(yōu)點(diǎn):較簡單,采用緩存區(qū)接收,對提高數(shù)據(jù)的正確行有一定的改善 。
缺點(diǎn):要是第一次數(shù)據(jù)接收錯(cuò)誤,回不到初始化狀態(tài),必須復(fù)位操作 。
實(shí)例三:
void USART2_IRQHandler()
{
if(USART_GetITStatus(USART2,USART_IT_RXNE) != RESET) //中斷產(chǎn)生
{
USART_ClearITPendingBit(USART2,USART_IT_RXNE); //清除中斷標(biāo)志.
Uart2_Buffer[Uart2_Rx] = USART_ReceiveData(USART2);
Uart2_Rx ;
Uart2_Rx &= 0x3F; //判斷是否計(jì)數(shù)到最大
}
if(USART_GetFlagStatus(USART2,USART_FLAG_ORE) == SET) //溢出
{
USART_ClearFlag(USART2,USART_FLAG_ORE); //讀SR
USART_ReceiveData(USART2); //讀DR
}
}
if( Uart2_Tx != Uart2_Rx )
{
USART2_SendByte(Uart2_Buffer[Uart2_Tx]); //發(fā)送數(shù)據(jù)
Uart2_Tx ;
Uart2_Tx &= 0x3F; //判斷是否計(jì)數(shù)到最大
}
采用FIFO方式接收數(shù)據(jù),由0x3F可知此處最大接收量為64個(gè),可變,中斷函數(shù)只負(fù)責(zé)收,另一函數(shù)在main函數(shù)里執(zhí)行,F(xiàn)IFO方式發(fā)送。
優(yōu)點(diǎn):發(fā)送和接收都很自由,中斷占用時(shí)間少,有利于MCU處理其它。
缺點(diǎn):對數(shù)據(jù)的正確性沒有判斷,一概全部接收。
實(shí)例四:
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 串口網(wǎng)絡(luò)調(diào)試助手
- 串口調(diào)試助手下載 51次下載
- 串口調(diào)試助手免費(fèi)下載 12次下載
- stm32串口發(fā)送數(shù)據(jù)的配置,以及通過串口發(fā)送結(jié)構(gòu)體數(shù)組總是多一個(gè)00字節(jié)的問題--已解決
- STM32 LoRa無線數(shù)傳模塊 PC通過串口傳輸數(shù)據(jù)到單片機(jī)
- 串口調(diào)試助手V2.2軟件程序下載 47次下載
- 串口調(diào)試助手V2.80軟件下載 102次下載
- 串口調(diào)試助手應(yīng)用程序免費(fèi)下載 26次下載
- JCBus串口調(diào)試助手的使用教程免費(fèi)下載 24次下載
- 串口調(diào)試助手軟件免費(fèi)下載 64次下載
- 串口調(diào)試助手SUDT AccessPort免費(fèi)下載(PC機(jī)串口調(diào)試/監(jiān)控軟件) 57次下載
- 串口調(diào)試助手2.1 50次下載
- 單片機(jī)串口調(diào)試助手程序下載 49次下載
- 串口調(diào)試助手simgpsgsm 29次下載
- 歡迎大家下載超實(shí)用的串口調(diào)試助手 56次下載
- 電機(jī)控制調(diào)試助手怎么用 747次閱讀
- STM32工程上printf()函數(shù)的方法實(shí)現(xiàn) 1185次閱讀
- STM32串口發(fā)送數(shù)據(jù)和接收數(shù)據(jù)方式總結(jié) 6565次閱讀
- 基于STM32的串口環(huán)形隊(duì)列IAP調(diào)試 1198次閱讀
- 基于STM32單片機(jī)的簡易電壓系統(tǒng)設(shè)計(jì) 1471次閱讀
- 如何確保FX5U能跟掃碼槍正常通訊? 771次閱讀
- 如何利用STM32單片機(jī)串口發(fā)送字符串 1.6w次閱讀
- STM32串口通信數(shù)據(jù)亂碼的相關(guān)問題 1.1w次閱讀
- STM32F103程序調(diào)用printf打印串口數(shù)據(jù) 1.2w次閱讀
- 基于STM32中調(diào)試與串口之間的信息傳輸 6417次閱讀
- 一文知道EDBG的虛擬串口功能 5303次閱讀
- 基于STM32的串口DMA發(fā)送 2.1w次閱讀
- 友善串口調(diào)試助手怎么使用及使用方法說明 12.6w次閱讀
- 掌握串口通信協(xié)議的收發(fā)過程 7.8w次閱讀
- stm32串口通信用printf發(fā)送數(shù)據(jù)配置 4270次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開關(guān)電源基礎(chǔ)知識
- 5.73 MB | 6次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 0.61 MB | 2次下載 | 免費(fèi)
- 6基于FPGA的C8051F單片機(jī)開發(fā)板設(shè)計(jì)
- 0.70 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21548次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6653次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191185次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183278次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論
查看更多