国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

串口數據錯亂?從標志位設置入手

ZLG致遠電子 ? 2025-02-11 11:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

導讀

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

有用戶反饋“串口應用層數據錯亂、與發送端發送的字節數不匹配”,簡單來說就是接收和發送的數據不對,而且還存在幀數據錯亂的情況。經排查,是程序沒用設置ISIG標志位設置引起的。本節以此為切入點進行展開,對串口設置的一些標志位進行簡單說明。

1. c_cflag:可以設置波特率、字符大小、數據位、停止位、奇偶校驗位和硬軟流控等

1.1 波特率

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

1.2 其它

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

初始化c_flag時,不能直接對 c_cflag 成員進行賦值,而是需要通過“與”、“或”操作使用其中的某些選項,例如:

  • 設置硬件流控制

c_cflag |= CNEW_RTSCTS

無硬件流控制

c_cflag &= ~CNEW_RTSCTS

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

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

禁用軟件流控制是禁止上面的選項。

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

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

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

因為現在終端的速度比以前快得多,所以大部分延時掩碼幾乎沒什么用途。

啟用輸出處理需要在 c_oflag 成員中啟用 OPOST 選項。

c_oflag |= OPOST;

使用原始輸出,就是禁用輸出處理,使數據能不經過處理過濾的完整地輸出到串口。當 OPOST 被禁止,c_oflag 其它選項也被忽略。

c_oflag &= ~OPOST;

4. c_lflag:用于控制控制終端的本地數據處理和工作模式

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

4.1 選擇規范模式

c_lflag |= (ICANON | ECHO | ECHOE);

4.2 選擇原始模式

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

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

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據傳輸
    +關注

    關注

    9

    文章

    2201

    瀏覽量

    67579
  • 串口通信
    +關注

    關注

    34

    文章

    1662

    瀏覽量

    57962
  • 串口數據
    +關注

    關注

    1

    文章

    34

    瀏覽量

    14272
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    STM8使用串口接收中斷時用不用清標志

    請問大家 串口 使用接收中斷的模式。 接收完數據之后, 用不用清 標志什么的 ??? 我試過中斷中沒做清除標志
    發表于 05-08 06:10

    有關STM32串口收發標志的問題

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

    怎么在標志寄存器中設置讀取

    嘗試先做一些簡單的事情)。數據表表示,在讀取數據之前,我需要在標志寄存器中設置讀取,并且我不必設置
    發表于 10-22 07:06

    TXE狀態標志該位由硬件置

    TE標志要想使串口能夠發送數據,必須置TE標志
    發表于 08-20 07:44

    用中斷接收串口數據為什么會存在串口接收數據錯亂的問題呢

    用中斷接收串口數據為什么會存在串口接收數據錯亂的問題呢?如何去解決?
    發表于 12-09 07:00

    STM32串口TXE和TC標志的相關資料推薦

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

    上位機如何設置串口9位數據位/TB8

    串口多機通訊,上位機如何設置串口9位數據位/TB8**常用的串口數據位
    發表于 02-23 07:28

    單片機硬件定時器5ms會導致串口接收錯亂

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

    單片機復位標志設置與應用研究

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

    STM32串口空閑中斷,中斷標志無法清除

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

    問題筆記:STM32串口數據位與校驗

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

    STM32 串口TXE和TC標志的理解

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

    多機通訊設置TB8

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

    stm32串口接收中斷觸發原理

    配置串口接收中斷使能:在初始化串口時,需要設置相應的控制寄存器來使能串口接收中斷。這通常可以通過設置相應的
    發表于 01-17 15:42 ?9391次閱讀
    stm32<b class='flag-5'>串口</b>接收中斷觸發原理

    串口中斷需要清除標志嗎,串口中斷標志會自動清除嗎

    在電子通信領域,串口中斷作為一種重要的通信機制,廣泛應用于各種嵌入式系統和計算機設備中。串口中斷標志的管理,尤其是是否需要手動清除以及是否會自動清除,是理解和實現
    的頭像 發表于 01-29 14:59 ?3421次閱讀