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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1834|回復: 10
收起左側

stm單片機串口發送的疑問

[復制鏈接]
ID:525511 發表于 2023-11-28 11:39 | 顯示全部樓層 |閱讀模式
在串口數據發送操作中,單片機代碼一般是這樣寫的:void USART_SendByte(USART_TypeDef* USARTx, uint8_t Data){    while(USART_GetFlagStatus(USARTx, USART_FLAG_TXE) == RESET);    USART_SendData(USARTx,Data);    }
那么這里while不是一直在死等嗎?這個過程程序是不做任何事的,和delay有什么分別?都說程序中不要用延時死等,那么這里怎么辦?如果要發送的數據很多的話,每次都在這里死等一下,整體會拖慢程序運行速度吧?不加這個while的話還有其它方法實現發送功能嗎?我知道可以用DMA,但好像不是所有片子都有DMA吧?虛心求教
回復

使用道具 舉報

ID:401564 發表于 2023-11-28 14:35 | 顯示全部樓層
雖然說都是死等,但效率并不會太慢
你看一下代碼就知道了
調用函數之后并不是先發送數據,而是先查詢發送完成標志位
然后,就發送數據,函數就返回了,程序在返回之后就可以去做其它的事了
其實這就已經可以了,串口本身就是不用來進行超高速數據傳送的
回復

使用道具 舉報

ID:94031 發表于 2023-11-28 14:50 | 顯示全部樓層
while是檢測到發送完就進行下一步,delay不可能比while時間短,最好用while。
回復

使用道具 舉報

ID:744809 發表于 2023-11-28 15:23 | 顯示全部樓層
可以寫一個發送隊列,然后用發送中斷的方式進行發送,每發送一個字節會進入發送中斷一次,此時在中斷里判斷發送buf還有沒有待發送的字節,有則繼續發送,沒有則說明此次發送已經好了。
回復

使用道具 舉報

ID:470485 發表于 2023-11-28 16:12 | 顯示全部樓層
不是死等,是反復檢查,當檢測到發送完(時間可長可短),就進入下一步
Delay等待只能固定時間,不能靈活控制。
回復

使用道具 舉報

ID:1093268 發表于 2023-11-28 16:12 | 顯示全部樓層
大部分應用對于:“串口阻塞發送”,并不會對其他進程的時效有多大影響。除非要發送很多很多字節或其他進程的實時要求特別高,才不會選擇這種阻塞發送。如果不能用阻塞發送,可以利用串口BUF空中斷+串口發送完成中斷+軟件做個發送緩沖器。
回復

使用道具 舉報

ID:124486 發表于 2023-11-28 18:43 | 顯示全部樓層
不是死等,是檢測是否接收或者發送完成等待,任務不需要即時響應的話,波特率調快一點還好這種方式也還行,如果不想等就用中斷做
回復

使用道具 舉報

ID:384109 發表于 2023-11-28 19:33 | 顯示全部樓層
改中斷發送方式就好了
回復

使用道具 舉報

ID:883242 發表于 2023-11-28 22:43 | 顯示全部樓層
可以把這個死等程序放主循環里面,其他功能在中斷完成,就不會有卡死的現象了。這個死等只要別放在中斷里面等就沒問題。
回復

使用道具 舉報

ID:744809 發表于 2023-11-29 16:53 | 顯示全部樓層
Hephaestus 發表于 2023-11-28 22:43
可以把這個死等程序放主循環里面,其他功能在中斷完成,就不會有卡死的現象了。這個死等只要別放在中斷里面 ...

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

使用道具 舉報

ID:525511 發表于 2023-12-1 15:51 | 顯示全部樓層
好的,明白了,多謝各位
回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 97超碰资源站 | 国产在线视频一区二区 | 激情福利视频 | 久久精品国产一区二区 | 国产精品一区二区三区免费 | 精品一区视频 | 国产精品亚洲综合 | 国产第二页| 黄视频免费在线观看 | 日本久久精品 | 免费一区二区三区 | 欧美级毛片 | 日本a在线 | 国产福利在线视频 | 国产一区二区在线播放 | 国产一区二区三区四区 | 精品免费视频 | 97精品在线视频 | 亚洲福利视频一区 | 日韩欧美在线播放 | 天天综合影院 | 国产黄在线观看 | 操操操av| 国产一区二区福利 | 日本国产欧美 | 夜夜欢天天干 | 久久一区 | 久久精品国产亚洲 | 中文字幕高清在线 | 日韩一区二区三区在线 | 亚洲视频在线免费观看 | 精品久久一区二区三区 | 国产视频www| 高跟肉丝丝袜呻吟啪啪网站av | 五月婷婷综合激情 | 欧美18免费视频 | 福利视频午夜 | 91亚洲国产 | 五月婷婷深深爱 | 国产成人在线免费观看 | 午夜精品影院 |