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

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

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

CW32模塊使用 HC05藍牙模塊

CW32生態(tài)社區(qū) ? 來源:CW32生態(tài)社區(qū) ? 作者:CW32生態(tài)社區(qū) ? 2025-01-23 12:57 ? 次閱讀

HC-05 藍牙串口通信模塊,是基于 Bluetooth Specification V2.0 帶 EDR 藍牙協(xié)議的數(shù)傳模塊。無線工作頻段為 2.4GHz ISM,調(diào)制方式是 GFSK。模塊最大發(fā)射功率為 4dBm,接收靈敏度-85dBm,板載 PCB 天線,可以實現(xiàn) 10 米距離通信。模塊采用郵票孔封裝方式,模塊大小 27mm×13mm×2mm,方便客戶嵌入應(yīng)用系統(tǒng)之內(nèi),自帶 LED 燈,可直觀判斷藍牙的連接狀態(tài)。模塊采用 CSR 的 BC417 芯片,支持 AT 指令,用戶可根據(jù)需要更改角色(主、從模式)以及串口波特率、設(shè)備名稱等參數(shù),使用靈活。

一、模塊來源

模塊實物展示:

wKgZPGeRzE6ALCgjAAAlKCxocWM37.webp

二、規(guī)格參數(shù)

工作電壓:3.6-6V

供電電流:40mA

發(fā)射功率:4dBm(最大)

參考距離:10米

控制方式:串口

管腳數(shù)量:6 Pin(2.54mm間距排針

以上信息見廠家資料文件

三、移植過程

我們的目標是將例程移植至CW32F030C8T6開發(fā)板上【實現(xiàn)手機通過藍牙傳輸數(shù)據(jù)的功能】。首先要獲取資料,查看數(shù)據(jù)手冊應(yīng)如何實現(xiàn)讀取數(shù)據(jù),再移植至我們的工程。

3.1查看資料

wKgZO2eRzE-AGgzpAAA9TLq_pT459.webp

使用HC05藍牙模塊之前,需要知道藍牙模塊的波特率,這樣我們才能控制它。將藍牙模塊與USB轉(zhuǎn)TTL串口調(diào)試模塊進行連接,在插入電腦之前,按住模塊上的按鍵再通電,插入電腦通電后此時模塊上的燈是慢閃,HC-05進入AT命令模式,默認波特率是38400;此模式我們叫原始模式。原始模式下一直處于AT命令模式狀態(tài)。

進入AT命令模式之后,最主要的是設(shè)置模式為從機控制,即等待手機去連接我們藍牙模塊的藍牙,主要由手機控制。發(fā)送指令時需要注意,每一條指令都要加上rn或者勾選發(fā)送新行,不然是識別不到命令的。

wKgZPGeRzE-AMLV6AABO1N1pUao17.webp

USB轉(zhuǎn)TTL串口調(diào)試模塊

wKgZO2eRzE-ARITAAACInszoX5k31.webp

AT指令的發(fā)送

關(guān)鍵指令說明

wKgZPGeRzE-AIba7AACm5HwTFos06.webp

連接手機成功之后,模塊上的燈進入慢閃狀態(tài),說明已經(jīng)連接成功。

在手機端打開藍牙通信軟件,測試能否與電腦互傳數(shù)據(jù)。

wKgZO2eRzFCAH6SaAAAQWJ9ewrg74.webp

3.2引腳選擇

想要使用uart串口,需要確定使用的引腳是否有串口外設(shè)功能,可以通過用戶手冊進行查看。在用戶手冊的第146頁。

這里選擇使用PA2和PA3的附加串口2功能。

wKgZPGeRzFCAKKXtAAChJs2IQ-k03.webp

有串口1功能的引腳

wKgZPGeRzFaABbw7AACQgFEFsuY74.webp

模塊接線圖

注意

STATE引腳為連接成功指示引腳, 連接手機成功時輸出高電平,通過將PA1設(shè)置為輸入模式,讀取STATE引腳的電平狀態(tài),當(dāng)為高電平時,說明有手機連接該藍牙模塊成功;當(dāng)為低電平時,說明沒有手機連接。

3.3移植至工程

移植步驟中的導(dǎo)入.c和.h文件與【CW32模塊使用】DHT11溫濕度傳感器相同,只是將.c和.h文件更改為bsp_bluetooth.c與bsp_bluetooth.h。這里不再過多講述,移植完成后面修改相關(guān)代碼。

在文件bsp_bluetooth.c中,編寫如下代碼。

/*
 * Change Logs:
 * Date           Author       Notes
 * 2024-06-21     LCKFB-LP    first version
 */

#include "bsp_bluetooth.h"
#include "stdio.h"

unsigned char Bluetooth_ConnectFlag = 0; //藍牙連接狀態(tài) = 0沒有手機連接   = 1有手機連接
unsigned char BLERX_BUFF[BLERX_LEN_MAX];
unsigned char BLERX_FLAG = 0;
unsigned char BLERX_LEN = 0;

/************************************************************
 * 函數(shù)名稱:Bluetooth_GPIO_Init
 * 函數(shù)說明:藍牙RXTX引腳初始化
 * 型    參:bund=串口波特率
 * 返 回 值:無
 * 備    注:無
*************************************************************/
void Bluetooth_GPIO_Init(unsigned int bund)
{
    GPIO_InitTypeDef GPIO_InitStruct; // GPIO初始化結(jié)構(gòu)體

    BSP_BLUETOOTH_GPIO_RCC_ENABLE();        // 使能GPIO時鐘
    BSP_BLUETOOTH_UART_RCC_ENABLE();        // 使能UART時鐘

    GPIO_InitStruct.Pins = BSP_BLUETOOTH_TX_PIN;         // GPIO引腳
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;          // 推挽輸出
    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;             // 輸出速度高
    GPIO_Init(BSP_BLUETOOTH_GPIO_PORT, &GPIO_InitStruct);// 初始化

    GPIO_InitStruct.Pins = BSP_BLUETOOTH_RX_PIN;         // GPIO引腳
    GPIO_InitStruct.Mode = GPIO_MODE_INPUT_PULLUP;       // 上拉輸入
    GPIO_Init(BSP_BLUETOOTH_GPIO_PORT, &GPIO_InitStruct);// 初始化

    BSP_BLUETOOTH_AF_UART_TX(); // UART_TX復(fù)用
    BSP_BLUETOOTH_AF_UART_RX(); // UART_RX復(fù)用

    // 配置UART
    USART_InitTypeDef USART_InitStructure;

    USART_InitStructure.USART_BaudRate = bund;                                     // 波特率
    USART_InitStructure.USART_Over = USART_Over_16;                     // 配置USART的過采樣率。
    USART_InitStructure.USART_Source = USART_Source_PCLK;               // 設(shè)置時鐘源
    USART_InitStructure.USART_UclkFreq = 64000000;                      //設(shè)置USART時鐘頻率(和主頻一致即可)
    USART_InitStructure.USART_StartBit = USART_StartBit_FE;             //RXD下降沿開始
    USART_InitStructure.USART_StopBits = USART_StopBits_1;              // 停止位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;     // 收發(fā)模式
    USART_Init(BSP_BLUETOOTH_UART, &USART_InitStructure);               // 初始化串口2

    // 優(yōu)先級,無優(yōu)先級分組
    NVIC_SetPriority(BSP_BLUETOOTH_IRQ, 0);

    // UARTx中斷使能
    NVIC_EnableIRQ(BSP_BLUETOOTH_IRQ);

    // 使能UARTx RC中斷
    USART_ITConfig(BSP_BLUETOOTH_UART, USART_IT_RC, ENABLE);


}

/******************************************************************
 * 函 數(shù) 名 稱:BLE_Send_Bit
 * 函 數(shù) 說 明:向藍牙發(fā)送單個字符
 * 函 數(shù) 形 參:ch=ASCII字符
 * 函 數(shù) 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void BLE_Send_Bit(unsigned char ch)
{
    // 發(fā)送一個字節(jié)
    USART_SendData(BSP_BLUETOOTH_UART, (uint8_t)ch);

    // 等待發(fā)送完成
    while( RESET == USART_GetFlagStatus(BSP_BLUETOOTH_UART, USART_FLAG_TXE) ){}
}

/******************************************************************
 * 函 數(shù) 名 稱:BLE_send_String
 * 函 數(shù) 說 明:向藍牙發(fā)送字符串
 * 函 數(shù) 形 參:str=發(fā)送的字符串
 * 函 數(shù) 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void BLE_send_String(unsigned char *str)
{
        while( str && *str ) // 地址為空或者值為空跳出
        {
                BLE_Send_Bit(*str++);
        }
}

/******************************************************************
 * 函 數(shù) 名 稱:Clear_BLERX_BUFF
 * 函 數(shù) 說 明:清除串口接收的數(shù)據(jù)
 * 函 數(shù) 形 參:無
 * 函 數(shù) 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void Clear_BLERX_BUFF(void)
{
        BLERX_LEN = 0;
        BLERX_FLAG = 0;
}

/******************************************************************
 * 函 數(shù) 名 稱:Bluetooth_Link_Gpio_Init
 * 函 數(shù) 說 明:藍牙連接成功指示引腳state初始化
 * 函 數(shù) 形 參:無
 * 函 數(shù) 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void Bluetooth_Link_Gpio_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStruct;

    GPIO_InitStruct.Pins = BLUETOOTH_LINK_GPIO;            // GPIO引腳
    GPIO_InitStruct.Mode = GPIO_MODE_INPUT_PULLUP;               // 上拉輸入
    GPIO_Init(BSP_BLUETOOTH_GPIO_PORT, &GPIO_InitStruct);  // 初始化
}

/******************************************************************
 * 函 數(shù) 名 稱:Bluetooth_Init
 * 函 數(shù) 說 明:藍牙初始化
 * 函 數(shù) 形 參:無
 * 函 數(shù) 返 回:無
 * 作       者:LC
 * 備       注:默認波特率為9600
******************************************************************/
void Bluetooth_Init(void)
{
    Bluetooth_GPIO_Init(9600);
    Bluetooth_Link_Gpio_Init();
    #if        DEBUG
         //在調(diào)試時,通過AT命令已經(jīng)設(shè)置好模式
        printf("Bluetooth_Init succeed!rn");

    #endif
}

/******************************************************************
 * 函 數(shù) 名 稱:Get_Bluetooth_ConnectFlag
 * 函 數(shù) 說 明:獲取手機連接狀態(tài)
 * 函 數(shù) 形 參:無
 * 函 數(shù) 返 回:返回1=已連接                返回0=未連接
 * 作       者:LC
 * 備       注:使用該函數(shù)前,必須先調(diào)用 Bluetooth_Mode 函數(shù)
******************************************************************/
unsigned char Get_Bluetooth_ConnectFlag(void)
{
        return Bluetooth_ConnectFlag;
}

/******************************************************************
 * 函 數(shù) 名 稱:Bluetooth_Mode
 * 函 數(shù) 說 明:判斷藍牙模塊的連接狀態(tài)
 * 函 數(shù) 形 參:無
 * 函 數(shù) 返 回:無
 * 作       者:LC
 * 備       注:未連接時STATE低電平   連接成功時STATE高電平
******************************************************************/
void Bluetooth_Mode(void)
{
        static char flag = 0;
        //如果沒有手機連接
        if( DISCONNECT == BLUETOOTH_LINK )
        {
        //連接狀態(tài)為未連接
                Bluetooth_ConnectFlag = 0;
        //如果之前是連接狀態(tài)
                if( flag == 1 )
                {
                                flag = 0;//修改狀態(tài)
                }
                return;
        }
        //如果手機已經(jīng)連接
        if( CONNECT == BLUETOOTH_LINK )
        {
                Bluetooth_ConnectFlag = 1;
                                                //如果之前是斷開狀態(tài)
                if( flag == 0 )
                {
                                flag = 1;//修改狀態(tài)
                }
        }
}

/******************************************************************
 * 函 數(shù) 名 稱:Receive_Bluetooth_Data
 * 函 數(shù) 說 明:接收藍牙數(shù)據(jù)
 * 函 數(shù) 形 參:無
 * 函 數(shù) 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void Receive_Bluetooth_Data(void)
{
        if( BLERX_FLAG == 1 )//接收到藍牙數(shù)據(jù)
        {
                //顯示藍牙發(fā)送過來的數(shù)據(jù)
                printf("data = %srn",BLERX_BUFF);

                Clear_BLERX_BUFF();//清除接收緩存
        }

}

/******************************************************************
 * 函 數(shù) 名 稱:Send_Bluetooth_Data
 * 函 數(shù) 說 明:向藍牙模塊發(fā)送數(shù)據(jù)
 * 函 數(shù) 形 參:dat=要發(fā)送的字符串
 * 函 數(shù) 返 回:無
 * 作       者:LC
 * 備       注:(如果手機連接了藍牙,就是向手機發(fā)送數(shù)據(jù))
******************************************************************/
void Send_Bluetooth_Data(char *dat)
{
    //獲取藍牙狀態(tài)
    Bluetooth_Mode();
    //如果手機已經(jīng)連接
    if( Bluetooth_ConnectFlag == 1 )
    {
        //發(fā)送數(shù)據(jù)
        BLE_send_String((unsigned char*)dat);
    }
}

/******************************************************************
 * 函 數(shù) 名 稱:BLE_USART_IRQHandler
 * 函 數(shù) 說 明:連接藍牙的串口中斷服務(wù)函數(shù)
 * 函 數(shù) 形 參:無
 * 函 數(shù) 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void BSP_BLUETOOTH_IRQHandler(void)
{
    if(USART_GetITStatus(BSP_BLUETOOTH_UART, USART_IT_RC) == SET)
    {
        // 檢查是否還有空間接收新數(shù)據(jù)
        if (BLERX_LEN < BLERX_LEN_MAX - 1) // 保留一個字符的空間用于''
        {
            BLERX_BUFF[BLERX_LEN++] = USART_ReceiveData(BSP_BLUETOOTH_UART); // 接收數(shù)據(jù)
        }
        else
        {
            USART_ReceiveData(BSP_BLUETOOTH_UART); // 讀取DR寄存器以清除中斷標志位,但不保存數(shù)據(jù)
        }

        BLERX_BUFF[BLERX_LEN] = '';  // 確保字符串正確結(jié)束
        BLERX_FLAG = 1;  // 設(shè)置接收完成標志位

        USART_ClearITPendingBit(BSP_BLUETOOTH_UART, USART_IT_RC); // 清除中斷標志位
    }
}

在文件bsp_bluetooth.h中,編寫如下代碼。

/*
 * Change Logs:
 * Date           Author       Notes
 * 2024-06-21     LCKFB-LP    first version
 */

#ifndef _BSP_BLUETOOTH_H_
#define _BSP_BLUETOOTH_H_

#include "board.h"
#include "string.h"

//是否開啟串口0調(diào)試     1開始  0關(guān)閉
#define     DEBUG   1


#define  BLERX_LEN_MAX  200

#define BSP_BLUETOOTH_GPIO_RCC_ENABLE()  __RCC_GPIOA_CLK_ENABLE()   // 串口TX的端口時鐘
#define BSP_BLUETOOTH_UART_RCC_ENABLE()  __RCC_UART2_CLK_ENABLE()   // 串口2的時鐘

#define BSP_BLUETOOTH_AF_UART_TX()       PA02_AFx_UART2TXD()
#define BSP_BLUETOOTH_AF_UART_RX()       PA03_AFx_UART2RXD()

#define BSP_BLUETOOTH_GPIO_PORT          CW_GPIOA          // GPIO的端口

#define BSP_BLUETOOTH_TX_PIN             GPIO_PIN_2        // 串口TX的引腳
#define BSP_BLUETOOTH_RX_PIN             GPIO_PIN_3        // 串口RX的引腳

#define BSP_BLUETOOTH_UART               CW_UART2          // 串口2
#define BSP_BLUETOOTH_IRQ                UART2_IRQn        // 串口2中斷
#define BSP_BLUETOOTH_IRQHandler         UART2_IRQHandler  // 串口2中斷服務(wù)函數(shù)

//連接成功指示引腳
#define BLUETOOTH_LINK_GPIO              GPIO_PIN_1

#define BLUETOOTH_LINK                   GPIO_ReadPin(BSP_BLUETOOTH_GPIO_PORT, BLUETOOTH_LINK_GPIO)

#define CONNECT             1       //藍牙連接成功
#define DISCONNECT          0       //藍牙連接斷開

extern unsigned char BLERX_BUFF[BLERX_LEN_MAX];
extern unsigned char BLERX_FLAG;
extern unsigned char BLERX_LEN;


void Bluetooth_Init(void);
unsigned char Get_Bluetooth_ConnectFlag(void);
void Bluetooth_Mode(void);
void Receive_Bluetooth_Data(void);
void BLE_send_String(unsigned char *str);
#endif

四、移植驗證

在自己工程中的main主函數(shù)中,編寫如下。

/*
 * Change Logs:
 * Date           Author       Notes
 * 2024-06-21     LCKFB-LP    first version
 */
#include "board.h"
#include "stdio.h"
#include "bsp_uart.h"
#include "bsp_bluetooth.h"

int32_t main(void)
{
    board_init();        // 開發(fā)板初始化

    uart1_init(115200);        // 串口1波特率115200

    Bluetooth_Init();

    printf("HC05 Start--->rn");

    while(1)
    {
        //如果接收到藍牙數(shù)據(jù)則通過串口2顯示
        Receive_Bluetooth_Data();

        //發(fā)送數(shù)據(jù)到藍牙
        BLE_send_String((uint8_t *)"立創(chuàng)·地文星·CW32F030C8T6開發(fā)板");

        delay_ms(1000);

    }
}

移植現(xiàn)象:讀取手機通過藍牙模塊發(fā)送過來的數(shù)據(jù),并通過串口1發(fā)送至電腦。

模塊移植成功案例代碼:

鏈接:https://pan.baidu.com/s/1IYo5SCmLftfapmVCgjDjlA?pwd=LCKF

提取碼:LCKF

審核編輯 黃宇

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

    關(guān)注

    30

    文章

    578

    瀏覽量

    55845
  • CW32
    +關(guān)注

    關(guān)注

    1

    文章

    218

    瀏覽量

    714
收藏 人收藏

    評論

    相關(guān)推薦

    CW32模塊使用 紅外接收模塊

    一、模塊來源 模塊實物展示: ? 資料鏈接:https://pan.baidu.com/s/1dEWVMIFDWb7k1NcsRy5hHA 資料提取碼:uucv 二、規(guī)格參數(shù) 1.CR2025環(huán)保
    的頭像 發(fā)表于 01-23 13:16 ?60次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 紅外接收<b class='flag-5'>模塊</b>

    CW32模塊使用 EC-01G NBIOT+GPS模塊

    一、模塊來源 模塊實物展示: 資料鏈接:https://docs.ai-thinker.com/nb-iot 二、規(guī)格參數(shù) 工作電壓:3.0V-3.6V 工作電流:IMAX = 170mA 模塊尺寸
    的頭像 發(fā)表于 01-23 13:12 ?51次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 EC-01G NBIOT+GPS<b class='flag-5'>模塊</b>

    CW32模塊使用 ESP01S WIFI模塊

    ESP8266系列無線模塊是安信可科技自主研發(fā)設(shè)計的一系列高性價比WiFisOC模組。該系列模塊支持標準的IEEE802.11 b/g/n 協(xié)議,內(nèi)置完整的TCP/IP協(xié)議棧。用戶可以使用該系列模塊
    的頭像 發(fā)表于 01-23 13:08 ?61次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 ESP01S WIFI<b class='flag-5'>模塊</b>

    CW32模塊使用 NEO-6M GPS模塊

    NEO—6M/7M GPS模塊,具有高靈敏度、低功耗、小型化、高追蹤靈敏度,大大擴大了其定位的覆蓋面,在普通GPS接收模塊不能定位的地方,如狹窄都市天空下、密集的叢林環(huán)境,NEO-6M都能高精度定位
    的頭像 發(fā)表于 01-23 13:06 ?75次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 NEO-6M GPS<b class='flag-5'>模塊</b>

    CW32模塊使用 紅外解碼編碼模塊

    紅外解碼編碼模塊采用MCU+紅外發(fā)射頭+紅外接收頭,引出MCU的串口連接其他需要紅外控制的設(shè)備,可作為紅外無線數(shù)據(jù)通信、數(shù)據(jù)傳輸?shù)裙δ?。具備NEC格式紅外編碼發(fā)射功能,可控制99%的NEC紅外
    的頭像 發(fā)表于 01-23 12:56 ?48次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 紅外解碼編碼<b class='flag-5'>模塊</b>

    CW32模塊使用 BMP180氣壓傳感器

    一、模塊來源 模塊實物展示: ? 資料下載鏈接: https://pan.baidu.com/s/1miTIphm 二、規(guī)格參數(shù) 工作電壓:1.8~3.6V 工作電流:0.1~1000uA 溫度精度
    的頭像 發(fā)表于 12-05 12:06 ?208次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 BMP180氣壓傳感器

    stm32藍牙模塊連接方法

    選擇藍牙模塊 首先,需要選擇一個適合的藍牙模塊。市面上常見的藍牙模塊
    的頭像 發(fā)表于 11-19 15:49 ?802次閱讀

    CW32模塊使用 TTP224觸摸傳感器

    模塊是一個基于觸摸檢測IC(TTP223B)的電容式點動型觸摸開關(guān)模塊。常態(tài)下,模塊輸出低電平,模式為低功耗模式;當(dāng)用手指觸摸相應(yīng)位置時,模塊會輸出高電平,模式切換為快速模式;當(dāng)持續(xù)
    的頭像 發(fā)表于 09-18 15:35 ?2029次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 TTP224觸摸傳感器

    【項目展示】基于CW32的遙控循跡小車

    藍牙模塊、OLED屏幕、TB6612和紅外循跡模塊組成,電源采用可充電鋰電池供電,建議不要使用 1.5V 干電池供電。 圖1 CW32小車 二、硬件部分 2.1主控板 小車主控板由小
    的頭像 發(fā)表于 05-31 17:33 ?1393次閱讀
    【項目展示】基于<b class='flag-5'>CW32</b>的遙控循跡小車

    基于CW32的有刷直流電機控制實驗三:直流電機閉環(huán)位置和速度控制實驗

    硬件接線說明 實驗使用的模塊主要有6個:小車主控板(黑色)、CW32F030小藍板、OLED屏幕、TB6612電機驅(qū)動模塊、直流減速電機、DAP-Link下載器。 安裝好后的圖片如下: 如果
    的頭像 發(fā)表于 05-31 17:01 ?640次閱讀
    基于<b class='flag-5'>CW32</b>的有刷直流電機控制實驗三:直流電機閉環(huán)位置和速度控制實驗

    藍牙模塊選型之藍牙功能

    藍牙模塊,是一種集成藍牙功能的PCBA板,用于短距離無線通訊,藍牙模塊將芯片和外圍硬件電路集成到一個PCB上,開發(fā)出所需的內(nèi)置程序?qū)崿F(xiàn)
    的頭像 發(fā)表于 05-28 17:48 ?834次閱讀
    <b class='flag-5'>藍牙</b><b class='flag-5'>模塊</b>選型之<b class='flag-5'>藍牙</b>功能

    什么是經(jīng)典藍牙模塊?

    ? 什么是經(jīng)典藍牙模塊? 前面我們已經(jīng)就藍牙模塊的概念做了了解,隨著時間的推移,產(chǎn)品越來越智能,需要的藍牙
    的頭像 發(fā)表于 05-24 14:52 ?606次閱讀
    什么是經(jīng)典<b class='flag-5'>藍牙</b><b class='flag-5'>模塊</b>?

    CW32量產(chǎn)燒錄工具

    本節(jié)主要介紹CW32微控制器的燒錄器CW-Writer,以及與之配合的軟件CW-Programmer的使用方法。燒錄器CW-Writer通過ISP協(xié)議,可實現(xiàn)對
    的頭像 發(fā)表于 04-25 15:22 ?1475次閱讀
    <b class='flag-5'>CW32</b>量產(chǎn)燒錄工具

    CW32快速開發(fā)入門

    CW32快速開發(fā)入門
    的頭像 發(fā)表于 04-24 18:56 ?2098次閱讀
    <b class='flag-5'>CW32</b>快速開發(fā)入門

    HC05藍牙模塊主從通訊,藍牙透傳串口發(fā)出后數(shù)據(jù)字節(jié)有延時是怎么回事?

    HC05藍牙做主從通訊,主機發(fā)出從機接收。主從模塊通過兩個CH430和PC相連。用邏輯分析儀抓取數(shù)據(jù),發(fā)現(xiàn)從機接收后串口發(fā)出的數(shù)據(jù)有字節(jié)延時。
    發(fā)表于 04-02 07:52