在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

CW32數字電壓電流表軟件教程-實驗六:串口藍牙發送

CW32生態社區 ? 來源:CW32生態社區 ? 作者:CW32生態社區 ? 2024-05-31 15:45 ? 次閱讀

7.1.串口基礎知識

7.1.1.串口介紹

串行接口簡稱串口,也稱串行通信接口或串行通信接口(通常指COM接口),是采用串行通信方式的擴展接口。串行接口 (Serial Interface)是指數據一位一位地順序傳送。其特點是通信線路簡單,只要一對傳輸線就可以實現雙向通信(可以直接利用電話線作為傳輸線),從而大大降低了成本,特別適用于遠距離通信,但傳送速度較慢。

7.1.2.串口通信參數介紹

  • 波特率:衡量通信速度的參數,它表示每秒鐘傳送的bit的個數。
  • 數據位:衡量通信中實際數據位的參數,表示一個信息包里包含的數據位的個數。
  • 停止位:用于表示單個信息包的最后位,典型值為1、1.5和2位。由于數據是在傳輸線上傳輸的,每個設備都有自己的時鐘,很有可能在通信過程中出現不同步,停止位不僅僅表示傳輸的結束,還能提供校正時鐘同步的機會。停止位的位數越多,不同時鐘同步的容忍程度越大,但是數據傳輸率也越慢。
  • 奇偶檢驗位:表示一種簡單的檢查錯誤的方式。

關于更為詳細的介紹請搜索百度。

7.1.3.串口工作模式

串口可以工作在單工、半雙工和全雙工模式下。

  • 單工:在通信的任意時刻,信息只能由A傳到B。
  • 半雙工:在通信的任意時刻,信息即可由A傳到B,又能由B傳到A,但同時只能有一個方向上的傳輸存在。
  • 全雙工:在通信的任意時刻,通信線路上存在A到B和B到A的雙向信號傳輸。

7.1.4.串口通信協議

串口在進行通信的時候會按照數據包的形式進行發送,幀格式如圖1-4-1所示。

圖9-1 串口通信協議

串口通信是一位一位地傳輸,每傳輸一個字節總是以起始位開始,以停止位結束,字符之間沒有固定的時間間隔要求。每一個字符的前面都有一位起始位(低電平),后面由8位數據位組成,如果開啟了校驗位,則最后一位數據位是校驗位,最后是停止位。停止位后面是不定長的空閑位,停止位和空閑位都規定為高電平。

7.2.串口藍牙接線原理圖

在數字電壓電流表上默認使用的串口是串口2,接口為CW_UART2_TX和CW_UART2_RX。關于串口和藍牙連接原理圖如圖9-2所示。

圖 9-2 串口藍牙接線

使用藍牙模塊KT6368將信息發送出去,只需要調用CW32的UART_2將信息傳輸至藍牙模塊即可。

7.3.串口驅動流程

串口驅動有以下幾個流程:配置CW32時鐘樹,配置UART_2串口,調用串口打印信息。通過查看上文的CW32時鐘樹可知,串口2掛載在高級外設時鐘 PCLK上,而此前的時鐘配置已將PCLK配置成了6MHz。具體的配置函數如下:

void Uart2_Init(void)
{        
    //外設時鐘使能
    RCC_AHBPeriphClk_Enable(RCC_AHB_PERIPH_GPIOA, ENABLE);      //使能串口要用到的GPIO時鐘
    RCC_APBPeriphClk_Enable1(RCC_APB1_PERIPH_UART2, ENABLE);    //使能串口時鐘
    
    GPIO_InitTypeDef GPIO_InitStructure;                        //GPIO初始化
    GPIO_InitStructure.IT = GPIO_IT_NONE;
    GPIO_InitStructure.Pins =  GPIO_PIN_7;
    GPIO_InitStructure.Mode = GPIO_MODE_INPUT_PULLUP;
    GPIO_InitStructure.Speed = GPIO_SPEED_HIGH;
    GPIO_Init(CW_GPIOA, &GPIO_InitStructure);
    PA07_AFx_UART2RXD();
        
    GPIO_InitStructure.IT = GPIO_IT_NONE;
    GPIO_InitStructure.Pins = GPIO_PIN_6;
    GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO_InitStructure.Speed = GPIO_SPEED_HIGH;
    GPIO_Init(CW_GPIOA, &GPIO_InitStructure);
    PA06_AFx_UART2TXD();
  
    USART_InitTypeDef USART_InitStructure;                       //串口初始化
    USART_InitStructure.USART_BaudRate = 115200;                 //設置波特率
    USART_InitStructure.USART_Over = USART_Over_16;              //串口采樣方式
    USART_InitStructure.USART_Source = USART_Source_PCLK;        //串口傳輸時鐘源采用PCLK
    USART_InitStructure.USART_UclkFreq = RCC_Sysctrl_GetPClkFreq();  //頻率為PCLK的頻率
    USART_InitStructure.USART_StartBit = USART_StartBit_FE;      //數據開始位
    USART_InitStructure.USART_StopBits = USART_StopBits_1;       //數據停止位
    USART_InitStructure.USART_Parity = USART_Parity_No ;         //無校驗
    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//無硬件流控
    USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;  //發送/接收使能
    USART_Init(CW_UART2, &USART_InitStructure);
}

在完成串口的配置后,還需要寫一個串口發送函數

void USART_SendString(UART_TypeDef *USARTx, char *String)
{
    while (*String != '?')     //?表示沒有數據
    {
        USART_SendData_8bit(USARTx, *String);   //發送一位8bit數據
        while (USART_GetFlagStatus(USARTx, USART_FLAG_TXE) == RESET);  //發送緩沖器未空則等待
        String++;              //發送一次完成后,準備發送下一位數據
    }
    while (USART_GetFlagStatus(USARTx, USART_FLAG_TXBUSY) == SET);     //發送串口狀態忙則等待  
}

由于定時器中斷為1ms,而串口發送占用的時間較長,所以我們1000ms使用藍牙發送一次信息,這里的寫法并未使用定時器。

char data_reg[24];    //定義數組,用于數據打印
uint32_t Ble_Time=0;  //1000ms計時變量
while(1)              //main函數里的while循環
    {
      if(GetTick() >= (Ble_Time + 1000))     //如果此時的時間大于上一次的1000ms
        {
          Ble_Time = GetTick();              //記錄此刻時間
          Volt_Cal();                        //電壓計算
          sprintf(data_reg,"volt=%urn",Cal_Buffer);  //打印數據
          USART_SendString(CW_UART2,data_reg);         //調用串口上傳數據給藍牙
        }
    }

注意 GetTick() 函數定義在頭文件 cw32f003_systick.h 中,而此函數要使用到系統時鐘中斷,所以還需要配置系統時鐘中斷:

InitTick(48000000);                // SYSTICK 的工作頻率為48MHz,每ms中斷一次

最終可以收到藍牙傳遞的數據:

圖9-3 藍牙發送數據

審核編輯 黃宇

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

    關注

    116

    文章

    6042

    瀏覽量

    173282
  • 串口
    +關注

    關注

    14

    文章

    1586

    瀏覽量

    78928
  • 電流表
    +關注

    關注

    2

    文章

    235

    瀏覽量

    26623
  • 數字電壓
    +關注

    關注

    0

    文章

    9

    瀏覽量

    9899
  • CW32
    +關注

    關注

    1

    文章

    242

    瀏覽量

    1115
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    淺談AppleWatch 電流表

    “ ?將你的 Apple Watch 變成電流表來測量直流電流。 ? ” 分享一個好玩的項目,將 Apple Watch 或任何帶有可觸及磁力計的手表變成電流表,以測量直流電流。項目是
    的頭像 發表于 04-25 18:17 ?220次閱讀
    淺談AppleWatch <b class='flag-5'>電流表</b>

    代碼+案例+生態:武漢芯源半導體CW32嵌入式開發實戰正式出版

    尊敬的各位電子工程師、嵌入式開發愛好者們:大家好!今天,我們懷著無比激動與自豪的心情,向大家宣布一個重大喜訊——武漢芯源半導體的單片機CW32正式出書啦!《基于ARMCortex-M0+的CW32
    的頭像 發表于 03-03 15:15 ?574次閱讀
    代碼+案例+生態:武漢芯源半導體<b class='flag-5'>CW32</b>嵌入式開發實戰正式出版

    代碼+案例+生態:武漢芯源半導體CW32嵌入式開發實戰正式出版

    尊敬的各位電子工程師、嵌入式開發愛好者們: 大家好!今天,我們懷著無比激動與自豪的心情,向大家宣布一個重大喜訊——武漢芯源半導體的單片機CW32正式出書啦!《基于ARM Cortex-M0+
    發表于 03-03 15:14

    壓電阻箱如何進行負載測試?

    的測試設備,包括高壓電源、負載電阻、電壓表電流表等。確保所有設備都經過校準,并且符合相關的安全標準。 連接測試設備:將高壓電源連接到高壓電
    發表于 01-16 12:34

    桿塔接地電阻輸電線路在線監測裝置 電壓電流表

    電流表
    jf_96960730
    發布于 :2024年11月27日 14:08:55

    武漢芯源半導體CW32芯片重慶地區線下技術交流會成功舉辦

    2024年10月19日,武漢芯源半導體授權CW32生態社區主辦的“CW32芯片-重慶地區技術交流會”在重慶市科技工作者眾創之家成功舉辦。此次交流會匯聚重慶地區的嵌入式開發工程師和電子信息類企業代表,共同探討CW32芯片在儀器儀表
    的頭像 發表于 10-24 10:55 ?917次閱讀

    電流表與互感器怎么接線

    電流表與互感器的接法是一個在電氣工程中常見且重要的操作,它涉及到電流的測量、保護以及設備的正常運行。以下將詳細闡述電流表與互感器的接法,包括基本原理、接線步驟、注意事項以及實際應用中的不同場景。
    的頭像 發表于 09-09 16:53 ?2830次閱讀

    鉗形電流表使用注意事項有哪些

    鉗形電流表是一種用于測量導線中電流大小的儀器,它還能夠檢測用電設備各相的耗電情況。這種儀表由電流表電流互感器兩部分組成,設計獨特,能夠在不斷開電路的情況下測量
    的頭像 發表于 08-16 11:32 ?1700次閱讀

    變頻器怎么外接電流表及轉速

    需要外接電流表和轉速來測量電機的電流和轉速。 電流表的作用 電流表是一種測量電路中電流大小的儀
    的頭像 發表于 07-19 11:17 ?4159次閱讀

    電流表內部短路和被短路的區別

    電流表是一種測量電流的儀器,它在電路中起到非常重要的作用。然而,電流表在使用過程中可能會遇到一些問題,其中最常見的問題就是電流表內部短路和被短路。這兩種問題雖然都是
    的頭像 發表于 07-15 14:51 ?7427次閱讀

    電流表電壓表無示數的原因

    引言 電流表電壓表是電氣工程中不可或缺的測量工具。它們能夠測量電路中的電流電壓,為電路設計、調試和維護提供重要數據。然而,在實際使用過程中,有時會出現
    的頭像 發表于 07-13 10:50 ?8885次閱讀

    鉗形電流表使用方法及注意事項

    鉗形電流表是一種常用的電氣測量工具,用于測量交流電流。它具有操作簡便、測量準確、安全性高等特點,廣泛應用于電力系統、工業生產、建筑安裝等領域。 一、鉗形電流表的工作原理 鉗形電流表的工
    的頭像 發表于 07-12 14:57 ?2834次閱讀

    變壓器充電器電流表怎么接

    變壓器充電器電流表接線方法如下: 首先,確保變壓器充電器和電流表都已關閉電源。 確定變壓器充電器的輸入和輸出端。通常,輸入端標有“L”或“AC”,輸出端標有“+”和“-”。 將電流表的兩個接線端分別
    的頭像 發表于 07-05 10:28 ?1906次閱讀

    武漢芯源半導體與長春理工大學“CW32嵌入式創新實驗室”揭牌

    2024年6月20日上午,在長春理工大學順利舉辦了“CW32嵌入式創新實驗室”揭牌儀式!武漢芯源半導體與長春理工大學電子信息工程學院的院系領導、師生代表齊聚一堂,共同見證了這一重要時刻,并著重探討了CW32大學計劃在長春理工大學
    的頭像 發表于 06-25 14:06 ?965次閱讀

    基于CW32F003E4P7的數字電壓電流表產品方案

    產品實物: 一、產品概述 數字電壓電流表,又稱為數顯電流電壓表,是以數字形式顯示,能夠同時檢測電流電壓
    的頭像 發表于 06-25 11:55 ?1364次閱讀
    基于<b class='flag-5'>CW</b>32F003E4P7的<b class='flag-5'>數字</b><b class='flag-5'>電壓電流表</b>產品方案
    主站蜘蛛池模板: 免费的色网站 | 国产牛仔裤系列在线观看 | 国产三级日本三级韩国三级在线观看 | 国产农村三片免费网站 | 特大一级aaaaa毛片 | 欧美成人午夜影院 | 轻点灬大ji巴太粗太长了啊h | 超h 高h 污肉1v1御书屋 | 国产在线97色永久免费视频 | 国产色视频网站免费观看 | 曰曰摸天天摸人人看久久久 | 亚洲毛片免费在线观看 | 亚洲欧美日韩在线精品2021 | 亚洲第一网站快活影院 | 特黄特级毛片免费视 | 亚洲乱码一区二区三区在线观看 | 国内精品久久影视 | 伊人888| 国产成人亚洲综合a∨婷婷 国产成人一区二区三中文 国产成人一区二区在线不卡 | 1v1双性受整夜不拔bl | 天堂在线资源最新版 | 狠狠干激情 | 亚洲人成人网毛片在线播放 | 天天视频国产精品 | 免费网站直接看 | 欧美三级一级片 | 国产一区二区在线视频播放 | 五月激情久久 | 中文字幕日本一区波多野不卡 | 有码视频在线观看 | 护士一级aaaaaa毛片 | 久久综合婷婷 | 狠狠狠色丁香婷婷综合久久88 | 丁香婷五月 | 成人久久网 | 日本黄色大片网站 | 免费看大黄 | sese亚洲| 奇米影色777四色在线首页 | 亚洲激情婷婷 | 在厨房乱子伦在线观看 |