伦伦影院久久影视,天天操天天干天天射,ririsao久久精品一区 ,一本大道香蕉大久在红桃,999久久久免费精品国产色夜,色悠悠久久综合88,亚洲国产精品久久无套麻豆,亚洲香蕉毛片久久网站,一本一道久久综合狠狠老

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

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

3天內不再提示

CW32L012/F030靈眸X1智能小車——使用藍牙模塊通訊

CW32生態社區 ? 來源:CW32生態社區 ? 2026-04-01 16:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、藍牙模塊介紹

主控板配套的是一款低功耗藍牙模塊,適用于短距離無線通信。該模塊通常被用于各種嵌入式項目,如物聯網(IoT)設備、手機配件、智能家居設備、醫療設備等。

以下是藍牙模塊的一些主要特點和功能:

低功耗: 本模塊設計為低能耗,適合電池供電的應用。

藍牙版本: 支持藍牙4.0或更高版本,能夠與大多數藍牙設備兼容。

操作范圍: 通常具有較好的無線傳輸距離,適合各種室內外應用。

小尺寸: 模塊結構緊湊,便于嵌入到各種設備中。

簡單接口: 提供UART、SPI等常用接口,便于與微控制器或其他設備進行連接和通信

易于配對: 具備快速配對功能,簡化了與其他藍牙設備的連接過程。

模塊圖片:

wKgZPGnM3WmAfqEiAADRW_hcNWA947.jpg

二、連接原理圖

藍牙接口在開發板上原理圖如下:

wKgZPGnM3WqANmiHAAAl6QauZyk589.jpg

RJ5、RJ6跳線電阻用于切換不同模塊的供電電源。

三、驅動編寫

由以上原理圖可知,藍牙模塊的通訊協議為串口,接到主控板CW32上的PA2和PA3接口,再查詢手冊可知PA2,PA3復用功能為UART3,如下圖

wKgZO2nM3W-AB_uHAAAwbQc3k_s045.jpg

那么驅動就比較容易了,只需要將之前固件庫中串口通信部分復制,然后將里面的串口配置引腳修改為PA2,PA3即可,修改之后如下:

 PA02_AFx_UART3TXD();//配置GPIO復用功能
        PA03_AFx_UART3RXD();

        GPIO_InitTypeDef GPIO_Initstructure;
        GPIO_Initstructure.IT=GPIO_IT_NONE;
        GPIO_Initstructure.Mode=GPIO_MODE_OUTPUT_PP;//配置PA2為推挽輸出
        GPIO_Initstructure.Pins=GPIO_PIN_2;
        GPIO_Initstructure.Speed=GPIO_SPEED_HIGH;
        GPIO_Init(CW_GPIOA,&GPIO_Initstructure);

        GPIO_Initstructure.IT=GPIO_IT_NONE;
        GPIO_Initstructure.Mode=GPIO_MODE_INPUT_PULLUP;//配置PA3為上拉輸入
        GPIO_Initstructure.Pins=GPIO_PIN_3;
        GPIO_Initstructure.Speed=GPIO_SPEED_HIGH;
        GPIO_Init(CW_GPIOA,&GPIO_Initstructure);

這樣就可以了,完整的串口初始化如下:

void Uart_Init(void)
{
        RCC_AHBPeriphClk_Enable(RCC_AHB_PERIPH_GPIOA,ENABLE);
        RCC_APBPeriphClk_Enable1(RCC_APB1_PERIPH_UART3,ENABLE);//開啟串口3時鐘

        PA02_AFx_UART3TXD();//配置GPIO復用功能
        PA03_AFx_UART3RXD();

        GPIO_InitTypeDef GPIO_Initstructure;
        GPIO_Initstructure.IT=GPIO_IT_NONE;
        GPIO_Initstructure.Mode=GPIO_MODE_OUTPUT_PP;//配置PA2為推挽輸出
        GPIO_Initstructure.Pins=GPIO_PIN_2;
        GPIO_Initstructure.Speed=GPIO_SPEED_HIGH;
        GPIO_Init(CW_GPIOA,&GPIO_Initstructure);

        GPIO_Initstructure.IT=GPIO_IT_NONE;
        GPIO_Initstructure.Mode=GPIO_MODE_INPUT_PULLUP;//配置PA3為上拉輸入
        GPIO_Initstructure.Pins=GPIO_PIN_3;
        GPIO_Initstructure.Speed=GPIO_SPEED_HIGH;
        GPIO_Init(CW_GPIOA,&GPIO_Initstructure);

        USART_InitTypeDef USART3_Initstructure;
        USART3_Initstructure.USART_BaudRate=9600;//配置波特率
        USART3_Initstructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;//無流控
        USART3_Initstructure.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;//
        USART3_Initstructure.USART_Over=USART_Over_16;
        USART3_Initstructure.USART_Parity=USART_Parity_No;//不校驗
        USART3_Initstructure.USART_Source=USART_Source_PCLK;
        USART3_Initstructure.USART_StartBit=USART_StartBit_FE;//起始位
        USART3_Initstructure.USART_StopBits=USART_StopBits_1;//停止位
        USART3_Initstructure.USART_UclkFreq=64000000;
        USART_Init(CW_UART3,&USART3_Initstructure);

        USART_DirectionModeCmd(CW_UART3,USART_Mode_Tx,ENABLE);
        USART_DirectionModeCmd(CW_UART3,USART_Mode_Rx,ENABLE);

        USART_ITConfig(CW_UART3,USART_IT_RC,ENABLE);//中斷配置

        NVIC_SetPriority(UART3_IRQn,0);//配置中斷優先級

        NVIC_EnableIRQ(UART3_IRQn);
}

然后再修改一下中斷配置,使用狀態機接收固定長度的并且帶幀頭幀尾的數據,數據格式為幀頭+一位數據+幀尾

代碼如下:

void UART3_IRQHandler(void)
{
        static uint8_t Count=0;
        static uint8_t Pcount=0;
        if(USART_GetITStatus(CW_UART3,USART_IT_RC)==SET)
        {
                uint8_t Data=USART_ReceiveData_8bit(CW_UART3);//接收數據
                if(Count==0)
                {
                if(Data==0xFF)//判斷幀頭
                {
                        Count=1;
//                        Pcount=0;
                }
        }
         else if(Count==1)
                {
                        Rx_Data[Pcount]=Data;//只存入幀頭之后的一位數據
                        Pcount++;
                        if(Pcount>0)
                        {
                                Count=2;
                                Pcount=0;
                        }
                }
                else if(Count==2)
                {
                                if(Data==0xFE)//判斷幀尾
                        {
                                Count=0;
                        }
                }
        USART_ClearITPendingBit(CW_UART3,USART_IT_RC);//清除標志位
        }
}

所以一幀完整的數據為(幀頭)0XFF+數據+(幀尾)0XFE;

然后在主函數中寫入以下代碼

int main(void)
{
        Uart_Init();//串口初始化函數
        printf("Hello world!rn");
        while(1)
        {
        }
}

四、工作現象

當燒寫代碼之后,手機打開任意一個藍牙調試助手,發送如下數據

wKgZPGnM3YuAPAqiAAFiYgVZtnU769.jpg

便可以看到OLED屏幕上第一行第一列顯示字符串HELLO,第二行在藍牙未接收到數據時顯示00,接收到之后顯示接收到的數據,本實驗發送02,則顯示02,可以自己更改。

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

    關注

    5204

    文章

    20560

    瀏覽量

    335886
  • 智能小車
    +關注

    關注

    87

    文章

    565

    瀏覽量

    83495
  • 藍牙模塊
    +關注

    關注

    30

    文章

    669

    瀏覽量

    57943
  • CW32
    +關注

    關注

    1

    文章

    323

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    CW32L012/F030X1智能小車——板載WS2812驅動示例

    WS2812是一種廣泛使用的地址可控制的RGB LED模塊,其內置驅動電路和控制芯片,允許用戶通過單線信號控制多個LED的顏色和亮度。
    的頭像 發表于 01-05 16:35 ?3159次閱讀
    <b class='flag-5'>CW32L012</b>/<b class='flag-5'>F030</b><b class='flag-5'>靈</b><b class='flag-5'>眸</b><b class='flag-5'>X1</b><b class='flag-5'>智能</b><b class='flag-5'>小車</b>——板載WS2812驅動示例

    CW32L012/F030X1智能小車——超聲波模塊配置

    SR04超聲波模塊是一款廣泛應用的測距傳感器,主要用于使用超聲波測量物體與傳感器之間的距離。它是一個成本低廉、精度較高且易于使用的傳感器,常用于機器人、智能家居、無人機、汽車防撞系統等項目。
    的頭像 發表于 01-05 16:54 ?3009次閱讀
    <b class='flag-5'>CW32L012</b>/<b class='flag-5'>F030</b><b class='flag-5'>靈</b><b class='flag-5'>眸</b><b class='flag-5'>X1</b><b class='flag-5'>智能</b><b class='flag-5'>小車</b>——超聲波<b class='flag-5'>模塊</b>配置

    CW32L012/F030X1智能小車——使用NRF24L01通信

    NRF24L01所使用的通訊協議為SPI,SPI又可分為軟件SPI和硬件SPI。
    的頭像 發表于 04-01 16:49 ?2143次閱讀
    <b class='flag-5'>CW32L012</b>/<b class='flag-5'>F030</b><b class='flag-5'>靈</b><b class='flag-5'>眸</b><b class='flag-5'>X1</b><b class='flag-5'>智能</b><b class='flag-5'>小車</b>——使用NRF24<b class='flag-5'>L</b>01通信

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

    CW32循跡小車.zip_免費高速下載|百度網盤-分享無限制? 一、概述 CW32循跡、遙控小車具有循跡和遙控兩種功能,小車的硬件
    的頭像 發表于 05-31 17:33 ?2561次閱讀
    【項目展示】基于<b class='flag-5'>CW</b>32的遙控循跡<b class='flag-5'>小車</b>

    堅持繼續布局32位MCU,進一步完善產品陣容,96Mhz主頻CW32L012新品發布!

    基于CW32L01x系列低功耗微控制器家族的全新成員:CW32L012系列產品。 CW32L012基于ARM? Cortex-M0+內核,主頻高達96MHz,同時集成了CORDIC硬件單元、擴展算術運算單元
    發表于 07-16 16:32

    白嫖的CW32小車藍牙模式使用教程

    00,速度也是同樣如此,我們把這個指令編輯到這個藍牙編輯界面中,像這樣: 每個按鍵都編輯好對應的指令,這樣藍牙上位機的配置也配置好了,按照這樣的步驟,我很流暢的通過藍牙遙控上了這款CW32L
    發表于 11-21 15:38

    **CW32L012****開發評估板的第一個程序**

    CW32L012****開發評估板的第一個程序 最近以15.99在CW32生態社區入手了這塊CW32L012開發評估板,我迫不及待的燒錄進電燈程序,看看這塊板子是否是正常的,能否滿足我后面的學習
    發表于 11-22 00:09

    CW32L012小型機器人控制評估板活動 四足機器人+智能小車 開箱評測

    CW32L012活動相關資料鏈接:https://dwi41yhz703.feishu.cn/wiki/B1Ihw31ebiX0vkkhQr2cINnkn1g 小型機器人+智能小車
    發表于 11-24 23:44

    基于STM32的藍牙遙控小車設計

    簡單的藍牙小車,目前就只是手機控制小車前進轉彎后退剎車這種功能,自己還在擴展···1:材料車體、4個輪子、4個減速馬達這一套,淘寶搜智能
    發表于 03-01 06:17

    武漢芯源CW32F030評估板介紹

    CW32F030CxTxStartKit評估板為用戶提供一種經濟且靈活的方式使用CW32F030CxTx芯片構建系統原型,可進行性能、功耗、功能等各方面快速驗證
    的頭像 發表于 10-20 11:18 ?2132次閱讀
    武漢芯源<b class='flag-5'>CW32F030</b>評估板介紹

    使用芯源CW32的CW32L012開發評估板做了spi屏幕驅動

    CW32生態社區以極高的性價比入手了這塊CW32L012開發評估板,開發板以底板、核心板、1.77寸TFT顯示屏構成,所有的IO口都引出了排針,這點好評,使用杜邦線可以非常方便的連接其他模塊。引腳
    的頭像 發表于 11-21 11:34 ?693次閱讀
    使用芯源<b class='flag-5'>CW</b>32的<b class='flag-5'>CW32L012</b>開發評估板做了spi屏幕驅動

    CW32L012與STM32F103的三角運算性能對比

    沒有硬件浮點運算單元。 但在運算三角函數時,CW32L012支持CORDIC算法。 二、 三角運算性能具體分析 1:標準庫浮點運算(如 math.h 的 sinf, cosf) 這是最常用但也是最慢的方式。 STM32F103C
    的頭像 發表于 12-29 15:32 ?2427次閱讀
    <b class='flag-5'>CW32L012</b>與STM32<b class='flag-5'>F</b>103的三角運算性能對比

    CW32L012與STM32G431的CORDIC三角函數運算性能對比

    CORDIC協處理器的三角運算性能對比。對比結果出乎意料。 一、硬件架構 二、運算100W次SIN30度與COS30度的代碼實現 1.CW32L012 CW32L012的CORDIC提供某些數學函數
    的頭像 發表于 12-29 15:55 ?2636次閱讀
    <b class='flag-5'>CW32L012</b>與STM32G431的CORDIC三角函數運算性能對比

    CW32L012/F030X1智能小車--電機正反轉控制

    RZ7899是一種高性能電機驅動芯片,廣泛應用于各種電機控制場合,特別是在步進電機和直流電機的驅動中。
    的頭像 發表于 04-02 16:48 ?222次閱讀
    <b class='flag-5'>CW32L012</b>/<b class='flag-5'>F030</b><b class='flag-5'>靈</b><b class='flag-5'>眸</b><b class='flag-5'>X1</b><b class='flag-5'>智能</b><b class='flag-5'>小車</b>--電機正反轉控制

    CW32L012/F030X1智能小車--電機調速控制

    PWM(Pulse Width Modulation脈寬調制)是利用微處理器的數字輸出來對模擬電路進行控制的一種非常有效的技術。PWM是一種對模擬信號電平進行數字編碼的方法。通過高分辨率計數器的使用,方波占空比被調制用來對一個具體模擬信號的電平進行編碼。PWM信號任然是數字的,因為在給定的任何時刻,滿幅值的直流供電要么完全有,要么完全無。比如我們的電壓輸出是5v的,那么經過改變PWM的占空比,可以達到在一定時間內輸出3.3V或者1.3V的效果
    的頭像 發表于 04-02 16:49 ?218次閱讀
    <b class='flag-5'>CW32L012</b>/<b class='flag-5'>F030</b><b class='flag-5'>靈</b><b class='flag-5'>眸</b><b class='flag-5'>X1</b><b class='flag-5'>智能</b><b class='flag-5'>小車</b>--電機調速控制