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

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

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

3天內不再提示

第十四章 ADC(下篇)

W55MH32 ? 來源:W55MH32 ? 作者:W55MH32 ? 2025-05-29 17:48 ? 次閱讀

單芯片解決方案,開啟全新體驗——W55MH32 高性能以太網單片機

W55MH32是WIZnet重磅推出的高性能以太網單片機,它為用戶帶來前所未有的集成化體驗。這顆芯片將強大的組件集于一身,具體來說,一顆W55MH32內置高性能Arm? Cortex-M3核心,其主頻最高可達216MHz;配備1024KB FLASH與96KB SRAM,滿足存儲與數據處理需求;集成TOE引擎,包含WIZnet全硬件TCP/IP協議棧、內置MAC以及PHY,擁有獨立的32KB以太網收發緩存,可供8個獨立硬件socket使用。如此配置,真正實現了All-in-One解決方案,為開發者提供極大便利。

在封裝規格上,W55MH32 提供了兩種選擇:QFN68和QFN100。

W55MH32Q采用QFN68封裝版本,尺寸為8x8mm,它擁有36個GPIO、3個ADC、12通道DMA、17個定時器、2個I2C、3個串口、2個SPI接口(其中1個帶I2S接口復用)、1個CAN以及1個USB2.0。在保持與同系列其他版本一致的核心性能基礎上,僅減少了部分GPIO以及SDIO接口,其他參數保持一致,性價比優勢顯著,尤其適合網關模組等對空間布局要求較高的場景。緊湊的尺寸和精簡化外設配置,使其能夠在有限空間內實現高效的網絡連接與數據交互,成為物聯網網關、邊緣計算節點等緊湊型設備的理想選擇。 同系列還有QFN100封裝的W55MH32L版本,該版本擁有更豐富的外設資源,適用于需要多接口擴展的復雜工控場景,軟件使用方法一致。更多信息和資料請進入http://www.w5500.com/網站或者私信獲取。

此外,本W55MH32支持硬件加密算法單元,WIZnet還推出TOE+SSL應用,涵蓋TCP SSL、HTTP SSL以及MQTT SSL等,為網絡通信安全再添保障。

為助力開發者快速上手與深入開發,基于W55MH32Q這顆芯片,WIZnet精心打造了配套開發板。開發板集成WIZ-Link芯片,借助一根USB C口數據線,就能輕松實現調試、下載以及串口打印日志等功能。開發板將所有外設全部引出,拓展功能也大幅提升,便于開發者全面評估芯片性能。

若您想獲取芯片和開發板的更多詳細信息,包括產品特性、技術參數以及價格等,歡迎訪問官方網頁:http://www.w5500.com/,我們期待與您共同探索W55MH32的無限可能。

wKgZO2gbOfaAVPzkACJSygzv-rI600.png

第十四章 ADC(下篇)

1 例程設計

1.1 ADC_Double例程

這是一個基于 W55MH32 的 ADC(模擬 - 數字轉換器)雙模式測試例程。它的主要功能是配置串口、ADC 和 DMA,并且通過 ADC1 和 ADC2 同時對模擬信號進行采樣,最后把采樣結果通過串口打印出來。下面是對這個例程的設計分析:

1.系統初始化

?配置系統時鐘、延時函數、串口、ADC 和 DMA。

?打印系統時鐘頻率信息。

2.ADC 雙模式采樣

?ADC1 和 ADC2 工作于規則同步模式,同時對通道 0 和通道 1 進行采樣。

?轉換結果通過 DMA 傳輸到內存緩沖區。

void ADC_Configuration(void)
{
    ADC_InitTypeDef  ADC_InitStructure;
    GPIO_InitTypeDef GPIO_InitStructure;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_ADC1 | RCC_APB2Periph_ADC2, ENABLE);

    GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_0;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AIN;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    RCC_ADCCLKConfig(RCC_PCLK2_Div8);
    ADC_DeInit(ADC1);
    ADC_DeInit(ADC2);

    // 配置為規則同步模式
    ADC_InitStructure.ADC_Mode               = ADC_Mode_RegSimult; 
    ADC_InitStructure.ADC_ScanConvMode       = DISABLE;
    ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
    ADC_InitStructure.ADC_ExternalTrigConv   = ADC_ExternalTrigConv_None;
    ADC_InitStructure.ADC_DataAlign          = ADC_DataAlign_Right;
    ADC_InitStructure.ADC_NbrOfChannel       = 1;
    ADC_Init(ADC1, &ADC_InitStructure);
    ADC_Init(ADC2, &ADC_InitStructure);

    /* channel configuration */
    ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_239Cycles5);
    ADC_RegularChannelConfig(ADC2, ADC_Channel_1, 1, ADC_SampleTime_239Cycles5);

    /* module enablement */
    ADC_Cmd(ADC1, ENABLE);
    ADC_Cmd(ADC2, ENABLE);

    /* adc calibration */
    ADC_ResetCalibration(ADC1);
    while (ADC_GetResetCalibrationStatus(ADC1));
    ADC_StartCalibration(ADC1);
    while (ADC_GetCalibrationStatus(ADC1));
    ADC_ResetCalibration(ADC2);
    while (ADC_GetResetCalibrationStatus(ADC2));
    ADC_StartCalibration(ADC2);
    while (ADC_GetCalibrationStatus(ADC2));

    DMA_Configuration();
}

3.數據處理與輸出

?DMA 傳輸完成后觸發中斷,將 ADC 數字值轉換為電壓值并通過串口打印。

void DMA1_Channel1_IRQHandler(void)
{
    if (DMA_GetITStatus(DMA1_IT_TC1) != RESET)
    {
        DMA_ClearITPendingBit(DMA1_IT_TC1);
        DMA_ClearFlag(DMA1_FLAG_TC1);

        // 數據處理與輸出
        printf("ADC1 Code Value = %d ,voltage value = %2.4fn", DAM_ADC_Value[0] & 0xFFFF,
               (float)VREF * (DAM_ADC_Value[0] & 0xFFFF) / 4095 / 1000);
        printf("ADC2 Code Value = %d ,voltage value = %2.4fn", (DAM_ADC_Value[0] >> 16) & 0xFFFF,
               (float)VREF * ((DAM_ADC_Value[0] >> 16) & 0xFFFF) / 4095 / 1000);
    }
}

1.2 ADC_Single例程

該例程是一個基于 W55MH32 微控制器的 ADC 單通道采樣程序,主要功能是周期性采集模擬輸入信號并通過串口輸出 ADC 值及其對應的電壓。以下是詳細的工作流程總結:

1.時鐘配置

?獲取系統各時鐘頻率(SYSCLK/HCLK/PCLK/ADCCLK),并通過串口打印。

2.UART 配置

?初始化 USART1 為 115200 波特率,用于串口輸出數據。

3.ADC 配置

?使能 ADC1 時鐘,配置 PA6 為模擬輸入模式。

?ADC 工作在獨立模式,禁用連續轉換,啟用掃描模式(單通道時僅觸發一次轉換)。

?執行 ADC 校準以確保精度。

void ADC_Configuration(void)
{
    uint32_t         i;
    ADC_InitTypeDef  ADC_InitStructure;
    GPIO_InitTypeDef GPIO_InitStructure;

    // 使能 ADC1 和 GPIOA 時鐘
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_ADC1, ENABLE);

    // 配置 PA6 為模擬輸入模式
    GPIO_InitStructure.GPIO_Pin   = ADC_TEST_CHANNEL_PIN; // PA6
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AIN;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    // ADC 時鐘配置(PCLK2 的 1/8)
    RCC_ADCCLKConfig(RCC_PCLK2_Div8);
    ADC_DeInit(ADC1); // 復位 ADC1

    // ADC 初始化配置
    ADC_InitStructure.ADC_Mode               = ADC_Mode_Independent; // 獨立模式
    ADC_InitStructure.ADC_ScanConvMode       = ENABLE;               // 啟用掃描模式(單通道時僅轉換一次)
    ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;              // 禁用連續轉換,需軟件觸發
    ADC_InitStructure.ADC_ExternalTrigConv   = ADC_ExternalTrigConv_None; // 軟件觸發
    ADC_InitStructure.ADC_DataAlign          = ADC_DataAlign_Right;  // 右對齊
    ADC_InitStructure.ADC_NbrOfChannel       = CONV_CHANNEL_NUM;     // 通道數(1)
    ADC_Init(ADC1, &ADC_InitStructure);

    // 配置 ADC 通道(通道 6,采樣時間 239.5 周期)
    for (i = 0; i < CONV_CHANNEL_NUM; i++)
    {
        ADC_RegularChannelConfig(ADC1, ADC_CovChannel[i], i + 1, ADC_SampleTIME[i]);
    }

    // 啟動 ADC 轉換并使能 ADC
    ADC_SoftwareStartConvCmd(ADC1, ENABLE);
    ADC_Cmd(ADC1, ENABLE);

    // ADC 校準
    ADC_ResetCalibration(ADC1);
    while (ADC_GetResetCalibrationStatus(ADC1));
    ADC_StartCalibration(ADC1);
    while (ADC_GetCalibrationStatus(ADC1));

    // 配置 DMA 傳輸
    DMA_Configuration();
}

4.DMA 配置

?設置 DMA1 通道 1 為循環模式,將 ADC 數據寄存器(ADC1->DR)的數據傳輸到內存數組DAM_ADC_Value。

?使能 DMA 傳輸完成中斷(TC 中斷),觸發數據處理。

1.3 ADC_VrefintTemper例程

該例程是一個基于 W55MH32 的 ADC 多通道采樣程序,主要用于同時采集內部溫度傳感器和 VREFINT(內部參考電壓)的模擬信號,并通過串口輸出測量結果。以下是其主要工作流程如下:

1.系統初始化

a.UART 配置:初始化 USART1 為 115200 波特率,用于串口輸出。

b.ADC 配置:使能 ADC1 時鐘,配置為獨立模式,啟用掃描模式(多通道依次轉換)。

?配置通道 16(溫度傳感器)和通道 17(VREFINT),采樣時間 239.5 周期。

?校準 ADC 并使能內部溫度傳感器和 VREFINT。

ADC_InitStructure.ADC_ScanConvMode = ENABLE; // 啟用掃描模式,多通道依次轉換
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; // 禁用連續轉換,需軟件觸發
ADC_TempSensorVrefintCmd(ENABLE); // 使能內部溫度傳感器和VREFINT

c.DMA 配置:設置 DMA1 通道 1 為循環模式,將 ADC 數據寄存器(ADC1->DR)的數據傳輸到內存數組DAM_ADC_Value。

?使能 DMA 傳輸完成中斷(TC 中斷)。

2.主循環邏輯

a.每秒調用ADC_SoftwareStartConvCmd(ADC1, ENABLE)觸發 ADC 轉換。

b.延時 1 秒后重復觸發,實現周期性采樣。

3.數據處理與輸出

void DMA1_Channel1_IRQHandler(void)
{
    if (DMA_GetITStatus(DMA1_IT_TC1) != RESET) // 檢查傳輸完成中斷
    {
        DMA_ClearITPendingBit(DMA1_IT_TC1); // 清除中斷標志
        DMA_ClearFlag(DMA1_FLAG_TC1);

        // 計算溫度傳感器和VREFINT的電壓值(VREF=3.3V,ADC精度12位)
        float tempVoltage = (float)VREF * DAM_ADC_Value[0] / 4095 / 1000; // 溫度傳感器電壓
        float vrefintVoltage = (float)VREF * DAM_ADC_Value[1] / 4095 / 1000; // VREFINT電壓

        // 串口輸出結果
        printf("Temperature Sensor AD Value: %d, Voltage: %.4f Vt", DAM_ADC_Value[0], tempVoltage);
        printf("VREFINT AD Value: %d, Voltage: %.4f Vn", DAM_ADC_Value[1], vrefintVoltage);
    }
}

a.DMA 中斷處理:當 DMA 傳輸完成時,觸發DMA1_Channel1_IRQHandler。

b.電壓計算:根據公式電壓 = VREF × ADC值 / 4095 / 1000 計算實際電壓值(VREF=3.3V)。

c.串口打印:輸出溫度傳感器和 VREFINT 的 ADC 值及電壓值。

2 下載驗證

2.1 ADC_Double例程

程序運行時,ADC1和ADC2以規則同步模式周期性采樣兩個模擬通道(PA0和PA1),轉換結果通過DMA傳輸至內存。每次DMA傳輸完成后觸發中斷,在中斷中計算并通過串口打印ADC1和ADC2的原始數值(12位)及對應的電壓值(單位:V),顯示間隔由主循環中的1秒延時控制。系統啟動時會輸出各時鐘頻率參數,隨后每秒更新一次ADC數據。

wKgZO2gu9ZWAGGPDAACnMA80Ewo107.png

2.2 ADC_Single例程

程序運行時,系統首先輸出各時鐘頻率參數,隨后每秒觸發一次ADC1通道6(PA6)的模擬信號采樣。ADC轉換結果通過DMA自動傳輸至內存,每次DMA傳輸完成后觸發中斷,在中斷服務函數中計算并通過串口打印ADC原始值(12位)及對應的電壓值(單位:V)。系統以1秒為間隔循環觸發采樣,實現周期性數據更新,最終在串口終端每秒顯示一次ADC數據。

wKgZPGgu9ZWASvWRAACCK8LLy50261.png

2.3 ADC_VrefintTemper例程

程序運行時,系統首先輸出各時鐘頻率參數,隨后每秒觸發一次ADC1通道16(內部溫度傳感器)和通道17(VREFINT)的模擬信號采樣。ADC轉換結果通過DMA自動傳輸至內存,每次DMA傳輸完成后觸發中斷,在中斷服務函數中計算并通過串口打印兩個通道的ADC原始值(12位)及對應的電壓值(單位:V)。系統以1秒為間隔循環觸發采樣,實現周期性數據更新,最終在串口終端每秒顯示一次內部溫度傳感器和VREFINT的測量結果。

wKgZO2gu9ZWAGGPDAACnMA80Ewo107.png

WIZnet 是一家無晶圓廠半導體公司,成立于 1998 年。產品包括互聯網處理器 iMCU?,它采用 TOE(TCP/IP 卸載引擎)技術,基于獨特的專利全硬連線 TCP/IP。iMCU? 面向各種應用中的嵌入式互聯網設備。

WIZnet 在全球擁有 70 多家分銷商,在香港、韓國、美國設有辦事處,提供技術支持和產品營銷。

香港辦事處管理的區域包括:澳大利亞、印度、土耳其、亞洲(韓國和日本除外)。

審核編輯 黃宇

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

    關注

    99

    文章

    6635

    瀏覽量

    548215
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    至芯科技之altera 系列FPGA教程 第十四篇 分配管腳

    至芯科技之altera 系列FPGA教程 第十四篇 分配管腳
    發表于 08-11 03:33

    視頻詳解:上海尤老師verilog入門到實戰第十四

    上海尤老師verilog入門到實戰第十四課——無線通信中的CIC插值濾波器; 百度云網盤鏈接后綴:/s/1i5Q9JDj, 加群討論252520964,307510678
    發表于 10-09 11:10

    「正點原子Linux連載」第十四章蜂鳴器試驗

    1)實驗平臺:正點原子Linux開發板2)摘自《正點原子I.MX6U嵌入式Linux驅動開發指南》關注官方微信號公眾號,獲取更多資料:正點原子第十四章蜂鳴器試驗 前幾章試驗中的驅動LED燈亮滅屬于
    發表于 12-21 12:05

    軟件定義無線電手冊,第十四

    軟件定義無線電手冊,第十四版。pentek公司出的資料。
    發表于 02-18 09:52

    第十四講 555定時器

    第十四講 555定時器 5.5.1 555定時器的電路結構及其功能 一、結構框圖(圖5.5.1 雙極型)1.
    發表于 03-30 16:20 ?4207次閱讀
    <b class='flag-5'>第十四</b>講 555定時器

    模擬電路網絡課件 第十四節:放大電路的頻率響應

    模擬電路網絡課件 第十四節:放大電路的頻率響應 在實際應用中,電子電路所處理的信號,如語音信號、電視信號等都不是簡單的單一頻率信號,即是具有一
    發表于 09-17 10:16 ?4255次閱讀
    模擬電路網絡課件 <b class='flag-5'>第十四</b>節:放大電路的頻率響應

    視頻_高速放大器設計指南 第十四

    視頻_高速放大器設計指南 第十四
    發表于 03-05 15:34 ?0次下載

    PinTech品致第十四屆中國高校電力電子與電力傳動學術年會

    PinTech品致探頭邀您參加2020年10月30日至11月1日在成都金牛賓館召開的第十四屆中國高校電力電子與電力傳動學術年會。
    的頭像 發表于 10-28 14:36 ?2750次閱讀

    易華錄精彩亮相第十四屆交博會探討智慧交通新思路

    4月10日,第十四屆中國道路交通安全產品博覽會暨公安交警警用裝備展(以下簡稱交博會)于廈門開幕。
    的頭像 發表于 04-11 18:18 ?1119次閱讀

    才茂亮相第十四屆配電技術應用大會

    日前,第十四屆配電技術應用大會在南京圓滿落下帷幕。眾多行業精英齊聚一堂,共謀現代智慧配電網的宏偉藍圖。
    的頭像 發表于 08-23 09:16 ?626次閱讀

    【北京迅為】iTOP-i.MX6開發板使用手冊第四部分固件編譯第十四章非設備樹Android4.4系統編譯

    【北京迅為】iTOP-i.MX6開發板使用手冊第四部分固件編譯第十四章非設備樹Android4.4系統編譯
    的頭像 發表于 09-12 15:43 ?820次閱讀
    【北京迅為】iTOP-i.MX6開發板使用手冊第四部分固件編譯<b class='flag-5'>第十四章</b>非設備樹Android4.4系統編譯

    第十四屆芯原CEO論壇五大預測

    2025年1月19日,以“Chiplet的發展機遇”為主題的第十四屆芯原CEO論壇在上海海鷗麗晶酒店舉辦。
    的頭像 發表于 01-21 09:44 ?427次閱讀

    千方科技亮相第十四屆智能交通市場年會

    近日,在第十四屆智能交通市場年會上,賽文網“中國智能交通最具影響力企業”評選結果揭曉。千方科技再次榮登城市智能交通、高速公路兩大領域年度榜單,公司在數智交通領域的產品和服務持續得到行業的高度認可。
    的頭像 發表于 03-07 13:03 ?356次閱讀

    四維圖新亮相第十四屆智能交通市場年會

    3月5日-6日,由賽文交通網主辦的第十四屆(2025)智能交通市場年會在蘇州舉行,會上同期舉行了第十四屆智能交通最具影響力企業評選頒獎典禮。
    的頭像 發表于 03-07 16:33 ?362次閱讀

    慧爾視亮相第十四屆智能交通市場年會

    2025年3月5-6日,由賽文交通網主辦的第十四屆(2025)智能交通市場年會在蘇州成功召開。
    的頭像 發表于 03-07 17:15 ?563次閱讀