女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

【CW32模塊使用】16路舵機(jī)驅(qū)動(dòng)模塊

CW32生態(tài)社區(qū) ? 來源:CW32生態(tài)社區(qū) ? 作者:CW32生態(tài)社區(qū) ? 2025-03-29 17:24 ? 次閱讀

當(dāng)你在一個(gè)項(xiàng)目中碰到了微控制器芯片的PWM輸出引腳不夠用的情況,那么這款PCA968516路舵機(jī)就能很快幫助您解決這個(gè)問題了。只要你的主控芯片具備了I2C通信,就能夠讓主控芯片和PCA9685通信,實(shí)現(xiàn)多個(gè)舵機(jī)的同時(shí)控制了。PCA9685 16路舵機(jī)是一個(gè)采用I2C通信,內(nèi)置了PWM驅(qū)動(dòng)器和一個(gè)時(shí)鐘,這個(gè)意味著,這將和TLCG940系列有很大不同,你不需要不斷發(fā)送信號(hào)占用你的單片機(jī)。它是5V的兼容,這意味你還可以用3.3V單片機(jī)控制并且安全地驅(qū)動(dòng)到6V輸出(當(dāng)你想要控制白色或藍(lán)色指示燈用3.4+正電壓也是可以的)。地址選擇引腳使你可以把62個(gè)驅(qū)動(dòng)板掛在單個(gè)l2C總線上,總共有992路PWM輸出,那將是非常龐大的資源,約1.6Khz可調(diào)頻PWM輸出,為步進(jìn)電機(jī)準(zhǔn)備輸出12位分辨率,可配置的推拉輸出或開路輸出,輸出使能引腳能夠快速禁用所有輸出。

一、模塊來源

模塊實(shí)物展示:

wKgZO2flMxKACxGAAABGCB1lHdY011.jpg


資料鏈接:https://pan.baidu.com/s/1FjoAuJm387bxaZxS6g9HEg
資料提取碼:8888

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

輸入電壓:3.3V~5V

額定電流:15mA

控制方式:IIC

尺寸:21(長)*21(寬)[單位:mm]

以上信息見廠家資料文件

三、移植過程

我們的目標(biāo)是將例程移植至CW32F030C8T6開發(fā)板上【實(shí)現(xiàn)無線的數(shù)據(jù)傳輸?shù)墓δ堋俊J紫纫@取資料,查看數(shù)據(jù)手冊(cè)應(yīng)如何實(shí)現(xiàn)讀取數(shù)據(jù),再移植至我們的工程。

3.1查看資料

wKgZPGflMxKASQZSAABfxvqHsik231.jpg

IIC器件地址

PCA9685 是一個(gè)I2C 從設(shè)備,有個(gè)設(shè)備ID,或者叫從 地址。從地址是如下確定的:

Board 0: Address = 0×40 Offset = binary 00000 (默認(rèn))

Board 1: Address = 0×41 Offset = binary 00001 (A0接上拉)

Board 2: Address = 0×42 Offset = binary 00010 (接上A1上拉)

Board 3: Address = 0×43 Offset = binary 00011 (A0和A1上拉)

Board 4: Address = 0×44 Offset = binary 00100 (A2上拉)

以此類推;

PCA9685的I2C總線從地址如下圖所示。為了節(jié)約電力,硬件可選地址引腳上沒有內(nèi)部上拉電阻,它們必須被拉高或拉低。但是我們使用的是模塊,而模塊上已經(jīng)為我們接好了上拉電阻。

wKgZO2flMxOAXdDOAAAQchHeXJE231.jpg

地址字節(jié)的最后一位定義要執(zhí)行的操作。當(dāng)設(shè)置為邏輯1時(shí),將選擇讀操作,而邏輯0則選擇寫操作。 在原理圖中,地址線全部接0,所以slave address是0x40。對(duì)應(yīng)Fig 4上的位置,則為:

wKgZPGflMxOAKEk3AAARoto_H0s298.jpg

則IIC地址是 0x80 ,寫入時(shí)是0x80,讀取時(shí)是0x81。

設(shè)置PWM頻率

舵機(jī)控制所需的 PWM 周期為20 ms. 在用 PCA9685 作為多舵機(jī)控制器時(shí),需要將 其 PWM 輸出周期設(shè)定為20 ms,即PWM 波的頻率設(shè)定為50 Hz,PCA9685 輸出頻率與振蕩器有關(guān),頻率的設(shè)置值refresh_rate見下面的公式;

wKgZO2flMxSAbROvAAAVoG8mQr4495.jpg

其中,EXTCLK是PCA9685的內(nèi)部時(shí)鐘頻率為25Mhz;prescale是要設(shè)置的頻率,我們?cè)O(shè)置為50Hz;

refresh_rate = 25,000,000 /( 4096 * ( 50 + 1 ))

refresh_rate = 25,000,000 / 4096 / (50 + 1)

refresh_rate = 6,103.52 / (50 + 1)

refresh_rate = 6,103.52 / 51

refresh_rate = 119.68

所以我們需要設(shè)置的值是119.68,取整數(shù)就是120。

需要注意的是,頻率的更改只能在 PCA9685 芯片處于休眠狀態(tài)下進(jìn)行。

以下加粗字體是數(shù)據(jù)手冊(cè)內(nèi)容:

要使用EXTCLK引腳,該位必須按以下順序設(shè)置:

在mode1中設(shè)置SLEEP位。這就關(guān)閉了內(nèi)部振蕩器,使芯片處于休眠狀態(tài)。

將邏輯1寫入MODE1中的SLEEP和EXTCLK位。這樣就轉(zhuǎn)換完成了。外部時(shí)鐘可以在切換期間處于活動(dòng)狀態(tài),因?yàn)樵O(shè)置了SLEEP位。

這個(gè)位是一個(gè)“粘性位”,也就是說,它不能通過寫入邏輯0來清除。EXTCLK位只能通過電源循環(huán)或軟件重置來清除。 占空比或者脈沖寬度的設(shè)定

每個(gè)PWM引腳輸出的開啟時(shí)間和PWM的占空比可以通過LEDn_ON和LEDn_OFF寄存器獨(dú)立控制。

每個(gè)PWM引腳輸出將有兩個(gè)12位寄存器。這些寄存器將由用戶編程。兩個(gè)寄存器都將保存從0到4095的值。一個(gè)12位寄存器將保存ON時(shí)間的值,另一個(gè)12位寄存器將保存OFF時(shí)間的值。將ON和OFF時(shí)間與12位計(jì)數(shù)器的值進(jìn)行比較,該計(jì)數(shù)器將從0000h持續(xù)運(yùn)行到0FFFh(0到4095十進(jìn)制)。

ON時(shí)間是可編程的,它是PWM輸出ON的時(shí)間,OFF時(shí)間也是可編程的,它是PWM輸出OFF的時(shí)間。這樣相移就完全可編程了。相移的分辨率為目標(biāo)頻率的1 / 4096。表7列出了這些寄存器。

以下用一個(gè)例子說明如何計(jì)算要加載到這些寄存器中的值。

(假設(shè)使用LED0輸出,(延時(shí)時(shí)間)+ (PWM占空比)<=100%)

延遲時(shí)間 = 10%;PWM占空比= 20% (LEDON電平= 20%;LEDOFF時(shí)間= 80%)。延遲時(shí)間= 10% = 4096 * 0.1 = 409.6 ~ 410,計(jì)數(shù)= 410(十進(jìn)制) = 19Ah(十六進(jìn)制)

因?yàn)橛?jì)數(shù)器從0開始,到4095結(jié)束,我們將減去1,所以延遲時(shí)間 = 199h 個(gè)數(shù)。

LED0_ON_H = 1h;LED0_ON_L = 99h (LED開始打開后,這個(gè)延遲計(jì)數(shù)到409)

LED開機(jī)時(shí)間= 20% = 819.2 ~ 819次

LED關(guān)閉時(shí)間= 4CCh(十進(jìn)制410 + 819-1 = 1228)

LED0_OFF_H = 4h;LED0_OFF_L = CCh(此計(jì)數(shù)到1228后LED開始關(guān)閉)

wKgZPGflMxSAR--kAAAaADB17eg944.jpg

整個(gè)周期為4095, LED_ON 和 LED_OFF 2個(gè)的設(shè)定值確定脈寬,在后面的代碼里,LED_ON 設(shè)為0, LED_OFF就是脈寬了。 這里都用2位字節(jié)來表示。

相關(guān)地址表

// 相關(guān)地址表
// 這里只截圖了需要的地址,分別是:
#define PCA_Addr            0x80    //IIC地址
#define PCA_Model           0x00
#define LED0_ON_L           0x06
#define LED0_ON_H           0x07
#define LED0_OFF_L          0x08
#define LED0_OFF_H          0x09
#define PCA_Pre             0xFE    //配置頻率地址
wKgZO2flMxWAJabYAAKxSOLhxTs789.jpg

3.2引腳選擇

wKgZPGflMxWAdQymAAEYvjmrhi8082.jpg

模塊接線圖

3.3移植至工程

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

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

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

#include "bsp_pca9685.h"
#include "stdio.h"
#include 

/******************************************************************
 * 函 數(shù) 名 稱:PCA9685_GPIO_Init
 * 函 數(shù) 說 明:PCA9685的引腳初始化
 * 函 數(shù) 形 參:無
 * 函 數(shù) 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void PCA9685_GPIO_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStruct; // GPIO初始化結(jié)構(gòu)體

    RCC_PCA9685_GPIO_ENABLE();        // 使能GPIO時(shí)鐘

    GPIO_InitStruct.Pins = GPIO_SDA|GPIO_SCL;   // GPIO引腳
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; // 開漏輸出
    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;    // 輸出速度高
    GPIO_Init(PORT_PCA9685, &GPIO_InitStruct);  // 初始化
}


/******************************************************************
 * 函 數(shù) 名 稱:IIC_Start
 * 函 數(shù) 說 明:IIC起始時(shí)序
 * 函 數(shù) 形 參:無
 * 函 數(shù) 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void IIC_Start(void)
{
        SDA_OUT();

        SDA(1);
        delay_us(5);
        SCL(1);
        delay_us(5);

        SDA(0);
        delay_us(5);
        SCL(0);
        delay_us(5);

}
/******************************************************************
 * 函 數(shù) 名 稱:IIC_Stop
 * 函 數(shù) 說 明:IIC停止信號(hào)
 * 函 數(shù) 形 參:無
 * 函 數(shù) 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void IIC_Stop(void)
{
        SDA_OUT();
        SCL(0);
        SDA(0);

        SCL(1);
        delay_us(5);
        SDA(1);
        delay_us(5);

}

/******************************************************************
 * 函 數(shù) 名 稱:IIC_Send_Ack
 * 函 數(shù) 說 明:主機(jī)發(fā)送應(yīng)答或者非應(yīng)答信號(hào)
 * 函 數(shù) 形 參:0發(fā)送應(yīng)答  1發(fā)送非應(yīng)答
 * 函 數(shù) 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void IIC_Send_Ack(unsigned char ack)
{
        SDA_OUT();
        SCL(0);
        SDA(0);
        delay_us(5);
        if(!ack) SDA(0);
        else     SDA(1);
        SCL(1);
        delay_us(5);
        SCL(0);
        SDA(1);
}


/******************************************************************
 * 函 數(shù) 名 稱:I2C_WaitAck
 * 函 數(shù) 說 明:等待從機(jī)應(yīng)答
 * 函 數(shù) 形 參:無
 * 函 數(shù) 返 回:0有應(yīng)答  1超時(shí)無應(yīng)答
 * 作       者:LC
 * 備       注:無
******************************************************************/
unsigned char I2C_WaitAck(void)
{

        char ack = 0;
        unsigned char ack_flag = 10;
        SCL(0);
        SDA(1);
        SDA_IN();
        delay_us(5);
        SCL(1);
        delay_us(5);

        while( (SDA_GET()==1) && ( ack_flag ) )
        {
                        ack_flag--;
                        delay_us(5);
        }

        if( ack_flag <= 0 )
        {
                        IIC_Stop();
                        return 1;
        }
        else
        {
                        SCL(0);
                        SDA_OUT();
        }
        return ack;
}

/******************************************************************
 * 函 數(shù) 名 稱:Send_Byte
 * 函 數(shù) 說 明:寫入一個(gè)字節(jié)
 * 函 數(shù) 形 參:dat要寫人的數(shù)據(jù)
 * 函 數(shù) 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void Send_Byte(uint8_t dat)
{
        int i = 0;
        SDA_OUT();
        SCL(0);//拉低時(shí)鐘開始數(shù)據(jù)傳輸

        for( i = 0; i < 8; i++ )
        {
                SDA( (dat & 0x80) >> 7 );
                delay_us(1);
                SCL(1);
                delay_us(5);
                SCL(0);
                delay_us(5);
                dat>8);
        I2C_WaitAck();

        Send_Byte(off&0xFF);
        I2C_WaitAck();

        Send_Byte(off>>8);
        I2C_WaitAck();

        IIC_Stop();

}



/******************************************************************
 * 函 數(shù) 名 稱:PCA9685_setFreq
 * 函 數(shù) 說 明:設(shè)置PCA9685的輸出頻率
 * 函 數(shù) 形 參:freq
 * 函 數(shù) 返 回:無
 * 作       者:LC
 * 備       注:
floor語法:
FLOOR(number, significance)
    Number必需。要舍入的數(shù)值。
    Significance必需。要舍入到的倍數(shù)。
說明
    將參數(shù) number 向下舍入(沿絕對(duì)值減小的方向)為最接近的 significance 的倍數(shù)。
    如果任一參數(shù)為非數(shù)值型,則 FLOOR 將返回錯(cuò)誤值 #VALUE!。
    如果 number 的符號(hào)為正,且 significance 的符號(hào)為負(fù),則 FLOOR 將返回錯(cuò)誤值 #NUM!
示例
    公式                                說明                                                                結(jié)果
    FLOOR(3.7,2)                將 3.7 沿絕對(duì)值減小的方向向下舍入,使其等于最接近的 2 的倍數(shù)                2
    FLOOR(-2.5, -2)                將 -2.5 沿絕對(duì)值減小的方向向下舍入,使其等于最接近的 -2 的倍數(shù)                -2
******************************************************************/
void PCA9685_setFreq(float freq)
{
        uint8_t prescale,oldmode,newmode;

        double prescaleval;

//        freq *= 0.9;  // Correct for overshoot in the frequency setting (see issue #11).

//        PCA9685的內(nèi)部時(shí)鐘頻率是25Mhz
//        公式: presale_Volue = round( 25000000/(4096 * update_rate) ) - 1
//        round = floor();  floor是數(shù)學(xué)函數(shù),需要導(dǎo)入 math.h 文件
//        update_rate = freq;
        prescaleval = 25000000;
        prescaleval /= 4096;
        prescaleval /= freq;
        prescaleval -= 1;
        prescale = floor(prescaleval+0.5f);

        //返回MODE1地址上的內(nèi)容(保護(hù)其他內(nèi)容)
        oldmode = PCA9685_Read(PCA_Model);

        //在MODE1中設(shè)置SLEEP位
        newmode = (oldmode&0x7F)|0x10;
        //將更改的MODE1的值寫入MODE1地址,使芯片睡眠
        PCA9685_Write(PCA_Model,newmode);
        //寫入我們計(jì)算的設(shè)置頻率的值
        //PCA_Pre = presale 地址是0xFE,可以數(shù)據(jù)手冊(cè)里查找到
        PCA9685_Write(PCA_Pre,prescale);
        //重新復(fù)位
        PCA9685_Write(PCA_Model,oldmode);
        //等待復(fù)位完成
        delay_1ms(5);
        //設(shè)置MODE1寄存器開啟自動(dòng)遞增
        PCA9685_Write(PCA_Model,oldmode|0xa1);
}

//
/******************************************************************
 * 函 數(shù) 名 稱:setAngle
 * 函 數(shù) 說 明:設(shè)置角度
 * 函 數(shù) 形 參:num要設(shè)置的PWM引腳     angle設(shè)置的角度
 * 函 數(shù) 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void setAngle(uint8_t num,uint8_t angle)
{
        uint32_t off = 0;

        off = (uint32_t)(158+angle*2.2);

        PCA9685_setPWM(num,0,off);
}

/******************************************************************
 * 函 數(shù) 名 稱:PCA9685_Init
 * 函 數(shù) 說 明:PCA9685初始化,所有PWM輸出頻率配置與所有PWM引腳輸出的舵機(jī)角度
 * 函 數(shù) 形 參:hz設(shè)置的初始頻率  angle設(shè)置的初始角度
 * 函 數(shù) 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void PCA9685_Init(float hz,uint8_t angle)
{
        uint32_t off = 0;

        PCA9685_GPIO_Init();

        //在MODE1地址上寫0x00
        PCA9685_Write(PCA_Model,0x00);        //這一步很關(guān)鍵,如果沒有這一步PCA9685就不會(huì)正常工作。

//        pwm.setPWMFreq(SERVO_FREQ)函數(shù)主要是設(shè)置PCA9685的輸出頻率,
//        PCA9685的16路PWM輸出頻率是一致的,所以是不能實(shí)現(xiàn)不同引腳不同頻率的。
//        下面是setPWMFreq函數(shù)的內(nèi)容,主要是根據(jù)頻率計(jì)算PRE_SCALE的值。
        PCA9685_setFreq(hz);
        //計(jì)算角度
        off = (uint32_t)(145+angle*2.4);

        //控制16個(gè)舵機(jī)輸出off角度
        PCA9685_setPWM(0,0,off);
        PCA9685_setPWM(1,0,off);
        PCA9685_setPWM(2,0,off);
        PCA9685_setPWM(3,0,off);
        PCA9685_setPWM(4,0,off);
        PCA9685_setPWM(5,0,off);
        PCA9685_setPWM(6,0,off);
        PCA9685_setPWM(7,0,off);
        PCA9685_setPWM(8,0,off);
        PCA9685_setPWM(9,0,off);
        PCA9685_setPWM(10,0,off);
        PCA9685_setPWM(11,0,off);
        PCA9685_setPWM(12,0,off);
        PCA9685_setPWM(13,0,off);
        PCA9685_setPWM(14,0,off);
        PCA9685_setPWM(15,0,off);

        delay_1ms(100);

}

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

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

#ifndef _BSP_PCA9685_H_
#define _BSP_PCA9685_H_

#include "board.h"


//端口移植
#define RCC_PCA9685_GPIO_ENABLE()   __RCC_GPIOA_CLK_ENABLE()
#define PORT_PCA9685                CW_GPIOA

#define GPIO_SDA                    GPIO_PIN_5
#define GPIO_SCL                    GPIO_PIN_6

//設(shè)置SDA輸出模式
#define SDA_OUT()   {        
                        GPIO_InitTypeDef GPIO_InitStruct;                
                        GPIO_InitStruct.Pins = GPIO_SDA;                 
                        GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;      
                        GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;         
                        GPIO_Init(PORT_PCA9685, &GPIO_InitStruct);       
                     }
//設(shè)置SDA輸入模式
#define SDA_IN()    {        
                        GPIO_InitTypeDef GPIO_InitStruct;                
                        GPIO_InitStruct.Pins = GPIO_SDA;                 
                        GPIO_InitStruct.Mode = GPIO_MODE_INPUT;          
                        GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;         
                        GPIO_Init(PORT_PCA9685, &GPIO_InitStruct);       
                    }
//獲取SDA引腳的電平變化
#define SDA_GET()       GPIO_ReadPin(PORT_PCA9685, GPIO_SDA)
//SDA與SCL輸出
#define SDA(x)          GPIO_WritePin(PORT_PCA9685, GPIO_SDA, (x?GPIO_Pin_SET:GPIO_Pin_RESET) )
#define SCL(x)          GPIO_WritePin(PORT_PCA9685, GPIO_SCL, (x?GPIO_Pin_SET:GPIO_Pin_RESET) )

#define PCA_Addr              0x80        //IIC地址
#define PCA_Model             0x00
#define LED0_ON_L             0x06
#define LED0_ON_H             0x07
#define LED0_OFF_L            0x08
#define LED0_OFF_H            0x09
#define PCA_Pre               0xFE        //配置頻率地址

void PCA9685_Init(float hz,uint8_t angle);
void setAngle(uint8_t num,uint8_t angle);
void PCA9685_setFreq(float freq);
void PCA9685_setPWM(uint8_t num,uint32_t on,uint32_t off);

#endif

四、移植驗(yàn)證

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

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

int32_t main(void)
{
    uint8_t i = 0;

    board_init();

    uart1_init(115200);

    printf("startrn");

    PCA9685_Init(60,0);        //PCA9685--16路舵機(jī)初始化  頻率60Hz -- 0度
    delay_ms(1000);
    while(1)
    {
        i = ( i + 1 ) % 180;
        setAngle(0,i);
        delay_ms(10);
    }
}

移植現(xiàn)象:0號(hào)接口的舵機(jī)從0度一直移動(dòng)到180度后,又回到0度。

wKgZO2flMxaASeMkAABK5MAx1C4149.jpg

模塊移植成功案例代碼:

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

提取碼:LCKF

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

    關(guān)注

    48

    文章

    7903

    瀏覽量

    153684
  • 驅(qū)動(dòng)模塊
    +關(guān)注

    關(guān)注

    0

    文章

    65

    瀏覽量

    14359
  • 舵機(jī)
    +關(guān)注

    關(guān)注

    17

    文章

    292

    瀏覽量

    41692
  • CW32
    +關(guān)注

    關(guān)注

    1

    文章

    242

    瀏覽量

    1092
收藏 人收藏

    評(píng)論

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

    CW32移植Free-RTOS】CW32開發(fā)者扶持計(jì)劃

    CW32配置Free-RTOS全過程,CW32開發(fā)者扶持計(jì)劃
    的頭像 發(fā)表于 04-18 09:38 ?6555次閱讀
    【<b class='flag-5'>CW32</b>移植Free-RTOS】<b class='flag-5'>CW32</b>開發(fā)者扶持計(jì)劃

    CW32快速開發(fā)入門

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

    【項(xiàng)目展示】基于CW32的遙控循跡小車

    CW32循跡小車.zip_免費(fèi)高速下載|百度網(wǎng)盤-分享無限制? 一、概述 CW32循跡、遙控小車具有循跡和遙控兩種功能,小車的硬件模塊CW32F030C8T6小藍(lán)板、智能小車控制底板
    的頭像 發(fā)表于 05-31 17:33 ?1729次閱讀
    【項(xiàng)目展示】基于<b class='flag-5'>CW32</b>的遙控循跡小車

    CW32開發(fā)者扶持計(jì)劃#CW32 #芯片

    CW32
    CW32生態(tài)社區(qū)
    發(fā)布于 :2023年05月24日 16:56:14

    基于武漢芯源半導(dǎo)體CW32的無刷電機(jī)訓(xùn)練營正式結(jié)營!

    的活動(dòng),歡迎更多電子工程師、電子愛好者以及電子工程專業(yè)的學(xué)生來參與我們的活動(dòng)!01部分優(yōu)秀作品展示排名不分先后-基于CW32的多模式電機(jī)驅(qū)動(dòng)模塊-應(yīng)用:洗衣機(jī)設(shè)計(jì)師:馬利作品簡介:以CW32
    發(fā)表于 06-21 15:04

    CW32飯盒派開發(fā)板試用體驗(yàn)】+機(jī)械臂游戲項(xiàng)目(開源)(4)多加點(diǎn)東西

    接上三篇,繼續(xù)本項(xiàng)目開發(fā)。【CW32飯盒派開發(fā)板試用體驗(yàn)】+機(jī)械臂游戲項(xiàng)目(開源)(1)開箱試驗(yàn)舵機(jī) - 武漢芯源MCU - 電子技術(shù)論壇- 廣受歡迎的專業(yè)電子論壇! https
    發(fā)表于 05-08 18:40

    CW32單片機(jī)在智能馬桶的應(yīng)用介紹

    實(shí)時(shí)感知到用戶所需的座圈溫度并根據(jù)用戶的設(shè)定進(jìn)行調(diào)節(jié)。當(dāng)溫度過高或過低時(shí),單片機(jī)將發(fā)出信號(hào),通過控制模塊對(duì)座圈的加熱或制冷進(jìn)行調(diào)節(jié),提供更加舒適的使用體驗(yàn)。 圖:CW32在智能馬桶控制板的應(yīng)用框圖
    發(fā)表于 12-20 10:06

    16模塊+PWM舵機(jī)驅(qū)動(dòng)板+控制器+機(jī)器人+IIC接口+

    16模塊+PWM舵機(jī)驅(qū)動(dòng)板+控制器+機(jī)器人+IIC接口+
    發(fā)表于 10-09 11:20 ?125次下載

    cw32和stm32的區(qū)別

    cw32和stm32的區(qū)別 CW32和STM32是兩種常見的單片機(jī),被廣泛應(yīng)用于各種電子設(shè)備中。在本文中,我們將深入探討CW32和STM32之間的區(qū)別和優(yōu)劣勢(shì)。 1. 硬件性能 硬件性能是衡量單片機(jī)
    的頭像 發(fā)表于 08-16 11:15 ?5262次閱讀

    cw32和gd32的區(qū)別

    cw32和gd32的區(qū)別 CW32和GD32是兩種不同的芯片系列,分別由WCH和GigaDevice公司推出,兩者有很多不同之處,下面我們來詳細(xì)介紹。 首先從CW32系列開始,CW32
    的頭像 發(fā)表于 08-16 11:15 ?2480次閱讀

    基于CW32熱敏電阻采集溫度應(yīng)用

    基于CW32熱敏電阻采集溫度應(yīng)用
    的頭像 發(fā)表于 10-25 16:45 ?770次閱讀
    基于<b class='flag-5'>CW32</b>熱敏電阻采集溫度應(yīng)用

    基于CW32的RC522刷卡模塊的應(yīng)用

    基于CW32的RC522刷卡模塊的應(yīng)用
    的頭像 發(fā)表于 11-02 14:53 ?1578次閱讀
    基于<b class='flag-5'>CW32</b>的RC522刷卡<b class='flag-5'>模塊</b>的應(yīng)用

    基于CW32的物聯(lián)網(wǎng)應(yīng)用

    CW32】基于CW32的物聯(lián)網(wǎng)應(yīng)用
    的頭像 發(fā)表于 11-02 15:55 ?1128次閱讀
    基于<b class='flag-5'>CW32</b>的物聯(lián)網(wǎng)應(yīng)用

    基于CW32的遙控循跡小車

    本實(shí)驗(yàn)是使用CW32單片機(jī)制作一個(gè)入門的遙控循跡小車。遙控采用藍(lán)牙配合手機(jī)APP進(jìn)行遙控。循跡使用一個(gè)5的循跡模塊。使用OLED模塊進(jìn)行顯示當(dāng)前小車狀態(tài)。
    的頭像 發(fā)表于 11-17 17:46 ?1332次閱讀
    基于<b class='flag-5'>CW32</b>的遙控循跡小車

    CW32模塊使用】SG90舵機(jī)

    我們的目標(biāo)是將例程移植至CW32F030C8T6開發(fā)板上【能夠控制舵機(jī)旋轉(zhuǎn)的功能】。首先要獲取資料,查看數(shù)據(jù)手冊(cè)應(yīng)如何實(shí)現(xiàn)讀取數(shù)據(jù),再移植至我們的工程。
    的頭像 發(fā)表于 03-29 17:22 ?417次閱讀
    【<b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用】SG90<b class='flag-5'>舵機(jī)</b>