久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1601|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

stm單片機(jī)串口發(fā)送的疑問

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:525511 發(fā)表于 2023-11-28 11:39 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
在串口數(shù)據(jù)發(fā)送操作中,單片機(jī)代碼一般是這樣寫的:void USART_SendByte(USART_TypeDef* USARTx, uint8_t Data){    while(USART_GetFlagStatus(USARTx, USART_FLAG_TXE) == RESET);    USART_SendData(USARTx,Data);    }
那么這里while不是一直在死等嗎?這個過程程序是不做任何事的,和delay有什么分別?都說程序中不要用延時死等,那么這里怎么辦?如果要發(fā)送的數(shù)據(jù)很多的話,每次都在這里死等一下,整體會拖慢程序運(yùn)行速度吧?不加這個while的話還有其它方法實(shí)現(xiàn)發(fā)送功能嗎?我知道可以用DMA,但好像不是所有片子都有DMA吧?虛心求教
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:401564 發(fā)表于 2023-11-28 14:35 | 只看該作者
雖然說都是死等,但效率并不會太慢
你看一下代碼就知道了
調(diào)用函數(shù)之后并不是先發(fā)送數(shù)據(jù),而是先查詢發(fā)送完成標(biāo)志位
然后,就發(fā)送數(shù)據(jù),函數(shù)就返回了,程序在返回之后就可以去做其它的事了
其實(shí)這就已經(jīng)可以了,串口本身就是不用來進(jìn)行超高速數(shù)據(jù)傳送的
回復(fù)

使用道具 舉報(bào)

板凳
ID:94031 發(fā)表于 2023-11-28 14:50 | 只看該作者
while是檢測到發(fā)送完就進(jìn)行下一步,delay不可能比while時間短,最好用while。
回復(fù)

使用道具 舉報(bào)

地板
ID:744809 發(fā)表于 2023-11-28 15:23 | 只看該作者
可以寫一個發(fā)送隊(duì)列,然后用發(fā)送中斷的方式進(jìn)行發(fā)送,每發(fā)送一個字節(jié)會進(jìn)入發(fā)送中斷一次,此時在中斷里判斷發(fā)送buf還有沒有待發(fā)送的字節(jié),有則繼續(xù)發(fā)送,沒有則說明此次發(fā)送已經(jīng)好了。
回復(fù)

使用道具 舉報(bào)

5#
ID:470485 發(fā)表于 2023-11-28 16:12 | 只看該作者
不是死等,是反復(fù)檢查,當(dāng)檢測到發(fā)送完(時間可長可短),就進(jìn)入下一步
Delay等待只能固定時間,不能靈活控制。
回復(fù)

使用道具 舉報(bào)

6#
ID:1093268 發(fā)表于 2023-11-28 16:12 | 只看該作者
大部分應(yīng)用對于:“串口阻塞發(fā)送”,并不會對其他進(jìn)程的時效有多大影響。除非要發(fā)送很多很多字節(jié)或其他進(jìn)程的實(shí)時要求特別高,才不會選擇這種阻塞發(fā)送。如果不能用阻塞發(fā)送,可以利用串口BUF空中斷+串口發(fā)送完成中斷+軟件做個發(fā)送緩沖器。
回復(fù)

使用道具 舉報(bào)

7#
ID:124486 發(fā)表于 2023-11-28 18:43 | 只看該作者
不是死等,是檢測是否接收或者發(fā)送完成等待,任務(wù)不需要即時響應(yīng)的話,波特率調(diào)快一點(diǎn)還好這種方式也還行,如果不想等就用中斷做
回復(fù)

使用道具 舉報(bào)

8#
ID:384109 發(fā)表于 2023-11-28 19:33 | 只看該作者
改中斷發(fā)送方式就好了
回復(fù)

使用道具 舉報(bào)

9#
ID:883242 發(fā)表于 2023-11-28 22:43 | 只看該作者
可以把這個死等程序放主循環(huán)里面,其他功能在中斷完成,就不會有卡死的現(xiàn)象了。這個死等只要別放在中斷里面等就沒問題。
回復(fù)

使用道具 舉報(bào)

10#
ID:744809 發(fā)表于 2023-11-29 16:53 | 只看該作者
Hephaestus 發(fā)表于 2023-11-28 22:43
可以把這個死等程序放主循環(huán)里面,其他功能在中斷完成,就不會有卡死的現(xiàn)象了。這個死等只要別放在中斷里面 ...

你這太抽象了,哪有把串口放主函數(shù),其他放中斷的。本末倒置了不是
回復(fù)

使用道具 舉報(bào)

11#
ID:525511 發(fā)表于 2023-12-1 15:51 | 只看該作者
好的,明白了,多謝各位
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品美女久久久久aⅴ国产馆 | 免费在线观看一区二区三区 | 日韩一区二区三区在线视频 | 国产精品久久9 | 亚洲精品久久久久久一区二区 | 久久精品视频一区二区 | 久草视频在线播放 | 国产一级免费在线观看 | 亚洲欧美国产一区二区三区 | 午夜视频免费网站 | 免费一看一级毛片 | 成人在线视频免费看 | 免费在线h视频 | 精品国产乱码久久久久久闺蜜 | www.色婷婷 | 久久精品国产a三级三级三级 | 日本精品久久久久 | 日韩视频在线一区 | 亚洲精品免费观看 | 亚洲国产精品一区二区久久 | 狠狠躁夜夜躁人人爽天天高潮 | 精品一二三 | 天堂中文在线观看 | 中文字幕亚洲视频 | 黄色片在线网站 | 欧美网址在线观看 | 日本一区视频在线观看 | 欧美激情在线播放 | 亚洲一区欧美一区 | 激情一区 | 国产精品777一区二区 | 国产区第一页 | 亚洲一区二区免费看 | 国产成人在线一区 | 男女羞羞视频免费 | 亚洲人成在线观看 | 久久久无码精品亚洲日韩按摩 | 日韩a视频| 亚洲第一福利视频 | 五月天综合网 | 天天插日日操 |