在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

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

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

紅外解碼編碼模塊采用MCU+紅外發(fā)射頭+紅外接收頭,引出MCU的串口連接其他需要紅外控制的設(shè)備,可作為紅外無(wú)線(xiàn)數(shù)據(jù)通信、數(shù)據(jù)傳輸?shù)裙δ堋>邆銷(xiāo)EC格式紅外編碼發(fā)射功能,可控制99%的NEC紅外格式設(shè)備,如大部分電視機(jī)、機(jī)頂盒、DVD、電風(fēng)扇等電器設(shè)備。

只需要利用到單片機(jī)的串口通信知識(shí),通過(guò)串口發(fā)送指定的指令進(jìn)行控制模塊發(fā)射;通過(guò)串口接收方式進(jìn)行紅外解碼操作,獲取遙控編碼信息。也可以使用2個(gè)模塊實(shí)現(xiàn)無(wú)線(xiàn)操控。

一、模塊來(lái)源

模塊實(shí)物展示:

wKgZPGeRy-GABgIaAAAr1NoWFAM28.webp


資料下載鏈接:
https://pan.baidu.com/s/1idRcrVCxQ5zWLh59EFpi9g
資料提取碼:n8ud

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

工作電壓:5V

供電電流:> 100mA

發(fā)射距離:6-10米(根據(jù)環(huán)境光線(xiàn)不同和收發(fā)情況有偏差)

接收距離:6-10米(和發(fā)射設(shè)備的功率有關(guān))

控制方式:串口

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

以上信息見(jiàn)廠(chǎng)家資料文件

三、移植過(guò)程

我們的目標(biāo)是將例程移植至CW32F030C8T6開(kāi)發(fā)板上【實(shí)現(xiàn)紅外信號(hào)接收與紅外信號(hào)發(fā)射的功能】。首先要獲取資料,查看數(shù)據(jù)手冊(cè)應(yīng)如何實(shí)現(xiàn)讀取數(shù)據(jù),再移植至我們的工程。

3.1查看資料

wKgZO2eRy-GADYvzAABtVOEqReU60.webp

發(fā)射和接收過(guò)程中指示燈會(huì)閃爍,否則常亮。

解碼:解碼時(shí)不需要發(fā)送任何指令,只需要拿起遙控對(duì)準(zhǔn)模塊的接收頭按下,這時(shí)模塊的串口就輸出該紅外編碼。通過(guò)串口調(diào)試助手查看到解碼的結(jié)果,結(jié)果輸出為“用戶(hù)碼1+用戶(hù)碼2+命令碼”三位。在做編碼發(fā)送時(shí)也只需要發(fā)送這三位即可。

查看解碼的結(jié)果方法

使用USB轉(zhuǎn)TTL串口調(diào)試模塊連接紅外發(fā)射接收模塊,打開(kāi)電腦串口助手,進(jìn)行調(diào)試。

wKgZPGeRy-GAHoEWAAEEXhJnNmQ48.webp

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

將串口調(diào)試模塊與紅外發(fā)射接收模塊進(jìn)行連接。

wKgZO2eRy-KANdLeAABNFugXoEI43.webp

將串口調(diào)試助手連接電腦,按照如下配置打開(kāi)串口調(diào)試軟件。使用紅外遙控器或者空調(diào)遙控器對(duì)著模塊發(fā)送紅外信號(hào),就會(huì)看到紅外發(fā)射接收模塊解析遙控器信號(hào)后,返回的解碼數(shù)據(jù)。圖中顯示的是美的空調(diào)遙控器的打開(kāi)空調(diào)信號(hào)的解碼數(shù)據(jù):E0 FD FD。

wKgZPGeRy-KABTFkAABNXD8T9CY19.webp

通信方式

這個(gè)紅外發(fā)射接收模塊,通過(guò)特定的串口協(xié)議,實(shí)現(xiàn)的紅外信號(hào)的接收和發(fā)送。需要注意的是本模塊收發(fā)的串口指令格式都為 16 進(jìn)制格式,即A1為0XA1。

wKgZO2eRy-OAbLiEAAB83iyez8013.webp

幀頭為通信地址,A1為默認(rèn)地址,而默認(rèn)地址是可以通過(guò)指令修改的,所以還有一個(gè)通用地址為0XFA,當(dāng)忘記了自己設(shè)置的地址,可以通過(guò)通用地址0XFA進(jìn)行修改。

操作位用于表示當(dāng)前指令用于實(shí)現(xiàn)什么功能,其定義的說(shuō)明見(jiàn)下表。

wKgZPGeRy-OAHWZ2AAAN_uEd0K099.webpwKgZO2eRy-OAWxAqAABZftQ4QA489.webp

發(fā)送反饋

每一個(gè)指令發(fā)送完畢之后,都有對(duì)應(yīng)的反饋信息。

wKgZPGeRy-SAOdc0AAAcrDBJbC058.webp示例: 發(fā)送紅外信號(hào)數(shù)據(jù) FA F1 E0 FD FD 后,返回 F1 說(shuō)明發(fā)送成功; 返回其他說(shuō)明發(fā)送失敗; 發(fā)送修改通信地址 FA F2 A5 00 00 后,返回 F2 說(shuō)明修改成功; 返回其他說(shuō)明修改失敗; 發(fā)送修改波特率 FA F3 02 00 00 后,返回 F3 說(shuō)明修改成功; 返回其他說(shuō)明修改失

實(shí)現(xiàn)代碼說(shuō)明:

定義一個(gè)長(zhǎng)度為5的unsigned char的數(shù)組:unsigned char send_data[5]={0};將指令填充至數(shù)組里。

unsigned char send_data[5]={0}; send_data[0] = 0XF1; //幀頭 send_data[1] = 0XF1; //操作位 send_data[2] = 0XE0; //地址1 send_data[3] = 0XFD; //地址2 send_data[4] = 0XFD; //鍵值

將這個(gè)數(shù)組通過(guò)串口發(fā)送給模塊。但是需要注意,因?yàn)槭怯蟹答佇畔⒌模瑸榱舜_定返回的數(shù)據(jù)是否正確,需要先清除之前接收的數(shù)據(jù),不管之前有沒(méi)有接收過(guò)數(shù)據(jù)都要清除。

infrared_receive_clear();//先清除接收的數(shù)據(jù) infrared_send_hex(send_data, 5);//發(fā)送數(shù)據(jù)

發(fā)送數(shù)據(jù)完畢后,等待串口接收到反饋的數(shù)據(jù),并且設(shè)置好如果長(zhǎng)時(shí)間接收不到,要結(jié)束接收,防止一直等待接收導(dǎo)致卡死。

time_out = 1000;//等待接收時(shí)間1000Ms //等待回應(yīng)數(shù)據(jù) //infrared_recv_flag != 1說(shuō)明串口沒(méi)有接收到數(shù)據(jù) while( infrared_recv_flag != 1 && time_out > 0 ) { time_out--; delay_1ms(1); } if( time_out > 0 )//沒(méi)有超時(shí) { infrared_recv_flag = 0;//清除標(biāo)志位 //如果接收到發(fā)送成功的回應(yīng)數(shù)據(jù) if( infrared_recv_buff[0] == 0XF1 ) return 1; else return 2;//接收的數(shù)據(jù)不對(duì) } return 0;//接收超時(shí)

3.2引腳選擇

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

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

wKgZO2eRy-SAFah2AAChJs2IQ-k11.webp

有串口1功能的引腳

wKgZPGeRy-WAO3iLAACmundpk9M36.webp

模塊接線(xiàn)圖

3.3移植至工程

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

在文件bsp_infrared.c中,編寫(xiě)如下代碼。

/* * Change Logs: * Date Author Notes * 2024-06-21 LCKFB-LP first version */ #include "bsp_infrared.h" #include "board.h" #include "bsp_uart.h" unsigned char infrared_recv_buff[USART2_RECEIVE_LENGTH];//串口接收緩存 uint16_t infrared_recv_length;//串口接收長(zhǎng)度 unsigned char infrared_recv_flag;//串口接收完畢標(biāo)志 1=接收完畢 0=未接收完畢 unsigned char device_addr = 0XA1;//默認(rèn)器件地址 unsigned char Infrared_emission = 0XF1;//紅外發(fā)射狀態(tài) unsigned char modified_addr = 0XF2;//修改設(shè)備地址 unsigned char modified_baud = 0XF3;//修改波特率 /****************************************************************** * 函 數(shù) 名 稱(chēng):Infrared_GPIO_Init * 函 數(shù) 說(shuō) 明:初始化萬(wàn)能紅外引腳 * 函 數(shù) 形 參:設(shè)置波特率 * 函 數(shù) 返 回:無(wú) * 作 者:LC * 備 注:萬(wàn)能紅外默認(rèn)波特率為9600 ******************************************************************/ void Infrared_GPIO_Init(uint32_t band_rate) { GPIO_InitTypeDef GPIO_InitStruct; // GPIO初始化結(jié)構(gòu)體 BSP_INFRARED_GPIO_RCC_ENABLE(); // 使能GPIO時(shí)鐘 BSP_INFRARED_UART_RCC_ENABLE(); // 使能UART時(shí)鐘 GPIO_InitStruct.Pins = BSP_INFRARED_TX_PIN; // GPIO引腳 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; // 推挽輸出 GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; // 輸出速度高 GPIO_Init(BSP_INFRARED_GPIO_PORT, &GPIO_InitStruct); // 初始化 GPIO_InitStruct.Pins = BSP_INFRARED_RX_PIN; // GPIO引腳 GPIO_InitStruct.Mode = GPIO_MODE_INPUT_PULLUP; // 上拉輸入 GPIO_Init(BSP_INFRARED_GPIO_PORT, &GPIO_InitStruct); // 初始化 BSP_INFRARED_AF_UART_TX(); // UART_TX復(fù)用 BSP_INFRARED_AF_UART_RX(); // UART_RX復(fù)用 // 配置UART USART_InitTypeDef USART_InitStructure; USART_InitStructure.USART_BaudRate = band_rate; // 波特率 USART_InitStructure.USART_Over = USART_Over_16; // 配置USART的過(guò)采樣率。 USART_InitStructure.USART_Source = USART_Source_PCLK; // 設(shè)置時(shí)鐘源 USART_InitStructure.USART_UclkFreq = 64000000; //設(shè)置USART時(shí)鐘頻率(和主頻一致即可) USART_InitStructure.USART_StartBit = USART_StartBit_FE; //RXD下降沿開(kāi)始 USART_InitStructure.USART_StopBits = USART_StopBits_1; // 停止位1 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(BSP_INFRARED, &USART_InitStructure); // 初始化串口1 // 優(yōu)先級(jí),無(wú)優(yōu)先級(jí)分組 NVIC_SetPriority(BSP_INFRARED_IRQ, 0); // UARTx中斷使能 NVIC_EnableIRQ(BSP_INFRARED_IRQ); // 使能UARTx RC中斷 USART_ITConfig(BSP_INFRARED, USART_IT_RC, ENABLE); } /************************************************ 函數(shù)名稱(chēng) : infrared_send_byte 功 能 : 串口發(fā)送一個(gè)字節(jié) 參 數(shù) : ucch:要發(fā)送的字節(jié) 返 回 值 : 作 者 : LC *************************************************/ void infrared_send_byte(uint8_t ucch) { // 發(fā)送一個(gè)字節(jié) USART_SendData_8bit(BSP_INFRARED, (uint8_t)ucch); // 等待發(fā)送完成 while( RESET == USART_GetFlagStatus(BSP_INFRARED, USART_FLAG_TXE) ){} } void infrared_send_hex(uint8_t *ch, int len) { while(len--) { infrared_send_byte(*ch++); } } /************************************************ 函數(shù)名稱(chēng) : infrared_receive_clear 功 能 : 清除串口接收的全部數(shù)據(jù) 參 數(shù) : 無(wú) 返 回 值 : 無(wú) 作 者 : LC *************************************************/ void infrared_receive_clear(void) { unsigned int i = 0; for( i = 0; i < USART2_RECEIVE_LENGTH; i++ ) { infrared_recv_buff[ i ] = 0; } infrared_recv_length = 0; infrared_recv_flag = 0; } /****************************************************************** * 函 數(shù) 名 稱(chēng):Infrared_emission_cmd * 函 數(shù) 說(shuō) 明:控制模塊發(fā)射紅外命令 * 函 數(shù) 形 參:Infrared_buff要發(fā)射的紅外信號(hào) len紅外信號(hào)長(zhǎng)度 * 函 數(shù) 返 回:0: 超時(shí)未接收到發(fā)射成功數(shù)據(jù) * 1: 發(fā)射成功 * 2: 接收的數(shù)據(jù)不是發(fā)射成功數(shù)據(jù) * 100:發(fā)射的數(shù)據(jù)不是3位 * 作 者:LC * 備 注:無(wú) ******************************************************************/ char Infrared_emission_cmd(unsigned char* Infrared_buff, char len) { unsigned char send_data[5] = {0};//必須賦初值 unsigned int time_out = 1000; //超時(shí)時(shí)間,單位MS // //如果要發(fā)送的數(shù)據(jù)長(zhǎng)度不對(duì) if( (len < 3) || (len > 3) ) return 100; send_data[0] = device_addr; //設(shè)備地址 send_data[1] = Infrared_emission; //操作位 send_data[2] = Infrared_buff[0]; //數(shù)據(jù)位1 send_data[3] = Infrared_buff[1]; //數(shù)據(jù)位2 send_data[4] = Infrared_buff[2]; //數(shù)據(jù)位3 infrared_receive_clear();//先清除接收的數(shù)據(jù) infrared_send_hex(send_data, 5);//發(fā)送數(shù)據(jù) //等待回應(yīng)數(shù)據(jù) while( infrared_recv_flag != 1 && time_out > 0 ) { time_out--; delay_ms(1); } if( time_out > 0 )//沒(méi)有超時(shí) { infrared_recv_flag = 0; //如果接收到通信地址修改成功的回應(yīng)數(shù)據(jù) if( infrared_recv_buff[0] == 0XF1 ) return 1; else return 2; } return 0; } /****************************************************************** * 函 數(shù) 名 稱(chēng):modified_addr_cmd * 函 數(shù) 說(shuō) 明:修改串口地址命令 * 函 數(shù) 形 參:addr_value 要修改的串口地址 * 函 數(shù) 返 回:0: 超時(shí)未接收到修改成功數(shù)據(jù) * 1: 修改成功 * 2: 接收的數(shù)據(jù)不是修改成功數(shù)據(jù) * 作 者:LC * 備 注:無(wú) ******************************************************************/ char modified_addr_cmd(unsigned int addr_value) { unsigned char send_data[5] = {0};//必須賦初值 unsigned int time_out = 1000; //超時(shí)時(shí)間,單位MS send_data[0] = device_addr; //設(shè)備地址 send_data[1] = modified_addr; //操作位 send_data[2] = addr_value; //數(shù)據(jù)位 infrared_receive_clear();//先清除接收的數(shù)據(jù) infrared_send_hex(send_data, 5);//發(fā)送數(shù)據(jù) //等待回應(yīng)數(shù)據(jù) while( infrared_recv_flag != 1 && time_out > 0 ) { time_out--; delay_ms(1); } if( time_out > 0 )//沒(méi)有超時(shí) { infrared_recv_flag = 0; //如果接收到通信地址修改成功的回應(yīng)數(shù)據(jù) if( infrared_recv_buff[0] == 0XF2 ) return 1; else return 2; } return 0; } /****************************************************************** * 函 數(shù) 名 稱(chēng):modified_baud_cmd * 函 數(shù) 說(shuō) 明:修改波特率命令 * 函 數(shù) 形 參:baud_value 要修改的波特率,可以輸入的值有: * 4800、9600、19200、57600 * 函 數(shù) 返 回:0: 超時(shí)未接收到修改成功數(shù)據(jù) * 1: 修改成功 * 2: 接收的數(shù)據(jù)不是修改成功數(shù)據(jù) * 作 者:LC * 備 注: ******************************************************************/ char modified_baud_cmd(unsigned int baud_value) { unsigned char send_data[5] = {0};//必須賦初值 unsigned int time_out = 1000; //超時(shí)時(shí)間,單位MS send_data[0] = device_addr; //設(shè)備地址 send_data[1] = modified_baud; //操作位 switch(baud_value)//要修改的波特率值 { case 4800: send_data[2] = 0X01; break; case 9600: send_data[2] = 0X02; break; case 19200: send_data[2] = 0X03; break; case 57600: send_data[2] = 0X04; break; } infrared_receive_clear();//先清除接收的數(shù)據(jù) infrared_send_hex(send_data, 5);//發(fā)送數(shù)據(jù) //等待回應(yīng)數(shù)據(jù) while( infrared_recv_flag != 1 && time_out > 0 ) { time_out--; delay_ms(1); } if( time_out > 0 )//沒(méi)有超時(shí) { infrared_recv_flag = 0; //如果接收到波特率設(shè)置成功的回應(yīng)數(shù)據(jù) if( infrared_recv_buff[0] == 0XF3 ) return 1; else return 2; } return 0; } /************************************************ 函數(shù)名稱(chēng) : BSP_INFRARED_IRQHandler 功 能 : 串口1接收中斷服務(wù)函數(shù) 參 數(shù) : 無(wú) 返 回 值 : 無(wú) 作 者 : LC *************************************************/ void BSP_INFRARED_IRQHandler(void) { if(USART_GetITStatus(BSP_INFRARED, USART_IT_RC) == SET)//判斷是不是真的有接收中斷發(fā)生 { infrared_recv_buff[infrared_recv_length++] = USART_ReceiveData(BSP_INFRARED); // 把接收到的數(shù)據(jù)放到緩沖區(qū)中 infrared_recv_buff[infrared_recv_length] = ''; infrared_recv_flag = 1; USART_ClearITPendingBit(BSP_INFRARED, USART_IT_RC); //已經(jīng)處理就清楚標(biāo)志位 } }

在文件bsp_infrared.h中,編寫(xiě)如下代碼。

/* * Change Logs: * Date Author Notes * 2024-06-21 LCKFB-LP first version */ #ifndef _BSP_infrared_H_ #define _BSP_infrared_H_ #include "board.h" #define BSP_INFRARED_GPIO_RCC_ENABLE() __RCC_GPIOA_CLK_ENABLE() // GPIO的時(shí)鐘 #define BSP_INFRARED_UART_RCC_ENABLE() __RCC_UART2_CLK_ENABLE() // 串口2的時(shí)鐘 #define BSP_INFRARED_AF_UART_TX() PA02_AFx_UART2TXD() // GPIO的引腳復(fù)用 #define BSP_INFRARED_AF_UART_RX() PA03_AFx_UART2RXD() // GPIO的引腳復(fù)用 #define BSP_INFRARED_GPIO_PORT CW_GPIOA // GPIO的端口 #define BSP_INFRARED_TX_PIN GPIO_PIN_2 // 串口TX的引腳 #define BSP_INFRARED_RX_PIN GPIO_PIN_3 // 串口RX的引腳 #define BSP_INFRARED CW_UART2 // 串口2 #define BSP_INFRARED_IRQ UART2_IRQn // 串口2中斷 #define BSP_INFRARED_IRQHandler UART2_IRQHandler // 串口2中斷服務(wù)函數(shù) #define USART2_RECEIVE_LENGTH 1024 //串口最大接收長(zhǎng)度 extern unsigned char infrared_recv_buff[USART2_RECEIVE_LENGTH];//串口接收緩存 extern uint16_t infrared_recv_length;//串口接收長(zhǎng)度 extern unsigned char infrared_recv_flag;//串口接收完畢標(biāo)志 1=接收完畢 0=未接收完畢 void Infrared_GPIO_Init(uint32_t band_rate);//初始化萬(wàn)能紅外引腳 void infrared_receive_clear(void);//清除 char Infrared_emission_cmd(unsigned char* Infrared_buff, char len);//紅外發(fā)射命令 char modified_addr_cmd(unsigned int addr_value);//修改串口地址命令 char modified_baud_cmd(unsigned int baud_value);//修改波特率命令 #endif

四、移植驗(yàn)證

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

/* * Change Logs: * Date Author Notes * 2024-06-21 LCKFB-LP first version */ #include "board.h" #include "stdio.h" #include "bsp_uart.h" #include "bsp_infrared.h" //自測(cè)的 打開(kāi)美的空調(diào) 的紅外信號(hào) unsigned char Midea_Open[3] = {0XE0,0XFD,0XFD}; int32_t main(void) { board_init(); // 開(kāi)發(fā)板初始化 uart1_init(115200); // 串口1波特率115200 Infrared_GPIO_Init(9600); printf("Demo Startrn"); while(1) { printf("rndat = %drn",Infrared_emission_cmd(Midea_Open,3) ); } }

移植現(xiàn)象:移植現(xiàn)象:使用兩個(gè)紅外發(fā)射接收模塊,一個(gè)接入開(kāi)發(fā)板負(fù)責(zé)發(fā)射,一個(gè)接入U(xiǎn)SB轉(zhuǎn)TTL模塊,查看發(fā)射數(shù)據(jù)是否正確。

這里串口調(diào)試助手查看的是USB轉(zhuǎn)TTL模塊的串口!

wKgZO2eRy-WAAccJAACkBCHIOGA50.webp

模塊移植成功案例代碼:

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

提取碼:LCKF


審核編輯 黃宇

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

    關(guān)注

    6

    文章

    957

    瀏覽量

    54911
  • 紅外解碼
    +關(guān)注

    關(guān)注

    1

    文章

    16

    瀏覽量

    11495
  • CW32
    +關(guān)注

    關(guān)注

    1

    文章

    218

    瀏覽量

    706
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    CW32快速開(kāi)發(fā)入門(mén)

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

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

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

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

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

    紅外通信模塊設(shè)計(jì)教程和關(guān)于單片機(jī)紅外開(kāi)發(fā)以及紅外解碼知識(shí)

    紅外通信模塊設(shè)計(jì)教程和關(guān)于單片機(jī)紅外開(kāi)發(fā)以及紅外解碼知識(shí)
    發(fā)表于 09-04 08:50 ?30次下載
    <b class='flag-5'>紅外</b>通信<b class='flag-5'>模塊</b>設(shè)計(jì)教程和關(guān)于單片機(jī)<b class='flag-5'>紅外</b>開(kāi)發(fā)以及<b class='flag-5'>紅外</b>編<b class='flag-5'>解碼</b>知識(shí)

    GSM模塊短信PDU編碼解碼的實(shí)用資料分享.pdf

    文件是GSM模塊短信PDU編碼解碼的實(shí)用資料
    發(fā)表于 04-23 11:22 ?8次下載
    GSM<b class='flag-5'>模塊</b>短信PDU<b class='flag-5'>編碼</b><b class='flag-5'>解碼</b>的實(shí)用資料分享.pdf

    51單片機(jī)驅(qū)動(dòng)紅外解碼模塊(YS-IRTM)

    紅外信號(hào),用串口助手調(diào)試非常方便模塊組成紅外發(fā)射頭:用于發(fā)射紅外信號(hào), 波長(zhǎng)為940nm 38k NEC編碼信號(hào)的發(fā)射
    發(fā)表于 11-23 17:06 ?31次下載
    51單片機(jī)驅(qū)動(dòng)<b class='flag-5'>紅外</b>編<b class='flag-5'>解碼</b><b class='flag-5'>模塊</b>(YS-IRTM)

    cw32和stm32的區(qū)別

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

    cw32和gd32的區(qū)別

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

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

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

    CW32實(shí)時(shí)時(shí)鐘(RTC)介紹

    CW32實(shí)時(shí)時(shí)鐘(RTC)介紹
    的頭像 發(fā)表于 10-24 15:36 ?1211次閱讀
    <b class='flag-5'>CW32</b>實(shí)時(shí)時(shí)鐘(RTC)介紹

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

    基于CW32的RC522刷卡模塊的應(yīng)用
    的頭像 發(fā)表于 11-02 14:53 ?1193次閱讀
    基于<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 ?845次閱讀
    基于<b class='flag-5'>CW32</b>的物聯(lián)網(wǎng)應(yīng)用

    基于CW32的遙控循跡小車(chē)

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

    CW32模塊使用 紅外接收模塊

    靜態(tài)電流3-5uA,動(dòng)態(tài)電流3-5mA。 以上信息見(jiàn)廠(chǎng)家資料文件 三、移植過(guò)程 我們的目標(biāo)是將例程移植至CW32F030C8T6開(kāi)發(fā)板上【能夠?qū)崿F(xiàn)紅外信號(hào)接收的功能】。首先要獲取資料
    的頭像 發(fā)表于 01-23 13:16 ?30次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 <b class='flag-5'>紅外</b>接收<b class='flag-5'>模塊</b>
    主站蜘蛛池模板: 国产精品毛片一区二区三区| 乱小说录目伦800| 欧美一级黄色影片| 免费看色视频| 456成人网| 色综网| www懂爱| 麻豆国产一区二区在线观看| 偷偷要色偷偷| 全免费一级午夜毛片| 成人亚洲视频| 美国色天使| 好吊操免费视频| 免看一级a一片成人123| 四虎国产精品永久在线网址| 调教双性学霸美人| 日本丝瓜着色视频| 一区二区三区四区视频在线观看 | 最好看的2019中文字幕1| h网站在线观看| 日本啪啪小视频| 国产美女被艹| 狠狠干免费视频| 国产香蕉在线视频| 奇米色88欧美一区二区| 丁香亚洲综合五月天婷婷| 国产午夜不卡在线观看视频666| 26uuu另类欧美亚洲曰本| 亚洲精品www| 日本亚洲视频| 天天视频国产精品| 四虎电影免费观看网站| 女人张腿让男桶免费视频网站| 国产成人黄网址在线视频| 成人欧美一区二区三区黑人3p| 五月天婷婷在线观看| 婷婷亚洲综合五月天在线| 久久啊| 69japanese日本100| 久久性生活| 日韩精品视频免费观看|