電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開(kāi)發(fā)>通過(guò)PC機(jī)的串口調(diào)試助手將數(shù)據(jù)發(fā)送至STM32資料下載

通過(guò)PC機(jī)的串口調(diào)試助手將數(shù)據(jù)發(fā)送至STM32資料下載

2021-04-10 | pdf | 134.11KB | 次下載 | 5積分

資料介紹

本例程通過(guò)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ù)里無(wú)其他要處理的。 優(yōu)點(diǎn):簡(jiǎn)單,適合很少量數(shù)據(jù)傳輸。 缺點(diǎn):無(wú)緩存區(qū),并且對(duì)數(shù)據(jù)的正確性沒(méi)有判斷,數(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):較簡(jiǎn)單,采用緩存區(qū)接收,對(duì)提高數(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):對(duì)數(shù)據(jù)的正確性沒(méi)有判斷,一概全部接收。 實(shí)例四:
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1TC358743XBG評(píng)估板參考手冊(cè)
  2. 1.36 MB  |  330次下載  |  免費(fèi)
  3. 2開(kāi)關(guān)電源基礎(chǔ)知識(shí)
  4. 5.73 MB  |  6次下載  |  免費(fèi)
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設(shè)計(jì)
  8. 0.60 MB  |  3次下載  |  免費(fèi)
  9. 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
  10. 0.61 MB  |  2次下載  |  免費(fèi)
  11. 6基于FPGA的C8051F單片機(jī)開(kāi)發(fā)板設(shè)計(jì)
  12. 0.70 MB  |  2次下載  |  免費(fèi)
  13. 751單片機(jī)窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費(fèi)
  15. 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21548次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
  16. 0.00 MB  |  6653次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537796次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191185次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183278次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)