欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

3天內(nèi)不再提示

串口數(shù)據(jù)錯(cuò)亂?從標(biāo)志位設(shè)置入手

ZLG致遠(yuǎn)電子 ? 2025-02-11 11:35 ? 次閱讀

導(dǎo)讀

在串口通信開發(fā)中,數(shù)據(jù)錯(cuò)亂是常見問題。本文將快速介紹串口標(biāo)志位的作用及配置方法,幫助解決數(shù)據(jù)傳輸錯(cuò)誤。

有用戶反饋“串口應(yīng)用層數(shù)據(jù)錯(cuò)亂、與發(fā)送端發(fā)送的字節(jié)數(shù)不匹配”,簡(jiǎn)單來說就是接收和發(fā)送的數(shù)據(jù)不對(duì),而且還存在幀數(shù)據(jù)錯(cuò)亂的情況。經(jīng)排查,是程序沒用設(shè)置ISIG標(biāo)志位設(shè)置引起的。本節(jié)以此為切入點(diǎn)進(jìn)行展開,對(duì)串口設(shè)置的一些標(biāo)志位進(jìn)行簡(jiǎn)單說明。

1. c_cflag:可以設(shè)置波特率、字符大小、數(shù)據(jù)位、停止位、奇偶校驗(yàn)位和硬軟流控等

1.1 波特率

4aba9ac6-e829-11ef-9434-92fbcf53809c.png

1.2 其它

4ad2ece8-e829-11ef-9434-92fbcf53809c.png

初始化c_flag時(shí),不能直接對(duì) c_cflag 成員進(jìn)行賦值,而是需要通過“與”、“或”操作使用其中的某些選項(xiàng),例如:

  • 設(shè)置硬件流控制

c_cflag |= CNEW_RTSCTS

無硬件流控制

c_cflag &= ~CNEW_RTSCTS

2. c_iflag:用于控制端口接收端的字符輸入處理

4ae9ddb8-e829-11ef-9434-92fbcf53809c.png

禁用軟件流控制是禁止上面的選項(xiàng)。

c_iflag &= ~(IXON | IXOFF | IXANY);

3. c_oflag:用于控制終端端口發(fā)送出去的字符處理

4b15f902-e829-11ef-9434-92fbcf53809c.png

因?yàn)楝F(xiàn)在終端的速度比以前快得多,所以大部分延時(shí)掩碼幾乎沒什么用途。

啟用輸出處理需要在 c_oflag 成員中啟用 OPOST 選項(xiàng)。

c_oflag |= OPOST;

使用原始輸出,就是禁用輸出處理,使數(shù)據(jù)能不經(jīng)過處理過濾的完整地輸出到串口。當(dāng) OPOST 被禁止,c_oflag 其它選項(xiàng)也被忽略。

c_oflag &= ~OPOST;

4. c_lflag:用于控制控制終端的本地?cái)?shù)據(jù)處理和工作模式

4b2a6888-e829-11ef-9434-92fbcf53809c.png

4.1 選擇規(guī)范模式

c_lflag |= (ICANON | ECHO | ECHOE);

4.2 選擇原始模式

c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);

5. c_cc:定義特殊控制特性

4b49c6d8-e829-11ef-9434-92fbcf53809c.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)傳輸
    +關(guān)注

    關(guān)注

    9

    文章

    1961

    瀏覽量

    64866
  • 串口通信
    +關(guān)注

    關(guān)注

    34

    文章

    1628

    瀏覽量

    55756
  • 串口數(shù)據(jù)
    +關(guān)注

    關(guān)注

    0

    文章

    34

    瀏覽量

    13928
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM8使用串口接收中斷時(shí)用不用清標(biāo)志

    請(qǐng)問大家 串口 使用接收中斷的模式。 接收完數(shù)據(jù)之后, 用不用清 標(biāo)志什么的 ??? 我試過中斷中沒做清除標(biāo)志
    發(fā)表于 05-08 06:10

    有關(guān)STM32串口收發(fā)標(biāo)志的問題

    通過STM32的串口發(fā)數(shù)據(jù)是需要判斷發(fā)送是否完成,應(yīng)該用while (USART_GetFlagStatus(USARTx, USART_FLAG_TXE) == RESET);還是while
    發(fā)表于 03-30 18:34

    怎么在標(biāo)志寄存器中設(shè)置讀取?

    嘗試先做一些簡(jiǎn)單的事情)。數(shù)據(jù)表表示,在讀取數(shù)據(jù)之前,我需要在標(biāo)志寄存器中設(shè)置讀取,并且我不必設(shè)置
    發(fā)表于 10-22 07:06

    TXE狀態(tài)標(biāo)志該位由硬件置

    TE標(biāo)志要想使串口能夠發(fā)送數(shù)據(jù),必須置TE標(biāo)志
    發(fā)表于 08-20 07:44

    用中斷接收串口數(shù)據(jù)為什么會(huì)存在串口接收數(shù)據(jù)錯(cuò)亂的問題呢

    用中斷接收串口數(shù)據(jù)為什么會(huì)存在串口接收數(shù)據(jù)錯(cuò)亂的問題呢?如何去解決?
    發(fā)表于 12-09 07:00

    STM32串口TXE和TC標(biāo)志的相關(guān)資料推薦

    STM32 串口TXE和TC標(biāo)志的理解我們發(fā)送數(shù)據(jù)的時(shí)候是先放在數(shù)據(jù)寄存器(TDR),然后在往移位寄存器里面丟,TXE就是用來判斷我們的
    發(fā)表于 02-22 07:11

    上位機(jī)如何設(shè)置串口9位數(shù)據(jù)位/TB8

    串口多機(jī)通訊,上位機(jī)如何設(shè)置串口9位數(shù)據(jù)位/TB8**常用的串口數(shù)據(jù)位
    發(fā)表于 02-23 07:28

    單片機(jī)硬件定時(shí)器5ms會(huì)導(dǎo)致串口接收錯(cuò)亂

    120mhz單片機(jī)mpu6050的dmp很慢主板得接收另一塊板子發(fā)送的數(shù)據(jù)包(幀頭+數(shù)據(jù)+幀尾)主板需要定時(shí)讀取dmp進(jìn)行pid計(jì)算控制直立硬件定時(shí)器5ms會(huì)導(dǎo)致串口接收錯(cuò)亂??加長(zhǎng)至
    發(fā)表于 08-02 10:48

    單片機(jī)復(fù)位標(biāo)志設(shè)置與應(yīng)用研究

    設(shè)置復(fù)位標(biāo)志便于區(qū)分不同原因引發(fā)的復(fù)位,作為一種新技術(shù)被越來越多的新型單片機(jī)所采納。例如Philips公司的P87LPC700和 P89LPC900系列、Freescale公司(原Motorola半導(dǎo)體部)的MC68HC05
    發(fā)表于 04-28 11:39 ?22次下載

    STM32串口空閑中斷,中斷標(biāo)志無法清除

    STM32串口空閑中斷,中斷標(biāo)志無法清除
    發(fā)表于 12-02 17:36 ?31次下載
    STM32<b class='flag-5'>串口</b>空閑中斷,中斷<b class='flag-5'>標(biāo)志</b><b class='flag-5'>位</b>無法清除

    問題筆記:STM32串口數(shù)據(jù)位與校驗(yàn)

    問題:STM32移植freemodbus 后測(cè)試時(shí),只能使用無校驗(yàn) ,設(shè)置奇偶校驗(yàn)時(shí)無法與上位機(jī)通訊解決方法如果串口助手使用串口配置為:數(shù)據(jù)位8 停止
    發(fā)表于 12-24 18:44 ?19次下載
    問題筆記:STM32<b class='flag-5'>串口</b><b class='flag-5'>數(shù)據(jù)位</b>與校驗(yàn)<b class='flag-5'>位</b>

    STM32 串口TXE和TC標(biāo)志的理解

    STM32 串口TXE和TC標(biāo)志的理解我們發(fā)送數(shù)據(jù)的時(shí)候是先放在數(shù)據(jù)寄存器(TDR),然后在往移位寄存器里面丟,TXE就是用來判斷我們的
    發(fā)表于 12-27 19:18 ?5次下載
    STM32 <b class='flag-5'>串口</b>TXE和TC<b class='flag-5'>標(biāo)志</b><b class='flag-5'>位</b>的理解

    多機(jī)通訊設(shè)置TB8

    串口多機(jī)通訊,上位機(jī)如何設(shè)置串口9位數(shù)據(jù)位/TB8**常用的串口數(shù)據(jù)位
    發(fā)表于 12-29 19:31 ?1次下載
    多機(jī)通訊<b class='flag-5'>設(shè)置</b>TB8

    stm32串口接收中斷觸發(fā)原理

    配置串口接收中斷使能:在初始化串口時(shí),需要設(shè)置相應(yīng)的控制寄存器來使能串口接收中斷。這通??梢酝ㄟ^設(shè)置相應(yīng)的
    發(fā)表于 01-17 15:42 ?8047次閱讀
    stm32<b class='flag-5'>串口</b>接收中斷觸發(fā)原理

    串口中斷需要清除標(biāo)志嗎,串口中斷標(biāo)志會(huì)自動(dòng)清除嗎

    在電子通信領(lǐng)域,串口中斷作為一種重要的通信機(jī)制,廣泛應(yīng)用于各種嵌入式系統(tǒng)和計(jì)算機(jī)設(shè)備中。串口中斷標(biāo)志的管理,尤其是是否需要手動(dòng)清除以及是否會(huì)自動(dòng)清除,是理解和實(shí)現(xiàn)
    的頭像 發(fā)表于 01-29 14:59 ?152次閱讀