在线观看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 藍牙發送數據

審核編輯 黃宇

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

    關注

    114

    文章

    5869

    瀏覽量

    171228
  • 串口
    +關注

    關注

    14

    文章

    1558

    瀏覽量

    77062
  • 電流表
    +關注

    關注

    2

    文章

    232

    瀏覽量

    26269
  • 數字電壓
    +關注

    關注

    0

    文章

    9

    瀏覽量

    9833
  • CW32
    +關注

    關注

    1

    文章

    218

    瀏覽量

    737
收藏 人收藏

    評論

    相關推薦

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

    產品實物: 一、產品概述 數字電壓電流表,又稱為數顯電流電壓表,是以數字形式顯示,能夠同時檢測電流電壓
    的頭像 發表于 06-25 11:55 ?1019次閱讀
    基于<b class='flag-5'>CW</b>32F003E4P7的<b class='flag-5'>數字</b><b class='flag-5'>電壓電流表</b>產品方案

    CW32數字電壓電流表軟件進階教程-3.電壓電流標定

    標定是通過測量標準器的偏差來補償儀器系統誤差,從而改善儀器或系統準確度、精度的操作。為了提高電壓電流表在測量時的測量精度和準確度,需要對電壓電流進行標定校準。 常見的標定原理如下:假設一個采樣系統
    的頭像 發表于 05-31 16:20 ?847次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>數字</b><b class='flag-5'>電壓電流表</b><b class='flag-5'>軟件</b>進階教程-3.<b class='flag-5'>電壓電流</b>標定

    CW32數字電壓電流表軟件進階教程-2.電壓電流值做均值濾波

    實驗運行7.1章節例程時 [CW32數字電壓電流表軟件進階教程-1.電壓電流同時顯示] ,會發
    的頭像 發表于 05-31 15:57 ?575次閱讀

    CW32數字電壓電流表軟件進階教程-1.電壓電流同時顯示

    基于[CW32數字電壓電流表軟件教程-實驗七:基本數據處理算法(均值濾波)],可以對電壓電流進行
    的頭像 發表于 05-31 15:50 ?907次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>數字</b><b class='flag-5'>電壓電流表</b><b class='flag-5'>軟件</b>進階教程-1.<b class='flag-5'>電壓電流</b>同時顯示

    CW32數字電壓電流表軟件教程-實驗七:基本數據處理算法(均值濾波)

    有像素的均值,再把該均值賦予當前像素點(x,y),作為處理后圖像在該點上的灰度g(x,y),即g(x,y)=∑f(x,y)/m,m為該模板中包含當前像素在內的像素總個數。這本是數字圖像處理的一種方法,但也可以用在我們數字電壓電流表
    的頭像 發表于 05-31 15:47 ?442次閱讀

    CW32數字電壓電流表軟件教程-實驗五:ADC采樣及顯示

    數字信號。由于數字信號本身不具有實際意義,僅僅表示一個相對大小。故任何一個模數轉換器都需要一個參考模擬量作為轉換的標準,比較常見的參考標準為最大的可轉換信號大小。而輸出的數字量則表示輸入信號相對于參考信號的大小。 6.1.2.
    的頭像 發表于 05-31 15:28 ?645次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>數字</b><b class='flag-5'>電壓電流表</b><b class='flag-5'>軟件教程</b>-<b class='flag-5'>實驗</b>五:ADC采樣及顯示

    CW32數字電壓電流表軟件教程-實驗四:數碼管動態顯示

    5.1.數碼管動態顯示原理 所謂動態掃描顯示即輪流向各位數碼管送出段碼和位碼,利用發光管的余輝和人眼視覺暫留作用,使人眼的感覺好像各位數碼管同時都在顯示。明確了原理,我們要使電壓電流表的三個位同時
    的頭像 發表于 05-31 15:23 ?604次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>數字</b><b class='flag-5'>電壓電流表</b><b class='flag-5'>軟件教程</b>-<b class='flag-5'>實驗</b>四:數碼管動態顯示

    CW32數字電壓電流表軟件教程-實驗三:數碼管顯示數字

    原理是由多個發光的二極管共陰極或者共陽極組成的成“8”字形的顯示器件。數碼管通過不同的組合可用來顯示數字0~9、字符A ~ F及小數點“.”。數碼管的工作原理是通過控制外部的I/O端口進行驅動數碼管的各個段
    的頭像 發表于 05-31 15:21 ?1032次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>數字</b><b class='flag-5'>電壓電流表</b><b class='flag-5'>軟件教程</b>-<b class='flag-5'>實驗</b>三:數碼管顯示<b class='flag-5'>數字</b>

    CW32數字電壓電流表軟件教程-實驗二:按鍵檢測

    3.1.獨立按鍵基礎知識 3.1.1.獨立按鍵結構組成 獨立按鍵實際上是一個非自鎖的輕觸開關,有左右兩個觸點,當按下時左右兩個觸點閉合,當松開時左右兩個觸點斷開。 3.1.2.獨立按鍵控制原理 想要使用外部的按鍵控制單片機有兩種比較常見的方法:IO掃描和外部中斷。對于IO掃描的方式而言,需要單片機以比較高的頻率去不間斷地判斷IO口的輸入電平,隨后根據IO電平來執行后續的邏輯。外部中斷的方式會在章節十二中進行詳細介紹,本章著重介紹IO掃描的
    的頭像 發表于 05-31 15:16 ?938次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>數字</b><b class='flag-5'>電壓電流表</b><b class='flag-5'>軟件教程</b>-<b class='flag-5'>實驗</b>二:按鍵檢測

    CW32數字電壓電流表軟件教程-實驗一:LED原理與驅動

    2.1.LED燈基礎知識 2.1.1.LED燈結構組成 LED燈,也稱發光二極管,是一種能夠將電能轉化為可見光的固態的半導體器件,它可以直接把電轉化為光。LED的內部是一個半導體的晶片,晶片的一端附在一個支架上,一端是負極,另一端連接電源的正極,整個晶片環-氧樹脂封裝起來。常見的LED燈如圖2-1所示。 圖2-1 常見LED燈 2.1.2.LED燈發光原理 半導體晶片由兩部分組成,一部分是P型半導體,另一端是N型半導體。這兩種半導體連接起來的時候,它們之間就形成了一個
    的頭像 發表于 05-31 15:09 ?429次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>數字</b><b class='flag-5'>電壓電流表</b><b class='flag-5'>軟件教程</b>-<b class='flag-5'>實驗</b>一:LED原理與驅動

    CW32數字電壓電流表軟件教程):串口藍牙發送

    串行接口簡稱串口,也稱串行通信接口或串行通信接口(通常指COM接口),是采用串行通信方式的擴展接口。
    的頭像 發表于 05-21 10:36 ?636次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>數字</b><b class='flag-5'>電壓電流表</b><b class='flag-5'>軟件教程</b>(<b class='flag-5'>六</b>):<b class='flag-5'>串口</b><b class='flag-5'>藍牙</b><b class='flag-5'>發送</b>

    CW32數字電壓電流表軟件教程(五):ADC采樣及顯示

    模擬數字轉換器即A/D轉換器,或簡稱ADC,通常是指一個將模擬信號轉變為數字信號的電子元件。通
    的頭像 發表于 05-21 10:34 ?1259次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>數字</b><b class='flag-5'>電壓電流表</b><b class='flag-5'>軟件教程</b>(五):ADC采樣及顯示

    CW32數字電壓電流表軟件教程(三):數碼管顯示數字

    數碼管的顯示原理是由多個發光的二極管共陰極或者共陽極組成的成“8”字形的顯示器件。數碼管通過不同的組合可用來顯示數字0~9、字符A ~ F及小數點“.”。
    的頭像 發表于 05-14 14:20 ?3.1w次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>數字</b><b class='flag-5'>電壓電流表</b><b class='flag-5'>軟件教程</b>(三):數碼管顯示<b class='flag-5'>數字</b>

    CW32數字電壓電流表軟件教程(一):LED原理與驅動基礎知識詳解

    LED 驅動指的是通過穩定的電源為 LED 提供合適的電流電壓,使其正常工作點亮。LED 驅動方式主要有恒流和恒壓兩種。
    的頭像 發表于 05-06 15:33 ?1825次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>數字</b><b class='flag-5'>電壓電流表</b><b class='flag-5'>軟件教程</b>(一):LED原理與驅動基礎知識詳解

    CW32數字電壓電流表-產品硬件設計要點

    電壓跟隨器的功能簡化外圍電路 2、使用了和市面電壓電流表的同款接口(XH2.54+CH3.96),方便通用 3、最大40V的表頭供電電壓,覆蓋大部分常用電壓范圍 4、板載低成本
    的頭像 發表于 04-25 15:20 ?2050次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>數字</b><b class='flag-5'>電壓電流表</b>-產品硬件設計要點
    主站蜘蛛池模板: 欲色天天 | 日本在线视频不卡 | 天天爱天天射 | 日韩亚洲欧美日本精品va | 成人免费淫片95视频观看网站 | 黄色高清视频网站 | 一级待一黄aaa大片在线还看 | 久久99精品久久久久久久野外 | 91牛牛 | 亚洲夂夂婷婷色拍ww47 | 亚洲免费黄色网址 | 精品视频日本 | 国产女人又爽又大 | 亚洲光棍天堂 | 久久人人做人人玩人精品 | 成人自拍视频 | 亚洲啊v在线 | 色秀视频免费高清网站 | 午夜免费免费啪视频观看 | 美女视频很黄很a免费国产 美女视频很黄很暴黄是免费的 | 曰本a | 一级a毛片免费观看 | 免费人成黄页在线观看日本 | 国产福利萌白酱喷水视频铁牛 | 久操视频在线播放 | 欧美无遮挡一区二区三区 | 国产亚洲精品aa在线观看 | 色综合久久久久久久久久久 | 2022年国产精品久久久久 | 夜夜精品视频 | 黄视频网站免费观看 | 在线视频影院 | 萝l在线精品社区资源 | qvod高清在线成人观看 | 玖玖爱这里只有精品 | 国产一级特黄aa级特黄裸毛片 | 中国一级特黄剌激爽毛片 | 丁香五月缴情在线 | 天天做天天爱夜夜爽女人爽宅 | 天堂影院在线 | 一区二区三区精品视频 |