STM32標準庫-輸入捕獲

一、輸入捕獲

1.簡介

  • IC(Input Capture)輸入捕獲輸入

  • 捕獲模式下,當通道輸入引腳出現指定電平跳變時,當前CNT的值將被鎖存到CCR中,可用于測量PWM波形的頻率、占空比、脈沖間隔、電平持續時間等參數

  • 每個高級定時器和通用定時器都擁有4個輸入捕獲通道

  • 可配置為PWMI模式,同時測量頻率和占空比

  • 可配合主從觸發模式,實現硬件全自動測量

2.頻率測量

在這里插入圖片描述

  • 測頻法適合測量高頻信號,測周法適合測量低頻信號。測頻法要求信號頻率要稍微高一些。那對于測周法就要求信號頻率低一些了,低頻信號周期比較長,計次就會比較多,有助于減小誤差。
  • 對應圖上,當待測信號頻率小于中介頻率時,測周法誤差更小,選用測周法更合適。當待測信號頻率大于中間頻率時,測頻法誤差更小,選用測頻法更合適。

3.輸入捕獲通道

在這里插入圖片描述

4.主從觸發模式

在這里插入圖片描述

  • 主從觸發模式就是主模式、從模式和觸發源選擇這三個功能的簡稱。
  • 其中主模式可以將定時器內部的信號映射到TRGO引腳。用于觸發別的外設。所以這部分叫做主模式。
  • 從模式,就是接收其他外設或者自身外設的一些信號,用于控制自身定時器的運行,也就是被別的信號控制,所以這部分叫從模式。
  • 觸發源選擇就是選擇從模式的觸發信號源的,你可以認為它是從模式的一部分。觸發源選擇指定的一個信號,得到TRGI,TRGI去觸發從模式,從模式可以在這個列表里選擇一項操作來自動執行。

5.輸入捕獲基本結構

在這里插入圖片描述

6.PWMI基本結構

在這里插入圖片描述

  • 配置為PWMI模式,同時測量頻率和占空比。這個PWM模式就是PWM的輸入模式,是專門為測量PWM頻率和占空比設計的。
  • PWM模式和主從觸發模式設計的非常巧妙,把這兩個功能結合起來測量頻率占空比,就是硬件全自動執行。軟件不需要進行任何干預,也不需要進行中斷,需要測量的時候直接讀取CCR計算器,極大的減輕了軟件的壓力。

二、輸入捕獲模式測頻率

1.接線圖

在這里插入圖片描述

2.代碼

main.c

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"
#include "PWM.h"
#include "IC.h"int main(void)
{/*模塊初始化*/OLED_Init();		//OLED初始化PWM_Init();			//PWM初始化IC_Init();			//輸入捕獲初始化/*顯示靜態字符串*/OLED_ShowString(1, 1, "Freq:00000Hz");		//1行1列顯示字符串Freq:00000Hz/*使用PWM模塊提供輸入捕獲的測試信號*/PWM_SetPrescaler(720 - 1);					//PWM頻率Freq = 72M / (PSC + 1) / 100PWM_SetCompare1(50);						//PWM占空比Duty = CCR / 100while (1){OLED_ShowNum(1, 6, IC_GetFreq(), 5);	//不斷刷新顯示輸入捕獲測得的頻率}
}

IC.c

#include "stm32f10x.h"                  // Device header/*** 函    數:輸入捕獲初始化* 參    數:無* 返 回 值:無*/
void IC_Init(void)
{/*開啟時鐘*/RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);			//開啟TIM3的時鐘RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);			//開啟GPIOA的時鐘/*GPIO初始化*/GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);							//將PA6引腳初始化為上拉輸入/*配置時鐘源*/TIM_InternalClockConfig(TIM3);		//選擇TIM3為內部時鐘,若不調用此函數,TIM默認也為內部時鐘/*時基單元初始化*/TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;				//定義結構體變量TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;     //時鐘分頻,選擇不分頻,此參數用于配置濾波器時鐘,不影響時基單元功能TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up; //計數器模式,選擇向上計數TIM_TimeBaseInitStructure.TIM_Period = 65536 - 1;               //計數周期,即ARR的值TIM_TimeBaseInitStructure.TIM_Prescaler = 72 - 1;               //預分頻器,即PSC的值TIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0;            //重復計數器,高級定時器才會用到TIM_TimeBaseInit(TIM3, &TIM_TimeBaseInitStructure);             //將結構體變量交給TIM_TimeBaseInit,配置TIM3的時基單元/*輸入捕獲初始化*/TIM_ICInitTypeDef TIM_ICInitStructure;							//定義結構體變量TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;				//選擇配置定時器通道1TIM_ICInitStructure.TIM_ICFilter = 0xF;							//輸入濾波器參數,可以過濾信號抖動TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;		//極性,選擇為上升沿觸發捕獲TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;			//捕獲預分頻,選擇不分頻,每次信號都觸發捕獲TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;	//輸入信號交叉,選擇直通,不交叉TIM_ICInit(TIM3, &TIM_ICInitStructure);							//將結構體變量交給TIM_ICInit,配置TIM3的輸入捕獲通道/*選擇觸發源及從模式*/TIM_SelectInputTrigger(TIM3, TIM_TS_TI1FP1);					//觸發源選擇TI1FP1TIM_SelectSlaveMode(TIM3, TIM_SlaveMode_Reset);					//從模式選擇復位//即TI1產生上升沿時,會觸發CNT歸零/*TIM使能*/TIM_Cmd(TIM3, ENABLE);			//使能TIM3,定時器開始運行
}/*** 函    數:獲取輸入捕獲的頻率* 參    數:無* 返 回 值:捕獲得到的頻率*/
uint32_t IC_GetFreq(void)
{return 1000000 / (TIM_GetCapture1(TIM3) + 1);		//測周法得到頻率fx = fc / N,這里不執行+1的操作也可
}

IC.c

#ifndef __IC_H
#define __IC_Hvoid IC_Init(void);
uint32_t IC_GetFreq(void);#endif

3.相關API

1. void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState);

功能:使能或禁用 APB1 總線上的外設時鐘
參數

  • RCC_APB1Periph
    

    :選擇 APB1 外設(x 為外設枚舉值)

    • 可選值(部分):
      • RCC_APB1Periph_TIM2:TIM2 定時器
      • RCC_APB1Periph_TIM3:TIM3 定時器(輸入捕獲用)
      • RCC_APB1Periph_I2C1:I2C1 接口
  • NewState
    

    :時鐘使能狀態

    • 可選值:
      • ENABLE:使能時鐘
      • DISABLE:禁用時鐘
        返回值:無
2. void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);

功能:初始化 GPIO 引腳的模式、速度等參數
參數

  • GPIOx
    

    :選擇 GPIO 端口(x 為端口字母)

    • 可選值:
      • GPIOAGPIOBGPIOC等(如 PA6 對應GPIOA
  • GPIO_InitStruct
    

    :指向 GPIO 配置結構體的指針

    • 結構體成員(部分):

      • GPIO_Mode
        

        :引腳模式

        • 可選值:
          • GPIO_Mode_IPU:上拉輸入(輸入捕獲用)
          • GPIO_Mode_AF_PP:復用推挽輸出
      • GPIO_Pin
        

        :引腳號

        • 可選值:
          • GPIO_Pin_0~GPIO_Pin_15(如 PA6 對應GPIO_Pin_6
      • GPIO_Speed
        

        :輸出速度(輸入模式無效)

        • 可選值:
          • GPIO_Speed_10MHzGPIO_Speed_50MHz
            返回值:無
3. void TIM_InternalClockConfig(TIM_TypeDef* TIMx);

功能:選擇定時器的時鐘源為內部時鐘(默認配置)
參數

  • TIMx
    

    :選擇定時器(x 為定時器編號)

    • 可選值:
      • TIM2TIM3(輸入捕獲用)、TIM4
        返回值:無
4. void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);

功能:配置定時器的時基參數(計數周期、分頻等)
參數

  • TIMx
    

    :選擇定時器

    • 可選值:
      • TIM3(輸入捕獲用)、TIM2TIM4
  • TIM_TimeBaseInitStruct
    

    :指向時基配置結構體的指針

    • 結構體成員(部分):

      • TIM_Period
        

        :自動重裝值(ARR)

        • 可選值:
          • 0~65535(16 位計數器,如65535對應最大周期)
      • TIM_Prescaler
        

        :預分頻值(PSC)

        • 可選值:
          • 0~65535(如71對應 72 分頻,計數器時鐘 1MHz)
      • TIM_CounterMode
        

        :計數模式

        • 可選值:
          • TIM_CounterMode_Up:向上計數(輸入捕獲用)
          • TIM_CounterMode_Down:向下計數
            返回值:無
5. void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct);

功能:初始化定時器的輸入捕獲通道參數
參數

  • TIMx
    

    :選擇定時器

    • 可選值:
      • TIM3(輸入捕獲用)、TIM2TIM4
  • TIM_ICInitStruct
    

    :指向輸入捕獲配置結構體的指針

    • 結構體成員(部分):

      • TIM_Channel
        

        :捕獲通道

        • 可選值:
          • TIM_Channel_1:通道 1(輸入捕獲用)
          • TIM_Channel_2~TIM_Channel_4
      • TIM_ICPolarity
        

        :捕獲極性

        • 可選值:
          • TIM_ICPolarity_Rising:上升沿捕獲(輸入捕獲用)
          • TIM_ICPolarity_Falling:下降沿捕獲
      • TIM_ICFilter
        

        :輸入濾波器參數

        • 可選值:
          • 0x0~0xF(如0xF表示最強濾波,抗干擾)
            返回值:無
6. void TIM_SelectInputTrigger(TIM_TypeDef* TIMx, uint16_t TIM_TS);

功能:選擇定時器從模式的觸發源
參數

  • TIMx
    

    :選擇定時器

    • 可選值:
      • TIM3(輸入捕獲用)、TIM2TIM4
  • TIM_TS
    

    :觸發源選擇

    • 可選值(輸入捕獲相關):
      • TIM_TS_TI1FP1:使用通道 1 的濾波后信號(輸入捕獲用)
      • TIM_TS_TI2FP2:使用通道 2 的濾波后信號
        返回值:無
7. void TIM_SelectSlaveMode(TIM_TypeDef* TIMx, uint16_t TIM_SlaveMode);

功能:配置定時器的從模式行為(如復位、門控)
參數

  • TIMx
    

    :選擇定時器

    • 可選值:
      • TIM3(輸入捕獲用)、TIM2TIM4
  • TIM_SlaveMode
    

    :從模式類型

    • 可選值:
      • TIM_SlaveMode_Reset:復位模式(輸入捕獲用,觸發時計數器歸零)
      • TIM_SlaveMode_Gated:門控模式(觸發有效時計數器運行)
        返回值:無
8. void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState);

功能:啟動或停止定時器計數
參數

  • TIMx
    

    :選擇定時器

    • 可選值:
      • TIM3(輸入捕獲用)、TIM2TIM4
  • NewState
    

    :定時器使能狀態

    • 可選值:
      • ENABLE:啟動定時器(輸入捕獲用)
      • DISABLE:停止定時器
        返回值:無
9. uint16_t TIM_GetCapture1(TIM_TypeDef* TIMx);

功能:獲取定時器通道 1 的捕獲值(CCR1)
參數

  • TIMx
    

    :選擇定時器

    • 可選值:
      • TIM3(輸入捕獲用)、TIM2TIM4
        返回值
  • 通道 1 的捕獲寄存器值(0~65535,對應兩次上升沿間的計數值)

現象:測量波形的輸入口是PA6,用一根線把PA0和PA6連在一起,這樣就能測量自己PWM模塊產生波形的頻率。

三、PWMI模式測頻率占空比

1.接線圖

在這里插入圖片描述

2.代碼

main.c

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"
#include "PWM.h"
#include "IC.h"int main(void)
{/*模塊初始化*/OLED_Init();		//OLED初始化PWM_Init();			//PWM初始化IC_Init();			//輸入捕獲初始化/*顯示靜態字符串*/OLED_ShowString(1, 1, "Freq:00000Hz");		//1行1列顯示字符串Freq:00000HzOLED_ShowString(2, 1, "Duty:00%");			//2行1列顯示字符串Duty:00%/*使用PWM模塊提供輸入捕獲的測試信號*/PWM_SetPrescaler(720 - 1);					//PWM頻率Freq = 72M / (PSC + 1) / 100PWM_SetCompare1(50);						//PWM占空比Duty = CCR / 100while (1){OLED_ShowNum(1, 6, IC_GetFreq(), 5);	//不斷刷新顯示輸入捕獲測得的頻率OLED_ShowNum(2, 6, IC_GetDuty(), 2);	//不斷刷新顯示輸入捕獲測得的占空比}
}

IC.c

#include "stm32f10x.h"                  // Device header/*** 函    數:輸入捕獲初始化* 參    數:無* 返 回 值:無*/
void IC_Init(void)
{/*開啟時鐘*/RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);			//開啟TIM3的時鐘RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);			//開啟GPIOA的時鐘/*GPIO初始化*/GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);							//將PA6引腳初始化為上拉輸入/*配置時鐘源*/TIM_InternalClockConfig(TIM3);		//選擇TIM3為內部時鐘,若不調用此函數,TIM默認也為內部時鐘/*時基單元初始化*/TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;				//定義結構體變量TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;     //時鐘分頻,選擇不分頻,此參數用于配置濾波器時鐘,不影響時基單元功能TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up; //計數器模式,選擇向上計數TIM_TimeBaseInitStructure.TIM_Period = 65536 - 1;               //計數周期,即ARR的值TIM_TimeBaseInitStructure.TIM_Prescaler = 72 - 1;               //預分頻器,即PSC的值TIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0;            //重復計數器,高級定時器才會用到TIM_TimeBaseInit(TIM3, &TIM_TimeBaseInitStructure);             //將結構體變量交給TIM_TimeBaseInit,配置TIM3的時基單元/*PWMI模式初始化*/TIM_ICInitTypeDef TIM_ICInitStructure;							//定義結構體變量TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;				//選擇配置定時器通道1TIM_ICInitStructure.TIM_ICFilter = 0xF;							//輸入濾波器參數,可以過濾信號抖動TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;		//極性,選擇為上升沿觸發捕獲TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;			//捕獲預分頻,選擇不分頻,每次信號都觸發捕獲TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;	//輸入信號交叉,選擇直通,不交叉TIM_PWMIConfig(TIM3, &TIM_ICInitStructure);						//將結構體變量交給TIM_PWMIConfig,配置TIM3的輸入捕獲通道//此函數同時會把另一個通道配置為相反的配置,實現PWMI模式/*選擇觸發源及從模式*/TIM_SelectInputTrigger(TIM3, TIM_TS_TI1FP1);					//觸發源選擇TI1FP1TIM_SelectSlaveMode(TIM3, TIM_SlaveMode_Reset);					//從模式選擇復位//即TI1產生上升沿時,會觸發CNT歸零/*TIM使能*/TIM_Cmd(TIM3, ENABLE);			//使能TIM3,定時器開始運行
}/*** 函    數:獲取輸入捕獲的頻率* 參    數:無* 返 回 值:捕獲得到的頻率*/
uint32_t IC_GetFreq(void)
{return 1000000 / (TIM_GetCapture1(TIM3) + 1);		//測周法得到頻率fx = fc / N,這里不執行+1的操作也可
}/*** 函    數:獲取輸入捕獲的占空比* 參    數:無* 返 回 值:捕獲得到的占空比*/
uint32_t IC_GetDuty(void)
{return (TIM_GetCapture2(TIM3) + 1) * 100 / (TIM_GetCapture1(TIM3) + 1);	//占空比Duty = CCR2 / CCR1 * 100,這里不執行+1的操作也可
}

IC.h

#ifndef __IC_H
#define __IC_Hvoid IC_Init(void);
uint32_t IC_GetFreq(void);
uint32_t IC_GetDuty(void);#endif

現象:

  • 硬件連接:

PWM 輸出(PA8) → 輸入捕獲引腳(PA6)
OLED 顯示屏通過 I2C 接口連接(通常為 PB6/PB7)

  • 參數配置:

PWM 頻率:72MHz / (720) / 100 = 1kHz
PWM 占空比:50 / 100 = 50%

  • 輸入捕獲配置:

TIM3 通道 1(PA6)配置為上升沿捕獲,用于測量頻率和占空比
從模式設為復位模式,確保每次上升沿觸發計數器歸零
2. 實時顯示效果
OLED 顯示內容:

Freq:00000Hz  
Duty:00%  

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/82865.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/82865.shtml
英文地址,請注明出處:http://en.pswp.cn/web/82865.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在linux系統上搭建git服務器(ssh協議)

1.在windows上生成RSA密鑰對 ssh-keygen -t rsa -b 2048 -C"git用戶名/郵箱地址" 命令執行后會在 C:\Users\${windows登錄賬戶}\.ssh 目錄下生成密鑰對 其中 id_rsa 為私鑰,id_rsa.pub 為公鑰 2.在 linux 系統上登記公鑰 vim ~/.ssh/authorized_keys…

RAG檢索系統的兩大核心利器——Embedding模型和Rerank模型

在RAG系統中,有兩個非常重要的模型一個是Embedding模型,另一個則是Rerank模型;這兩個模型在RAG中扮演著重要角色。 Embedding模型的作用是把數據向量化,通過降維的方式,使得可以通過歐式距離,余弦函數等計算…

stm32內存踩踏一例

1、問題描述 程序運行過程中,發現顯示的內容亂了,如下圖所示: 2、問題分析 此原因產生是由于將一個函數提前引起的,單步跟蹤檢查問題 運行過此函數后變量的地址改變了?被調函數能改變調用函數的變量地址&#xff1f…

Selenium的底層原理

Selenium 底層主要依賴于 WebDriver 協議(即 W3C WebDriver 規范,早期也有 JSON Wire Protocol)來實現對瀏覽器的遠程控制,其核心架構可以分為以下幾層: Selenium 客戶端(Client Library) 支持多…

前端高頻面試題2:瀏覽器/計算機網絡

本專欄相關鏈接 前端高頻面試題1:HTML/CSS 前端高頻面試題2:瀏覽器/計算機網絡 前端高頻面試題3:JavaScript 1.什么是強緩存、協商緩存? 強緩存: 當瀏覽器請求資源時,首先檢查本地緩存是否命中。如果命…

MATLAB-電偶極子所產出的電磁場仿真

% 清除工作區 clear all % 用戶輸入 a input(輸入點電荷的位置如[1,0,1;2,0,2]表示位置在(1,0,1),(2,0,2): ); Q input(輸入點電荷的電荷量,-表示電性,如[1,-1]: ); a1 input(電場線角度間隔: ); % 角度間隔 % 設置繪圖范圍 xmin min(a(:,1)) - 4;…

混合云數據庫連接問題:本地與云實例的兼容性挑戰

關鍵詞:混合云數據庫,混合云架構,數據庫連接問題,網絡策略,兼容性挑戰,權限沖突,防火墻,VPN,ExpressRoute,Direct Connect,SQL Server,MySQL,PostgreSQL,Azure SQL Database,AWS RDS 隨著企業數字化轉型的深入,混合云架構正成為主流選擇。它結合了本地數據中心…

pikachu靶場通關筆記16 CSRF關卡02-CSRF(POST)

目錄 一、CSRF原理 二、源碼分析 三、滲透實戰 1、構造CSRF鏈接 (1)登錄 (2)bp設置inception on (3)修改個人信息 (4)構造CSRF鏈接 2、模擬受害者登錄 3、誘導受害者點擊 …

CAD2025安裝教程與資源下載

軟件下載 軟件名稱:CAD2025軟件語言:簡體中文軟件大小:2.69G系統要求:Windows10或更高,32/ 64位操作系統硬件要求:CPU2GHz ,RAM4G或更高下載鏈接: 鏈接:https://pan.qua…

SpringBoot離線應用的5種實現方式

在當今高度依賴網絡的環境中,離線應用的價值日益凸顯。無論是在網絡不穩定的區域運行的現場系統,還是需要在斷網環境下使用的企業內部應用,具備離線工作能力已成為許多應用的必備特性。 本文將介紹基于SpringBoot實現離線應用的5種不同方式。…

數據類型 -- 字符

在C中,字符型(char)用于存儲單個字符,如字母、數字、符號等。字符型是最基本的數據類型之一,常用于處理文本、字符數組(字符串)等場景。 1. 基本類型 ? char:標準字符類型&#x…

國標GB28181視頻平臺EasyGBS視頻實時監控系統打造換熱站全景可視化管理方案

一、方案背景? 在城市供熱體系中,換熱站作為連接熱源與用戶的核心樞紐,其運行穩定性直接影響供熱質量。面對供熱規模擴大與需求升級,傳統人工巡檢模式暴露出效率低、響應慢、監測不足等問題。基于GB28181協議的EasyGBS視頻實時監控系統&…

174頁PPT家居制造業集團戰略規劃和運營管控規劃方案

甲方集團需要制定一個清晰的集團價值定位,從“指引多元”、“塑造 能力”以及“強化協同”等方面引領甲方做大做強 集團需要通過管控模式、組織架構及職能、授權界面、關鍵流程、戰略 實施和組織演進路徑,平衡風險控制和迅速發展,保證戰略落地…

python打卡第45天

tensorboard的發展歷史和原理 一、發展歷史 起源與 TensorFlow 一同誕生 (2015年底): TensorBoard 最初是作為 TensorFlow 開源項目(2015年11月發布)的一部分而設計和開發的。其核心目標是解決深度學習模型訓練過程中的“黑盒”問題,提供直觀…

CentOS 7如何編譯安裝升級gcc至7.5版本?

CentOS 7如何編譯安裝升級gcc版本? 由于配置CentOS-SCLo-scl.repo與CentOS-SCLo-scl-rh.repo后執行yum install -y devtoolset-7安裝總是異常,遂決定編譯安裝gcc7.5 # 備份之前的yum .repo文件至 /tmp/repo_bak 目錄 mkdir -p /tmp/repo_bak && cd /etc…

中山大學美團港科大提出首個音頻驅動多人對話視頻生成MultiTalk,輸入一個音頻和提示,即可生成對應唇部、音頻交互視頻。

由中山大學、美團、香港科技大學聯合提出的MultiTalk是一個用于音頻驅動的多人對話視頻生成的新框架。給定一個多流音頻輸入和一個提示,MultiTalk 會生成一個包含提示所對應的交互的視頻,其唇部動作與音頻保持一致。 相關鏈接 論文:https://a…

iOS 門店營收表格功能的實現

iOS 門店營收表格功能實現方案 核心功能需求 數據展示:表格形式展示門店/日期維度的營收數據排序功能:支持按營收金額、增長率等排序篩選功能:按日期范圍/門店/區域篩選交互操作:點擊查看詳情、數據刷新數據可視化:關…

怎么解決cesium加載模型太黑,程序崩潰,不顯示,位置不對模型太大,Cesium加載gltf/glb模型后變暗

有時候咱們cesium加載模型時候型太黑,程序崩潰,不顯示,位置不對模型太大怎么辦 需要處理 可以聯系Q:424081801 謝謝 需要處理 可以聯系Q:424081801 謝謝

移植driver_monitoring_system里的MobileNet到RK3588

根據下面的內容寫一篇技術博客,要求增加更多的解釋,讓普通讀者也能了解為什么這樣做,具體怎么做 移植driver_monitoring_system里的MobileNet到RK3588 一、背景二、操作步驟2.1 下載源碼2.2 Tensorflow轉成ONNX2.2.1 在x86上創建容器,安裝依賴2.2.2 保存為saved-model2.2.3 sav…

低代碼平臺前端頁面表格字段綁定與后端數據傳輸交互主要有哪些方式?華為云Astro在這方面有哪些方式?

目錄 ?? 一、低代碼平臺中常見的數據綁定與交互方式 1. 接口綁定(API 調用) 2. 數據源綁定(DataSource) 3. 變量中轉(臨時變量 / 頁面狀態) 4. 數據模型綁定(模型驅動) ?? 二、華為云 Astro 輕應用的實現方式 ? 1. 數據源綁定(API服務+API網關) ? 2. 變…