1. 前言
本教程基于【N32WB03x SDK使用指南】的開發(fā)環(huán)境,結(jié)合官方教程開展的N32WB03xSTB開發(fā)板ADC實(shí)驗(yàn),主要由讀取兩路ADC并打印實(shí)驗(yàn)和讀取板載芯片溫度實(shí)驗(yàn)兩部分組成。
2. ADC 功能描述
2.1 輸入通道和輸入電壓范圍
ADC 是一種高速逐次逼近型模擬數(shù)字轉(zhuǎn)換器。有多達(dá) 8 個通道,5 個外部單端,1 個差分 MIC 和 2 個內(nèi)部通道。內(nèi)部通道包括 VCC 檢測通道和溫度傳感器通道。各通道的 A/D 轉(zhuǎn)換可以單次、連續(xù)模式執(zhí)行。配置 ADC_CTRL.ADC_CH_SEL 用于 ADC 輸入通道選擇。
000(默認(rèn))選擇差分 MIC 通路,對應(yīng) PB11/PB13,001~010 用于片外預(yù)分壓輸入,對應(yīng)PB9/PB10,無阻性負(fù)載,檢測范圍 0.125~0.85V,011~101 用于直接檢測,對應(yīng) PB6~PB8,輸入阻抗360K?,檢測范圍 0.5~3.5V,110 用于 VCC 檢測,111 用于片內(nèi)溫度傳感器電壓檢測。
2.2 ADC 開關(guān)控制
通過設(shè)置 ADC_CTRL 寄存器的 ADC_EN 位可啟動 ADC。當(dāng)?shù)谝淮卧O(shè)置 ADC_EN 位時,ADC 在開始精確轉(zhuǎn)換前需要一個穩(wěn)定時間 tSTAB 64 cycle。之后每個 Cycle 進(jìn)行一次轉(zhuǎn)換。在單次模式下,轉(zhuǎn)換完成后,硬件自動關(guān)閉 ADC_EN 位。如使能中斷,可產(chǎn)生轉(zhuǎn)換結(jié)束中斷。用戶可以通過查詢 ADC_SR 里面的 ADC_DONE_F 確認(rèn)轉(zhuǎn)換是否完成。在連續(xù)模式下,通過清除 ADC_EN 位可以停止轉(zhuǎn)換。輸入通道切換前需要先關(guān)閉 ADC_EN 位。
2.3 轉(zhuǎn)換模式
2.3.1 單次轉(zhuǎn)換模式
每個轉(zhuǎn)換有兩個階段:采樣階段和轉(zhuǎn)換階段。單次轉(zhuǎn)換模式下,ADC 只執(zhí)行一次轉(zhuǎn)換。設(shè)置 ADC_CTRL.ADC_CH_SEL 選擇輸入通道后,可通過設(shè)置ADC_CTRL 寄存器的 ADC_EN 位啟動。一旦選擇通道的轉(zhuǎn)換完成:
-
轉(zhuǎn)換數(shù)據(jù)被儲存在 16 位 ADC_DAT 寄存器中
-
ADC_DONE_F(轉(zhuǎn)換結(jié)束)標(biāo)志被設(shè)置
-
如果設(shè)置了ADC_DONE_IE,則產(chǎn)生中斷。
轉(zhuǎn)換本身很快,只需要一個 adcclk 的時鐘周期。但單次模式下,ADCEN 或 ADCSEL 修改后,輸入通道的切換電路需要 64 個adcclk 穩(wěn)定時間。
2.3.2 連續(xù)轉(zhuǎn)換模式
將 ADC_CTRL.ADC_MODE 置為“1”可以在連續(xù)模式下使用 ADC,在連續(xù)轉(zhuǎn)換模式中,當(dāng)前面 ADC 轉(zhuǎn)換一結(jié)束馬上就啟動另一次轉(zhuǎn)換。設(shè)置 ADC_CTRL.ADC_CH_SEL 選擇輸入通道后,可通過設(shè)置ADC_CTRL 寄存器的 ADC_EN 位來觸發(fā)第一次轉(zhuǎn)換,但之后,將每個 adcclk 周期自動生成新的轉(zhuǎn)換數(shù)據(jù)。支持過采樣率設(shè)置,配置值 ADC_OVR_SAMP_CNT. OS_CNT_LD_CNT 需要>=2,OS_CNT_LD_CNT+1個數(shù)據(jù)采樣一個數(shù)據(jù)。
每個轉(zhuǎn)換后:
-
轉(zhuǎn)換數(shù)據(jù)被儲存在 16 位的 ADC_DAT 寄存器中
-
使能 DMA 模式,每次轉(zhuǎn)換后會產(chǎn)生 DMA 請求
2.4 模擬看門狗
如果被 ADC 轉(zhuǎn)換的模擬 PB10 電壓低于低閾值或高于高閾值,AWDG 模擬看門狗狀態(tài)位被設(shè)置。閾值位于ADC_ WDHIGH 和 ADC_WDLOW 寄存器的最低 10 個有效位中。通過設(shè)置 ADC_CTRL 寄存器的 AWD_IE位以允許產(chǎn)生相應(yīng)中斷。
3. ADC 實(shí)驗(yàn)
3.1 兩路ADC并打印實(shí)驗(yàn)
項(xiàng)目文件地址:N32WB03x_SDK V1.2.0N32WB03x_SDK V1.2.0projects 32wb03x_EVALperipheralADCADC_SingleReadMDK-ARM
3.1.1 打開工程
keil5 打開后查看相關(guān)程序函數(shù)
項(xiàng)目簡介在readme.txt
1、功能說明
此例程提供了ADC單次轉(zhuǎn)換的實(shí)現(xiàn)。
2、使用環(huán)境
軟件開發(fā)環(huán)境:KEIL MDK-ARM V5.26.2.0
硬件環(huán)境:
1、基于N32WB031_STB開發(fā)板
2、MCU:N32WB031
3、使用說明
1、系統(tǒng)時鐘:64MHz
2、ADC通道:ADC_CTRL_CH_1(PB10)、ADC_CTRL_CH_3(PB8)
日志打?。簭哪J?DEMO 板 PB6(TX),波特率:115200
測試步驟與現(xiàn)象:
a,編譯下載代碼復(fù)位運(yùn)行
b,從串口看打印信息,驗(yàn)證結(jié)果兩個通道ADC轉(zhuǎn)換的電壓
4、注意事項(xiàng)
開發(fā)板的J15 短接右邊,J16 短接左邊,選擇 IO 連接到排針。
(左右移動查看全部內(nèi)容)
3.1.2 配置工程
主程序main.c
/*****************************************************************************
* Copyright (c) 2019, Nations Technologies Inc.
*
* All rights reserved.
* ****************************************************************************
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the disclaimer below.
*
* Nations' name may not be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY NATIONS "AS IS" AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
* DISCLAIMED. IN NO EVENT SHALL NATIONS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* ****************************************************************************/
/**
* [url=home.php?mod=space&uid=1455510]@file[/url] main.c
* [url=home.php?mod=space&uid=40524]@author[/url] Nations Firmware Team
* [url=home.php?mod=space&uid=644434]@version[/url] v1.0.2
*
* [url=home.php?mod=space&uid=855824]@copyright[/url] Copyright (c) 2019, Nations Technologies Inc. All rights reserved.
*/
void RCC_Configuration(void);
void GPIO_Configuration(void);
void ADC_Configuration(void);
uint16_t ADCConvertedValue[2];
uint32_t voltage[2] = {0};
/**
* [url=home.php?mod=space&uid=2666770]@Brief[/url] Main program
*/
int main(void)
{
log_init();
log_info("
this is adc single read Demo.
");
log_info("Please make sure J15 and J16 connect the IO to pin on board!
");
/* System Clocks Configuration */
RCC_Configuration();
/* Configure the GPIO ports */
GPIO_Configuration();
ADC_EnableBypassFilter(ADC, ENABLE);
while (1)
{
ADC_ConfigChannel(ADC, ADC_CTRL_CH_3);
ADC_Enable(ADC, ENABLE);
while(ADC_GetFlagStatus(ADC,ADC_FLAG_DONE) == RESET);
ADC_ClearFlag(ADC,ADC_FLAG_DONE);
ADCConvertedValue[1] = ADC_GetDat(ADC);
voltage[1] = ADC_ConverValueToVoltage(ADCConvertedValue[1], ADC_CTRL_CH_3);
log_info("ADC CH3 value: %4d | ADC CH3 vol_mV: %4d .
",ADCConvertedValue[1],voltage[1]);
ADC_ConfigChannel(ADC, ADC_CTRL_CH_1);
ADC_Enable(ADC, ENABLE);
while(ADC_GetFlagStatus(ADC,ADC_FLAG_DONE) == RESET);
ADC_ClearFlag(ADC,ADC_FLAG_DONE);
ADCConvertedValue[0] = ADC_GetDat(ADC);
voltage[0] = ADC_ConverValueToVoltage(ADCConvertedValue[0], ADC_CTRL_CH_1);
log_info("ADC CH1 value: %4d | ADC CH1 vol_mV: %4d .
",ADCConvertedValue[0],voltage[0]);
Delay_ms(1000);
}
}
/**
* @brief Configures the different system clocks.
*/
void RCC_Configuration(void)
{
/* Enable peripheral clocks */
/* Enable GPIOB clocks */
RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOB, ENABLE);
/* Enable ADC clocks */
RCC_EnableAHBPeriphClk(RCC_AHB_PERIPH_ADC, ENABLE);
RCC_ConfigAdcClk(RCC_ADCCLK_SRC_AUDIOPLL);
/* enable ADC 4M clock */
RCC_Enable_ADC_CLK_SRC_AUDIOPLL(ENABLE);
}
/**
* @brief Configures the different GPIO ports.
*/
void GPIO_Configuration(void)
{
GPIO_InitType GPIO_InitStructure;
GPIO_InitStruct(&GPIO_InitStructure);
/* Configure PB.10 (ADC Channel1) PB.8 (ADC Channel3) as analog input --------*/
GPIO_InitStructure.Pin = GPIO_PIN_10|GPIO_PIN_8;
GPIO_InitStructure.GPIO_Mode = GPIO_MODE_ANALOG;
GPIO_InitPeripheral(GPIOB, &GPIO_InitStructure);
}
/**
* @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred.
* @param file pointer to the source file name
* @param line assert_param error line source number
*/
void assert_failed(const uint8_t* expr, const uint8_t* file, uint32_t line)
{
/* User can add his own implementation to report the file name and line number,
ex: printf("Wrong parameters value: file %s on line %d
", file, line) */
while (1)
{
}
}
/**
* @}
*/
/**
* @}
*/
/*************** (C) COPYRIGHT Nations Technologies Inc *****END OF FILE***************/
(左右移動查看全部內(nèi)容)
此部分不修改
3.1.3 編譯下載
N32WB03xSTB開發(fā)板自帶下載器,官方已經(jīng)配置好了,直接連接Type-C編譯下載
3.1.4 調(diào)試驗(yàn)證
打開串口調(diào)試助手,修改相關(guān)配置。連接開發(fā)板,打印效果如下
此時可以用GND或者3.3V電源用杜邦線短接ADC_CTRL_CH_1(PB10)、ADC_CTRL_CH_3(PB8)
,也會有相關(guān)大小變化
[11:38:01.339]收←◆ADC CH3 value: 64 | ADC CH3 vol_mV: 77 .
ADC CH1 value: 502 | ADC CH1 vol_mV: 496 .
[11:38:02.373]收←◆ADC CH3 value: 65 | ADC CH3 vol_mV: 81 .
ADC CH1 value: 527 | ADC CH1 vol_mV: 523 .
[11:38:03.408]收←◆ADC CH3 value: 64 | ADC CH3 vol_mV: 77 .
ADC CH1 value: 880 | ADC CH1 vol_mV: 908 .
[11:38:04.442]收←◆ADC CH3 value: 66 | ADC CH3 vol_mV: 86 .
ADC CH1 value: 159 | ADC CH1 vol_mV: 123 .
[11:38:05.477]收←◆ADC CH3 value: 65 | ADC CH3 vol_mV: 81 .
ADC CH1 value: 750 | ADC CH1 vol_mV: 767 .
[11:38:06.511]收←◆ADC CH3 value: 59 | ADC CH3 vol_mV: 55 .
ADC CH1 value: 789 | ADC CH1 vol_mV: 809 .
(左右移動查看全部內(nèi)容)
3.2 讀取板載芯片溫度實(shí)驗(yàn)
項(xiàng)目文件地址:N32WB03x_SDK V1.2.0projects 32wb03x_EVALperipheralADCADC_TemperatureMDK-ARM
3.2.1 打開工程
keil5 打開后查看相關(guān)程序函數(shù)
項(xiàng)目簡介在readme.txt
1、功能說明
此例程提供了ADC溫度傳感通道轉(zhuǎn)換的實(shí)現(xiàn)。
2、使用環(huán)境
軟件開發(fā)環(huán)境:KEIL MDK-ARM V5.26.2.0
硬件環(huán)境:
1、基于N32WB031_STB開發(fā)板
2、MCU:N32WB031
3、使用說明
1、系統(tǒng)時鐘:64MHz
2、ADC通道:ADC_CTRL_CH_7(TS)
日志打?。簭哪J?DEMO 板 PB6(TX),波特率:115200
測試步驟與現(xiàn)象:
a,編譯下載代碼復(fù)位運(yùn)行
b,從串口看打印信息,驗(yàn)證溫度傳感通道ADC轉(zhuǎn)換的結(jié)果
4、注意事項(xiàng)
無
(左右移動查看全部內(nèi)容)
3.2.2 配置工程
主程序main.c
/*****************************************************************************
* Copyright (c) 2019, Nations Technologies Inc.
*
* All rights reserved.
* ****************************************************************************
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the disclaimer below.
*
* Nations' name may not be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY NATIONS "AS IS" AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
* DISCLAIMED. IN NO EVENT SHALL NATIONS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* ****************************************************************************/
/**
* @file main.c
* @author Nations Firmware Team
* @version v1.0.2
*
* @copyright Copyright (c) 2019, Nations Technologies Inc. All rights reserved.
*/
/* Includes ------------------------------------------------------------------*/
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
uint16_t ADCConvertedBuffer[ADC_BUF_SIZE];
uint16_t ADCConvertedValue;
uint32_t Voltage_mA;
float Temperature;
/* Private function prototypes -----------------------------------------------*/
void RCC_Configuration(void);
void GPIO_Configuration(void);
void ADC_Configuration(void);
/* Private functions ---------------------------------------------------------*/
/**
* @brief Main program
*/
int main(void)
{
DMA_InitType DMA_InitStructure;
uint32_t adc_sum,i;
log_init();
log_info("
this is adc temperature sensor read demo.
");
/* System Clocks Configuration */
RCC_Configuration();
/* Configure the GPIO ports */
GPIO_Configuration();
/* DMA channel1 configuration ----------------------------------------------*/
DMA_DeInit(DMA_CH1);
DMA_InitStructure.PeriphAddr = (uint32_t)&ADC->DAT;
DMA_InitStructure.MemAddr = (uint32_t)ADCConvertedBuffer;
DMA_InitStructure.Direction = DMA_DIR_PERIPH_SRC;
DMA_InitStructure.BufSize = ADC_BUF_SIZE;
DMA_InitStructure.PeriphInc = DMA_PERIPH_INC_DISABLE;
DMA_InitStructure.DMA_MemoryInc = DMA_MEM_INC_ENABLE;
DMA_InitStructure.PeriphDataSize = DMA_PERIPH_DATA_SIZE_HALFWORD;
DMA_InitStructure.MemDataSize = DMA_MemoryDataSize_HalfWord;
DMA_InitStructure.CircularMode = DMA_MODE_CIRCULAR;
DMA_InitStructure.Priority = DMA_PRIORITY_HIGH;
DMA_InitStructure.Mem2Mem = DMA_M2M_DISABLE;
DMA_Init(DMA_CH1, &DMA_InitStructure);
DMA_RequestRemap(DMA_REMAP_ADC, DMA, DMA_CH1, ENABLE);
/* Enable DMA channel 1 */
DMA_EnableChannel(DMA_CH1, ENABLE);
ADC_SetOverSampleCounter(ADC,3);
ADC_EnableBypassFilter(ADC, ENABLE);
ADC_ConfigChannel(ADC, ADC_CTRL_CH_7);
ADC_ConfigContinuousMode(ADC, ENABLE);
ADC_EnableDMA(ADC, ENABLE);
ADC_EnableTS(ADC, ENABLE);
ADC_Enable(ADC, ENABLE);
while (1)
{
/* Transfer complete */
while (!DMA_GetFlagStatus(DMA_FLAG_TC1, DMA));
adc_sum = 0;
for(i=0;i {
adc_sum += ADCConvertedBuffer[i];
}
ADCConvertedValue = adc_sum/ADC_BUF_SIZE;
Temperature = ADC_ConverValueToTemperature(ADCConvertedValue);
log_info("ADC temperature sensor: %.2f C
",Temperature);
Delay_ms(1000);
}
}
/**
* @brief Configures the different system clocks.
*/
void RCC_Configuration(void)
{
/* Enable peripheral clocks */
RCC_EnableAHBPeriphClk(RCC_AHB_PERIPH_DMA, ENABLE);
/* Enable GPIOB clocks */
RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOB, ENABLE);
/* Enable ADC clocks */
RCC_EnableAHBPeriphClk(RCC_AHB_PERIPH_ADC, ENABLE);
RCC_ConfigAdcClk(RCC_ADCCLK_SRC_AUDIOPLL);
/* enable ADC 4M clock */
RCC_Enable_ADC_CLK_SRC_AUDIOPLL(ENABLE);
}
/**
* @brief Configures the different GPIO ports.
*/
void GPIO_Configuration(void)
{
GPIO_InitType GPIO_InitStructure;
GPIO_InitStruct(&GPIO_InitStructure);
/* Configure PB.10 (ADC Channel1) PB.7 (ADC Channel4) as analog input --------*/
GPIO_InitStructure.Pin = GPIO_PIN_10|GPIO_PIN_7;
GPIO_InitStructure.GPIO_Mode = GPIO_MODE_ANALOG;
GPIO_InitPeripheral(GPIOB, &GPIO_InitStructure);
}
/**
* @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred.
* @param file pointer to the source file name
* @param line assert_param error line source number
*/
void assert_failed(const uint8_t* expr, const uint8_t* file, uint32_t line)
{
/* User can add his own implementation to report the file name and line number,
ex: printf("Wrong parameters value: file %s on line %d
", file, line) */
while (1)
{
}
}
/**
* @}
*/
/**
* @}
*/
/*************** (C) COPYRIGHT Nations Technologies Inc *****END OF FILE***************/;i++)<>
(左右移動查看全部內(nèi)容)
此部分不修改
3.2.3 編譯下載
N32WB03xSTB開發(fā)板自帶下載器,官方已經(jīng)配置好了,直接連接Type-C編譯下載
3.1.4 調(diào)試驗(yàn)證
打開串口調(diào)試助手,修改相關(guān)配置。連接開發(fā)板,打印效果如下
此時可以用手指捂住芯片,溫度會升高,也會有相關(guān)大小變化
[11:43:40.101]收←◆
this is adc temperature sensor read demo.
ADC temperature sensor: 25.00 C
[11:43:41.134]收←◆ADC temperature sensor: 25.47 C
[11:43:42.161]收←◆ADC temperature sensor: 24.53 C
[11:43:43.189]收←◆ADC temperature sensor: 24.07 C
[11:43:44.218]收←◆ADC temperature sensor: 25.47 C
[11:43:45.244]收←◆ADC temperature sensor: 25.93 C
[11:43:46.271]收←◆ADC temperature sensor: 26.87 C
[11:43:47.299]收←◆ADC temperature sensor: 26.40 C
[11:43:48.326]收←◆ADC temperature sensor: 26.40 C
[11:43:49.352]收←◆ADC temperature sensor: 26.87 C
(左右移動查看全部內(nèi)容)
C實(shí)驗(yàn)就結(jié)束啦!
本文由電子發(fā)燒友社區(qū)發(fā)布,轉(zhuǎn)載請注明以上來源。如需社區(qū)合作及入群交流,請?zhí)砑?/span>微信EEFans0806,或者發(fā)郵箱liuyong@huaqiu.com。
熱門推薦干貨好文
1、社區(qū)精選!PCB多層板設(shè)計(jì)挑戰(zhàn)賽作品集合
2、開源作品秀,教你如何DIY一款自己的聲源跟蹤小車
3、從零入門物聯(lián)網(wǎng)OH開源平臺,從簡單到高階項(xiàng)目,創(chuàng)客、電子愛好者都愛用!
4、低成本ESP32方案,支持OpenHarmony系統(tǒng)開發(fā)(附10+項(xiàng)目樣例Demo)
5、從0到1玩轉(zhuǎn)瑞薩RA4系列開發(fā)板,教你變著花樣玩板子
6、四核64位,超強(qiáng)CPU ,看RK3568“競”開發(fā)板DEMO!
7、人工智能也能這么玩, 簡單快速入手,還能自定義AI運(yùn)算
8、全部開源 | 基于全志V85X的運(yùn)動相機(jī),工業(yè)網(wǎng)關(guān),可穿戴式攝像頭
9、高性能雙核RISC-V,滿足大多數(shù)開發(fā),這款國產(chǎn)MCU工程師都愛了
原文標(biāo)題:【項(xiàng)目移植】N32WB03xSTB開發(fā)板ADC實(shí)驗(yàn)
文章出處:【微信公眾號:電子發(fā)燒友論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
電子技術(shù)
+關(guān)注
關(guān)注
18文章
853瀏覽量
55510 -
電子發(fā)燒友論壇
+關(guān)注
關(guān)注
4文章
197瀏覽量
990
原文標(biāo)題:【項(xiàng)目移植】N32WB03xSTB開發(fā)板ADC實(shí)驗(yàn)
文章出處:【微信號:gh_9b9470648b3c,微信公眾號:電子發(fā)燒友論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論