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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2265|回復(fù): 6
收起左側(cè)

關(guān)于如何解決單片機(jī)串口重復(fù)發(fā)送字符串的問題

[復(fù)制鏈接]
ID:1091909 發(fā)表于 2023-8-24 21:05 | 顯示全部樓層 |閱讀模式
單片機(jī)串口重復(fù)發(fā)送字符串,大佬回答說加while(1),可是我加了之后計(jì)算機(jī)收不到數(shù)據(jù)
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2023-8-24 21:43 | 顯示全部樓層
設(shè)置發(fā)送的條件即可
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2023-8-24 21:54 | 顯示全部樓層
貼完整代碼
回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2023-8-25 08:24 | 顯示全部樓層
我的方案及實(shí)用:沒有等待,幾乎不占(幾條機(jī)器指令)其它低級(jí)中斷時(shí)間。
1、建立一個(gè)緩沖區(qū)SS,專放需要發(fā)送的字節(jié)。
2、建立兩個(gè)指針:其一,PCS1指向需要發(fā)送但還未發(fā)送的字節(jié),也即向SS寫一個(gè),PCS1就+1個(gè)。
其二,PCS2指向正在發(fā)送的字節(jié),也即發(fā)一個(gè),PCS2就+1個(gè)。
3、規(guī)則1:起始讓PCS1=PCS2,表示沒有發(fā)送字節(jié),或所有字節(jié)已發(fā)完。
4、發(fā)送中斷(TI)服務(wù)程序,檢查,當(dāng)PCS1<>PCS2,就發(fā)送PCS2指向的字節(jié),并將PCS2+1,退出中斷。這樣中斷一次發(fā)一個(gè)字節(jié),發(fā)完就走,用時(shí)極短,沒有等待(從不等待TI),幾乎不占時(shí)間。
5、所有需要發(fā)送的字節(jié),依序?qū)懭隨S即可:寫入PCS1指向和地址,寫完后PCS+1。
如此寫入SS并不管它是否被發(fā)送,除非它是第一個(gè)字節(jié)(PCS1=PCS2時(shí))。

回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2023-8-25 08:46 | 顯示全部樓層
6、將SS做成循環(huán)地址,如256個(gè),64個(gè),32個(gè),這樣方便循環(huán)(只要限制PCS1、2的高位=0即可達(dá)成循環(huán))
另:高級(jí)防止意外部分(如,意外無TI中斷,發(fā)送未通連續(xù)):
如果間隔△t(如20ms)無發(fā)送,復(fù)位PCS1=PCS1=0(丟棄意外)。這需要做發(fā)送計(jì)時(shí)標(biāo)記,定時(shí)器……,不在此細(xì)述了。

總結(jié):
1、新手發(fā)送10個(gè)字節(jié),會(huì)發(fā)1個(gè)等1個(gè)(等TI=1),再發(fā)下1個(gè),直到發(fā)完10個(gè)字節(jié)。
假設(shè)發(fā)送一個(gè)字節(jié)需要2ms,則發(fā)送10字節(jié)就用了20ms,而真正地執(zhí)行10個(gè)字節(jié)的發(fā)送,只需不到10us(CPU執(zhí)行10個(gè)BSUF=A指令,及其它輔助指令),這里20ms幾乎白白地等待浪費(fèi)了。
2、當(dāng)你調(diào)用【發(fā)送函數(shù)】時(shí),誰能知道【發(fā)送函數(shù)】是如何發(fā)送的呢?它有沒有象1、一樣呢?
這是你不能控制的,因?yàn)槌绦蚴莿e人的。

樓主要重復(fù)發(fā)送:
只要將需要重復(fù)的字節(jié)寫入SS即可,想重復(fù)幾次就寫幾次。
回復(fù)

使用道具 舉報(bào)

ID:1073939 發(fā)表于 2023-8-25 12:01 | 顯示全部樓層
看了你另一個(gè)相關(guān)帖子。
  1. void main()
  2. {
  3.         uart_init();
  4.         delay_ms(500); delay_ms(500); delay_ms(500); delay_ms(500); delay_ms(500); delay_ms(500);
  5.         uart1_send_string("yes,you can!\r\n");
  6.         delay_ms(500);
  7. while(1);
  8. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

ID:320306 發(fā)表于 2023-8-25 16:22 | 顯示全部樓層
發(fā)送需要延時(shí)處理一下比較好!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 午夜天堂精品久久久久 | 国产欧美日韩在线一区 | 精品欧美一区二区在线观看 | 日日干日日射 | 日本午夜一区二区三区 | 天天艹天天干天天 | 国产精品久久久久一区二区三区 | 日韩精品一区二区三区四区 | 欧美日在线 | a级在线观看 | 黄色中文字幕 | 手机三级电影 | 国产高清视频在线观看播放 | 国产精品久久久久久久久免费相片 | 欧美日产国产成人免费图片 | 久操国产| 成人欧美一区二区 | 午夜精品一区二区三区三上悠亚 | 国产精品免费一区二区三区四区 | 日韩成人av在线播放 | 久久精品久久精品久久精品 | 日韩二| 国产一卡二卡三卡 | 亚洲精品乱码久久久久久按摩观 | 毛片在线看片 | 二区三区视频 | 中文字幕第7页 | 国产高清一区二区三区 | 嫩草91在线| 日韩看片| 成人精品在线观看 | 久久免费精品视频 | 亚洲 欧美 日韩在线 | 国产综合久久 | 免费一区 | 亚洲一区二区三区高清 | 日韩中文字幕 | 成人美女免费网站视频 | 成人精品免费视频 | 欧美毛片免费观看 | 欧美精品久久久久 |