chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

CW32數(shù)字電壓電流表軟件教程-實(shí)驗(yàn)六:串口藍(lán)牙發(fā)送

CW32生態(tài)社區(qū) ? 來源:CW32生態(tài)社區(qū) ? 作者:CW32生態(tài)社區(qū) ? 2024-05-31 15:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

7.1.串口基礎(chǔ)知識

7.1.1.串口介紹

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

7.1.2.串口通信參數(shù)介紹

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

關(guān)于更為詳細(xì)的介紹請搜索百度。

7.1.3.串口工作模式

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

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

7.1.4.串口通信協(xié)議

串口在進(jìn)行通信的時候會按照數(shù)據(jù)包的形式進(jìn)行發(fā)送,幀格式如圖1-4-1所示。

圖9-1 串口通信協(xié)議

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

7.2.串口藍(lán)牙接線原理圖

在數(shù)字電壓電流表上默認(rèn)使用的串口是串口2,接口為CW_UART2_TX和CW_UART2_RX。關(guān)于串口和藍(lán)牙連接原理圖如圖9-2所示。

圖 9-2 串口藍(lán)牙接線

使用藍(lán)牙模塊KT6368將信息發(fā)送出去,只需要調(diào)用CW32的UART_2將信息傳輸至藍(lán)牙模塊即可。

7.3.串口驅(qū)動流程

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

void Uart2_Init(void)
{        
    //外設(shè)時鐘使能
    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;                 //設(shè)置波特率
    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;      //數(shù)據(jù)開始位
    USART_InitStructure.USART_StopBits = USART_StopBits_1;       //數(shù)據(jù)停止位
    USART_InitStructure.USART_Parity = USART_Parity_No ;         //無校驗(yàn)
    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//無硬件流控
    USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;  //發(fā)送/接收使能
    USART_Init(CW_UART2, &USART_InitStructure);
}

在完成串口的配置后,還需要寫一個串口發(fā)送函數(shù)

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

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

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

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

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

最終可以收到藍(lán)牙傳遞的數(shù)據(jù):

圖9-3 藍(lán)牙發(fā)送數(shù)據(jù)

審核編輯 黃宇

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

    關(guān)注

    119

    文章

    6218

    瀏覽量

    177464
  • 串口
    +關(guān)注

    關(guān)注

    15

    文章

    1605

    瀏覽量

    81873
  • 電流表
    +關(guān)注

    關(guān)注

    2

    文章

    239

    瀏覽量

    27297
  • 數(shù)字電壓
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    9966
  • CW32
    +關(guān)注

    關(guān)注

    1

    文章

    281

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    cw32 systick怎么用?

    cw32 systick怎么用
    發(fā)表于 12-01 08:10

    CW32嵌入式軟件開發(fā)的必備知識

    嵌入式軟件開發(fā)作為計(jì)算機(jī)科學(xué)和電子工程的交叉領(lǐng)域,要求開發(fā)人員具備一系列的專業(yè)知識和技能。 而基于CW32的嵌入式軟件開發(fā)必備知識包括以下部分: 1 、編程語言 熟練掌握C(C++)語言,這是
    發(fā)表于 11-28 07:48

    如何在CW32 MCU上優(yōu)化I2C通信

    在嵌入式系統(tǒng)中,CW32 MCU的I2C接口通常用于與各種外設(shè)(如EEPROM、傳感器等)進(jìn)行數(shù)據(jù)通信。為了實(shí)現(xiàn)高效、穩(wěn)定的I2C通信,必須考慮頻率調(diào)節(jié)和數(shù)據(jù)完整性的問題。本文將聚焦于如何在CW32
    發(fā)表于 11-27 06:25

    deepseek來分析CW32單片機(jī)的特點(diǎn)

    國產(chǎn)化優(yōu)勢 作為國產(chǎn)單片機(jī),CW32系列在供應(yīng)鏈安全、技術(shù)支持、成本控制等方面具有優(yōu)勢。 提供本地化的技術(shù)支持和文檔資源。 典型型號示例 CW32F030:基于Cortex-M0,適合成本敏感型
    發(fā)表于 11-26 06:33

    使用J-Flash來編程CW32 MCU

    1.安裝J-Flash: 從SEGGER官方網(wǎng)站下載最新版本的J-Flash工具。 按照安裝向?qū)У闹甘就瓿砂惭b過程。 2.連接硬件: 將CW32 MCU通過調(diào)試器(如J-LINK)連接到你的計(jì)算機(jī)
    發(fā)表于 11-25 07:00

    【活動評測】基于CW32的wegui實(shí)驗(yàn)+代碼

    簡介 最近參加了cw32生態(tài)社區(qū)的體驗(yàn)活動,CW32L012C8T6評估板是一款非常典型的、用于展示和評估國產(chǎn)低功耗MCU的開發(fā)板。它的核心價值在于讓開發(fā)者能夠以極低的成本,接觸到武漢芯源半導(dǎo)體
    的頭像 發(fā)表于 11-19 16:37 ?429次閱讀
    【活動評測】基于<b class='flag-5'>CW32</b>的wegui<b class='flag-5'>實(shí)驗(yàn)</b>+代碼

    CW32 MCU用什么IDE開發(fā)?

    推薦使用IAR Embedded Workbench for ARM、Keil μVision for ARM等IDE開發(fā)CW32 MCU應(yīng)用,其中新版本IAR EWARM直接支持CW32 MCU,Keil MDK-ARM則需要安裝CW
    發(fā)表于 11-12 07:52

    CW32 MCU有哪些系列?

    目前CW32 MCU有通用高性能MCU、安全低功耗MCU、無線射頻MCU等3個系列。其中射頻MCU集成了無線收發(fā)器,主要包括CW32R031(2.4GHz BLE-Lite)系列和CW32W031(Sub-1G)系列。
    發(fā)表于 11-12 07:34

    如何使用新版本J-Flash編程CW32 MCU

    :AppData是隱藏目錄,需打開顯示。 3、將CW32 MCU器件支持包JlinkDevices_WHXY.rar解壓到新建的JlinkDevices子目錄即可。 4、運(yùn)行JFlash.exe,通過Jlink連接CW32 MCU測試板,進(jìn)行編程測試ok。
    發(fā)表于 11-12 07:24

    CW32 MCU的工作電壓、工作溫度是多少?

    CW32通用型MCU工作電壓是1.65V~5.5V,射頻MCU工作電壓則是1.8V/2.2V~3.6V;通用型CW32F系列MCU,比如:CW
    發(fā)表于 11-12 06:49

    CW32 MCU用什么仿真器開發(fā)?

    理論上各主流IDE枚舉的、支持ARM Cortex內(nèi)核的所有硬件仿真器,比如:J-LINK,ULINK,DAP,ST-Link等,都可以仿真、下載CW32 MCU的應(yīng)用代碼。如果想實(shí)現(xiàn)量產(chǎn)或者離線下載應(yīng)用代碼,則必須配套支持CW32 MCU的PC端
    發(fā)表于 11-12 06:01

    CW32】uart_obj_fw 輕量級串口框架

    以下文章內(nèi)容由CW32生態(tài)社區(qū)用戶提供: https://gitee.com/teletubbies-die-of-murder/lightweight-serial-framework 介紹
    的頭像 發(fā)表于 09-29 18:02 ?7397次閱讀

    如何使用新版本J-Flash編程CW32 MCU?

    CW32 MCU器件支持包JlinkDevices_WHXY.rar解壓到新建的JlinkDevices子目錄即可。 4、運(yùn)行JFlash.exe,通過Jlink連接CW32 MCU測試板,進(jìn)行編程測試
    的頭像 發(fā)表于 07-01 15:05 ?450次閱讀
    如何使用新版本J-Flash編程<b class='flag-5'>CW32</b> MCU?

    代碼+案例+生態(tài):武漢芯源半導(dǎo)體CW32嵌入式開發(fā)實(shí)戰(zhàn)正式出版

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

    代碼+案例+生態(tài):武漢芯源半導(dǎo)體CW32嵌入式開發(fā)實(shí)戰(zhàn)正式出版

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