女人自慰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)不再提示

深度解析三種不同方式ADC應(yīng)用實(shí)例

電子設(shè)計(jì) ? 來源:csdn ? 作者:脆弱的代碼 ? 2021-04-28 11:26 ? 次閱讀

所用的芯片內(nèi)嵌3個(gè)12位的模擬/數(shù)字轉(zhuǎn)換器(ADC),每個(gè)ADC共用多達(dá)16個(gè)外部通道,2個(gè)內(nèi)部通道。

3個(gè):代表ADC1、ADC2、ADC3(下圖是芯片固件庫的截圖)

12位:也叫ADC分辨率、采樣精度。先來看看二進(jìn)制的12位可表示0-4095個(gè)數(shù),也就是說轉(zhuǎn)換器通過采集轉(zhuǎn)換所得到的最大值是4095,如:“111111111111”=4095,那么我們?cè)趺赐ㄟ^轉(zhuǎn)換器轉(zhuǎn)換出來的值得到實(shí)際的電壓值呢?如果我們要轉(zhuǎn)換的電壓范圍是0v-3.3v的話,轉(zhuǎn)換器就會(huì)把0v-3.3v平均分成4096份。設(shè)轉(zhuǎn)換器所得到的值為x,所求電壓值為y。

那么就有:

16個(gè)外部通道:簡(jiǎn)單的說就是芯片上有16個(gè)引腳是可以接到模擬電壓上進(jìn)行電壓值檢測(cè)的。16個(gè)通道不是獨(dú)立的分配給3個(gè)轉(zhuǎn)換器(ADC1、ADC2、ADC3)使用,有些通道是被多個(gè)轉(zhuǎn)換器共用的。首先看看16個(gè)通道在固件庫的宏定義(寫代碼要看的):

到這里大家可能會(huì)有疑問,每個(gè)通道到底對(duì)應(yīng)哪個(gè)引腳呢?下面先給出部分引腳圖:

16個(gè)通道的引腳都在上面的圖中,拿其中的一個(gè)進(jìn)行說明:

ADC123_IN10:字母“ADC”不用多說,“123”代表它被3個(gè)(ADC1、ADC2、ADC3)轉(zhuǎn)換器共用的引腳,“10”對(duì)應(yīng)剛才那張宏定義圖里面的ADC_Channel_10,這樣就能找到每個(gè)通道對(duì)應(yīng)的引腳了。

2個(gè)內(nèi)部通道:一個(gè)是內(nèi)部溫度傳感器,一個(gè)是內(nèi)部參考電壓。

在某個(gè)項(xiàng)目中要用到芯片里面的AD轉(zhuǎn)換器,那么要怎么寫應(yīng)用代碼?(以下是代碼講解)

芯片固件的庫函數(shù)為我們提供了很多封裝好的函數(shù),只要運(yùn)用它提供的函數(shù)接口就可以了,宏觀上來講就搞懂兩個(gè)事情就行了:

初始化(設(shè)置用的哪個(gè)引腳、單通道、還是多通道同時(shí)轉(zhuǎn)換、是否使用DMA等配置)?

怎么讓轉(zhuǎn)換器進(jìn)行一次數(shù)據(jù)獲取?

以下分別講述三種不同方式(單通道、多通道、基于DMA的多通道采集)的ADC應(yīng)用實(shí)例:

/*單通道的ADC采集*/

void Adc_Config(void)

{

/*定義兩個(gè)初始化要用的結(jié)構(gòu)體,下面給每個(gè)結(jié)構(gòu)體成員賦值*/

ADC_InitTypeDef ADC_InitStructure;

GPIO_InitTypeDef GPIO_InitStructure;

/*

使能GPIOA和ADC1通道時(shí)鐘

注意:除了RCC_APB2PeriphClockCmd還有RCC_APB1PeriphClockCmd,那么該如何選擇?

APB2:高速時(shí)鐘,最高72MHz,主要負(fù)責(zé)AD輸入,I/O,串口1,高級(jí)定時(shí)器TIM

APB1:低速時(shí)鐘,最高36MHz,主要負(fù)責(zé)DA輸出,串口2、3、4、5,普通定時(shí)器TIM,USB,IIC,CAN,SPI

*/

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_ADC1, ENABLE );

RCC_ADCCLKConfig(RCC_PCLK2_Div6); //72M/6=12, ADC的采樣時(shí)鐘最快14MHz

/*配置輸入電壓所用的PA0引腳*/

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; //GPIO_Mode_AIN:模擬輸入(還有其他什么模式?請(qǐng)看下面的附錄圖1)

GPIO_Init(GPIOA, &GPIO_InitStructure);

ADC_DeInit(ADC1); //復(fù)位,將ADC1相關(guān)的寄存器設(shè)為默認(rèn)值

ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; //工作模式:ADC1和ADC2獨(dú)立工作模式 (還有其他什么模式?請(qǐng)看下面的附錄圖2)

ADC_InitStructure.ADC_ScanConvMode = DISABLE; //數(shù)模轉(zhuǎn)換工作:掃描(多通道)模式=ENABLE、單次(單通道)模式=DISABLE

ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;//數(shù)模轉(zhuǎn)換工作:連續(xù)=ENABLE、單次=DISABLE

ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; //ADC轉(zhuǎn)換由軟件觸發(fā)啟動(dòng) (還有其他什么模式?請(qǐng)看下面的附錄圖3)

ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; //ADC數(shù)據(jù)右對(duì)齊 除了右就是左:ADC_DataAlign_Left

ADC_InitStructure.ADC_NbrOfChannel = 1; //順序進(jìn)行規(guī)則轉(zhuǎn)換的ADC通道的數(shù)目 范圍是1-16

ADC_Init(ADC1, &ADC_InitStructure); //根據(jù)ADC_InitStruct中指定的參數(shù)初始化外設(shè)ADC1的寄存器

/*為啥要設(shè)置下面這一步?

細(xì)心的你可以發(fā)現(xiàn)上面初始化了一個(gè)引腳通道,初始化了一個(gè)ADC轉(zhuǎn)換器,但ADC轉(zhuǎn)換器并不知道你用的是哪個(gè)引腳吧?

這一步目的是:設(shè)置指定ADC的規(guī)則組通道(引腳),設(shè)置它們的轉(zhuǎn)化順序和采樣時(shí)間

函數(shù)原型:void ADC_RegularChannelConfig(ADC_TypeDef* ADCx, u8 ADC_Channel, u8 Rank, u8 ADC_SampleTime)

參數(shù)1 ADCx:x可以是1或者2來選擇ADC外設(shè)ADC1或ADC2

參數(shù)2 ADC_Channel:被設(shè)置的ADC通道 范圍ADC_Channel_0~ADC_Channel_17

參數(shù)3 Rank:規(guī)則組采樣順序。取值范圍1到16。

ADC_SampleTime:指定ADC通道的采樣時(shí)間值 (取值范圍?請(qǐng)看下面的附錄圖4)

*/

ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_239Cycles5 );

ADC_Cmd(ADC1, ENABLE); //使能指定的ADC 注意:函數(shù)ADC_Cmd只能在其他ADC設(shè)置函數(shù)之后被調(diào)用

/*下面4步按流程走,走完就行*/

ADC_ResetCalibration(ADC1); //重置指定的ADC的校準(zhǔn)寄存器

while(ADC_GetResetCalibrationStatus(ADC1)); //等待上一步操作完成

ADC_StartCalibration(ADC1); //開始指定ADC的校準(zhǔn)狀態(tài)

while(ADC_GetCalibrationStatus(ADC1));//等待上一步操作按成

}

初始化完成之后,在主函數(shù)中:

void main(void)

{

float ADC_ConvertedValue;

float ADC_ConvertedValueLocal;

Adc_Config();

while(1)

{

ADC_SoftwareStartConvCmd(ADC1, ENABLE); //啟動(dòng)轉(zhuǎn)換

while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC )); //等待轉(zhuǎn)換完成

ADC_ConvertedValue=ADC_GetConversionValue(ADC1); //獲取轉(zhuǎn)換結(jié)果*ADC_ConvertedValue*

ADC_ConvertedValueLocal=(float)ADC_ConvertedValue*(3.3/4096); //計(jì)算出實(shí)際電壓值*ADC_ConvertedValueLocal*

//這里適當(dāng)加上一些延遲

//最好連續(xù)轉(zhuǎn)換幾次 取平均值 這里就省略寫了 點(diǎn)到為止}}

附錄圖1-GPIO_Mode值:

附錄圖4-ADC_SampleTime值:

對(duì)于一些剛接觸stm32的人來說,看了上面的代碼可能還會(huì)有很多疑問。

為什么要使能時(shí)鐘?時(shí)鐘到底設(shè)置多少才合適?

對(duì)于ADC_GetConversionValue(ADC1)這個(gè)函數(shù)參數(shù)并沒有指定那個(gè)通道,如果多個(gè)通道同時(shí)使用CAN1轉(zhuǎn)換器轉(zhuǎn)換時(shí)怎么獲取每個(gè)通道的值?

第一個(gè)問題,所有的外設(shè)都要使能時(shí)鐘,時(shí)鐘源分為外部時(shí)鐘和內(nèi)部時(shí)鐘,外部時(shí)鐘比如接8MHz晶振,內(nèi)部時(shí)鐘就在芯片內(nèi)部集成,時(shí)鐘源為所有的時(shí)序電路提供基本的脈沖信號(hào)。時(shí)鐘源好比是一顆跳動(dòng)的心臟,它按照一定的頻率在跳動(dòng),所有的器官(外設(shè))要跟心臟(時(shí)鐘源)橋接起來才能工作,但不同的外設(shè)需要的頻率不同,所以在時(shí)鐘源跟外設(shè)之中常常還會(huì)有一些分頻器或者倍頻器,以實(shí)現(xiàn)對(duì)頻率的衰減或增強(qiáng)。還想了解更多專業(yè)的解釋可以去研究stm32的時(shí)鐘樹圖。

**第二個(gè)問題,**回答這個(gè)問題那么就等于開始介紹多通道轉(zhuǎn)換怎么實(shí)現(xiàn)了,看下圖

由圖理解,一個(gè)ADC轉(zhuǎn)換器只能選擇轉(zhuǎn)換一個(gè)通道,那么對(duì)比單通道我們只需做一下改變(以雙通道為例):

1.在void Adc_Config(void)函數(shù)里面添加:

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;

GPIO_Init(GPIOA, &GPIO_InitStructure);

配置多一個(gè)IO(PA1)口, 也就是通道1。

2.在void Adc_Config(void)函數(shù)里面添加:

ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_239Cycles5 );

先不指定ADC轉(zhuǎn)換通道。

3.在主函數(shù)循環(huán)里改為:

while(1)

{

/*先采集通道1數(shù)據(jù)*/

ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_239Cycles5 );

ADC_SoftwareStartConvCmd(ADC1, ENABLE);

while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));

ADC_ConvertedValue=ADC_GetConversionValue(ADC1);

ADC_ConvertedValueLocal=(float)ADC_ConvertedValue*(3.3/4096);

/*再采集通道2數(shù)據(jù)*/

ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_239Cycles5 );

ADC_SoftwareStartConvCmd(ADC1, ENABLE);

while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));

ADC_ConvertedValue=ADC_GetConversionValue(ADC1);

ADC_ConvertedValueLocal=(float)ADC_ConvertedValue*(3.3/4096);

//加入適當(dāng)延時(shí)

}

完成以上三步就能把單通道擴(kuò)展到雙通道(或者更多個(gè)通道)。不過還有一種基于DMA的多通道轉(zhuǎn)換更加合適。

首先簡(jiǎn)單介紹DMA,DMA(Direct Memory Access,直接內(nèi)存存取) ,用來提供在外設(shè)和存儲(chǔ)器之間或者存儲(chǔ)器和存儲(chǔ)器之間的高速數(shù)據(jù)傳輸。無需CPU干預(yù),節(jié)省CPU資源;ADC轉(zhuǎn)換出來的值直接賦值給定義好的變量中。配置好的DMA可以不停地將ADC轉(zhuǎn)換值寫到該變量中,在主函數(shù)直接判斷該變量就知道此時(shí)的AD值,也就是說在主函數(shù)中不需要調(diào)用ADC_GetConversionValue()函數(shù)來獲取轉(zhuǎn)換值。

DMA跟其他外設(shè)一樣需要進(jìn)行配置通道,使能時(shí)鐘等參數(shù)。

下面直接看代碼分析:

/*基于DMA的ADC多通道采集*/

volatile uint16 ADCConvertedValue[10][3];//用來存放ADC轉(zhuǎn)換結(jié)果,也是DMA的目標(biāo)地址,3通道,每通道采集10次后面取平均數(shù)

void DMA_Init(void)

{

DMA_InitTypeDef DMA_InitStructure;

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);//使能時(shí)鐘

DMA_DeInit(DMA1_Channel1); //將通道一寄存器設(shè)為默認(rèn)值

DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)&(ADC1->DR);//該參數(shù)用以定義DMA外設(shè)基地址

DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&ADCConvertedValue;//該參數(shù)用以定義DMA內(nèi)存基地址(轉(zhuǎn)換結(jié)果保存的地址)

DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;//該參數(shù)規(guī)定了外設(shè)是作為數(shù)據(jù)傳輸?shù)哪康牡剡€是來源,此處是作為來源

DMA_InitStructure.DMA_BufferSize = 3*10;//定義指定DMA通道的DMA緩存的大小,單位為數(shù)據(jù)單位。這里也就是ADCConvertedValue的大小

DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//設(shè)定外設(shè)地址寄存器遞增與否,此處設(shè)為不變 Disable

DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;//用來設(shè)定內(nèi)存地址寄存器遞增與否,此處設(shè)為遞增,Enable

DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;//數(shù)據(jù)寬度為16位

DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;//數(shù)據(jù)寬度為16位

DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; //工作在循環(huán)緩存模式

DMA_InitStructure.DMA_Priority = DMA_Priority_High;//DMA通道擁有高優(yōu)先級(jí) 分別4個(gè)等級(jí) 低、中、高、非常高

DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;//使能DMA通道的內(nèi)存到內(nèi)存?zhèn)鬏?/p>

DMA_Init(DMA1_Channel1, &DMA_InitStructure);//根據(jù)DMA_InitStruct中指定的參數(shù)初始化DMA的通道

DMA_Cmd(DMA1_Channel1, ENABLE);//啟動(dòng)DMA通道一

}

下面是ADC的初始化,可以將它與上面的對(duì)比一下有啥不同,重復(fù)的就不解析了

void Adc_Init(void)

{

ADC_InitTypeDef ADC_InitStructure;

GPIO_InitTypeDef GPIO_InitStructure;

/*3個(gè)IO口的配置(PA0、PA1、PA2)*/

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;

GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;

GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;

GPIO_Init(GPIOA, &GPIO_InitStructure);

/*IO和ADC使能時(shí)鐘*/

RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1|RCC_APB2Periph_GPIOA,ENABLE);

RCC_ADCCLKConfig(RCC_PCLK2_Div6);

ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;

ADC_InitStructure.ADC_ScanConvMode = ENABLE;

ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; //連續(xù)轉(zhuǎn)換

ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;

ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;

ADC_InitStructure.ADC_NbrOfChannel = 3;

ADC_Init(ADC1, &ADC_InitStructure);

ADC_RegularChannelConfig(ADC1,ADC_Channel_0,1,ADC_SampleTime_239Cycles5);//通道一轉(zhuǎn)換結(jié)果保存到ADCConvertedValue[0~10][0]

ADC_RegularChannelConfig(ADC1,ADC_Channel_1,2,ADC_SampleTime_239Cycles5););//通道二轉(zhuǎn)換結(jié)果保存到ADCConvertedValue[0~10][1]

ADC_RegularChannelConfig(ADC1,ADC_Channel_2,3,ADC_SampleTime_239Cycles5); );//通道三轉(zhuǎn)換結(jié)果保存到ADCConvertedValue[0~10][2]

ADC_DMACmd(ADC1, ENABLE);//開啟ADC的DMA支持

ADC_Cmd(ADC1, ENABLE);

ADC_ResetCalibration(ADC1);

while(ADC_GetResetCalibrationStatus(ADC1));

ADC_StartCalibration(ADC1);

while(ADC_GetCalibrationStatus(ADC1));

}

做完這兩步,ADCConvertedValue數(shù)組的值就會(huì)隨輸入的模擬電壓改變而改變,在主函數(shù)中最好取多幾次的平均值,再通過公式換算成電壓?jiǎn)挝弧O旅媸侵骱瘮?shù):

int main(void)

{

int sum;

u8 i,j;

float ADC_Value[3];//用來保存經(jīng)過轉(zhuǎn)換得到的電壓值

ADC_Init();

DMA_Init();

ADC_SoftwareStartConvCmd(ADC1, ENABLE);//開始采集

while(1)

{

for(i=0;i<3;i<++)

{

sum=0;

for(j=0;j<10;j++)

{

sum+=ADCConvertedValue[j][i];

}

ADC_Value[i]=(float)sum/(10*4096)*3.3;//求平均值并轉(zhuǎn)換成電壓值

//打印(略)

}

//延時(shí)(略)

}}

ADCConvertedValue的定義用了volatile修飾詞,因?yàn)檫@樣可以保證每次的讀取都是從絕對(duì)地址讀出來的值,不會(huì)因?yàn)楸粫?huì)編譯器進(jìn)行優(yōu)化導(dǎo)致讀取到的值不是實(shí)時(shí)的AD值。

最后提醒一下,接線測(cè)試的時(shí)候記得接上基準(zhǔn)電壓,就是VREF+和VREF-這兩個(gè)引腳。如果不想外接線測(cè)試就將內(nèi)部通道的電壓讀出來,這樣就不用配置IO口了。

水平有限,僅供參考,錯(cuò)誤之處以及不足之處還望多多指教。

編輯:hfy

聲明:本文內(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)投訴
收藏 人收藏

    評(píng)論

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

    信號(hào)隔離器三種供電方式的區(qū)別

    信號(hào)隔離器是一重要的信號(hào)隔離裝置,其供電方式主要有獨(dú)立供電、回路供電和輸出回路供電三種。以下是這三種供電方式的詳細(xì)區(qū)別: 一、獨(dú)立供電 1
    的頭像 發(fā)表于 04-17 16:23 ?250次閱讀
    信號(hào)隔離器<b class='flag-5'>三種</b>供電<b class='flag-5'>方式</b>的區(qū)別

    redis三種集群方案詳解

    在Redis中提供的集群方案總共有三種(一般一個(gè)redis節(jié)點(diǎn)不超過10G內(nèi)存)。
    的頭像 發(fā)表于 03-31 10:46 ?530次閱讀
    redis<b class='flag-5'>三種</b>集群方案詳解

    深入解析三種鋰電池封裝形狀背后的技術(shù)路線與工藝奧秘

    的工藝制程,猶如把鑰匙,開啟著不同應(yīng)用場(chǎng)景的大門。本文將深入解析三種鋰電池封裝形狀背后的技術(shù)路線與工藝奧秘。 一、方形鋰電池:堅(jiān)固方正背后的工藝匠心 (一)結(jié)構(gòu)與設(shè)計(jì)優(yōu)勢(shì) 方形鋰電池以其規(guī)整的外形示人,這種
    的頭像 發(fā)表于 02-17 10:10 ?919次閱讀
    深入<b class='flag-5'>解析</b><b class='flag-5'>三種</b>鋰電池封裝形狀背后的技術(shù)路線與工藝奧秘

    三種太赫茲波的產(chǎn)生方式

    本文簡(jiǎn)單介紹了三種太赫茲波的產(chǎn)生方式。 太赫茲波(THz)是一電磁波,在電磁波譜上位于紅外與微波之間。太赫茲光子能量在1-10 meV范圍之間,在光譜分析、醫(yī)療成像、移動(dòng)通信方面都有非常廣闊
    的頭像 發(fā)表于 02-17 09:09 ?1382次閱讀
    <b class='flag-5'>三種</b>太赫茲波的產(chǎn)生<b class='flag-5'>方式</b>

    示波器的三種觸發(fā)模式

    示波器的觸發(fā)方式不僅影響波形捕捉的時(shí)機(jī),還決定了顯示的波形是否穩(wěn)定。 常見的觸發(fā)模式有三種: 單次觸發(fā) (Single)、 正常觸發(fā) (Normal)和 自動(dòng)觸發(fā) (Auto)。下面將對(duì)這三種觸發(fā)
    的頭像 發(fā)表于 01-07 11:04 ?6074次閱讀
    示波器的<b class='flag-5'>三種</b>觸發(fā)模式

    systemd journal收集日志的三種方式

    隨著 systemd 成了主流的 init 系統(tǒng),systemd 的功能也在不斷的增加,比如對(duì)系統(tǒng)日志的管理。Systemd 設(shè)計(jì)的日志系統(tǒng)好處多多,這里筆者就不再贅述了,本文筆者主要介紹 systemd journal 收集日志的三種方式
    的頭像 發(fā)表于 10-23 11:50 ?691次閱讀
    systemd journal收集日志的<b class='flag-5'>三種</b><b class='flag-5'>方式</b>

    I2S有左對(duì)齊,右對(duì)齊跟標(biāo)準(zhǔn)的I2S三種格式,那么這三種格式各有什么優(yōu)點(diǎn)呢?

    大家好,關(guān)于I2S格式,有兩個(gè)疑問請(qǐng)教一下 我們知道I2S有左對(duì)齊,右對(duì)齊跟標(biāo)準(zhǔn)的I2S三種格式,那么這三種格式各有什么優(yōu)點(diǎn)呢? 而且對(duì)于標(biāo)準(zhǔn)的I2S格式,32FS傳輸16bit的數(shù)據(jù),48fs傳輸24bit的數(shù)據(jù),最低位會(huì)移動(dòng)到右聲道,是否意味著該數(shù)據(jù)被丟棄了?還是有
    發(fā)表于 10-21 08:23

    Windows管理內(nèi)存的三種主要方式

    Windows操作系統(tǒng)提供了多種方式來管理內(nèi)存,以確保系統(tǒng)資源的有效利用和性能的優(yōu)化。以下是關(guān)于Windows管理內(nèi)存的三種主要方式的詳細(xì)闡述,包括堆內(nèi)存管理、虛擬內(nèi)存管理以及共享內(nèi)存管理,每種
    的頭像 發(fā)表于 10-12 17:09 ?2183次閱讀

    隔離開關(guān)的三種連鎖方式介紹

    的必要手段。通過連鎖機(jī)制,可以有效防止在斷路器未斷開的情況下對(duì)隔離開關(guān)進(jìn)行操作,從而避免潛在的安全隱患。 隔離開關(guān)的三種連鎖方式 隔離開關(guān)與斷路器之間的閉鎖:這種閉鎖方式確保了在斷路器未斷開之前,隔離開關(guān)無
    的頭像 發(fā)表于 09-19 11:54 ?2431次閱讀

    shell腳本執(zhí)行的三種方式及區(qū)別

    在Linux系統(tǒng)中,Shell腳本是一非常實(shí)用的工具,用于自動(dòng)化執(zhí)行一系列命令。Shell腳本可以大大提高工作效率,簡(jiǎn)化復(fù)雜的任務(wù)。在這篇文章中,我們將介紹Shell腳本執(zhí)行的三種方式及其區(qū)別
    的頭像 發(fā)表于 08-30 15:24 ?2038次閱讀

    簡(jiǎn)述三種esp32的開發(fā)方式是什么

    ESP32是一款由樂鑫(Espressif)推出的低功耗、高性能的Wi-Fi和藍(lán)牙雙模無線通信芯片,廣泛應(yīng)用于物聯(lián)網(wǎng)、智能家居、智能硬件等領(lǐng)域。本文將詳細(xì)介紹三種ESP32的開發(fā)方式:Arduino
    的頭像 發(fā)表于 08-20 09:11 ?7184次閱讀

    常用的pwm跟蹤控制方式是哪三種

    PWM(脈寬調(diào)制)跟蹤控制是一廣泛應(yīng)用于電機(jī)控制、電源管理、通信等領(lǐng)域的技術(shù)。它通過調(diào)整脈沖的寬度來控制輸出信號(hào)的占空比,從而實(shí)現(xiàn)對(duì)系統(tǒng)的精確控制。常用的PWM跟蹤控制方式主要有三種:增量式PWM
    的頭像 發(fā)表于 08-14 10:34 ?2330次閱讀

    計(jì)算機(jī)網(wǎng)絡(luò)中的三種通信方式

    計(jì)算機(jī)網(wǎng)絡(luò)中的三種通信方式,即單工通信、半雙工通信和全雙工通信,是理解和設(shè)計(jì)高效網(wǎng)絡(luò)架構(gòu)的基礎(chǔ)。每種通信方式都有其獨(dú)特的特性、應(yīng)用場(chǎng)景及優(yōu)缺點(diǎn)。以下是對(duì)這三種通信
    的頭像 發(fā)表于 08-07 15:00 ?4718次閱讀

    逆變電路的三種調(diào)壓方式

    路的三種調(diào)壓方式:脈寬調(diào)制(PWM)調(diào)壓、相位控制調(diào)壓和頻率調(diào)制調(diào)壓。 1. 脈寬調(diào)制(PWM)調(diào)壓 脈寬調(diào)制是一通過改變脈沖寬度來調(diào)整輸出電壓的調(diào)壓方式。在PWM調(diào)壓中,逆變電路的
    的頭像 發(fā)表于 08-02 16:59 ?3989次閱讀

    交流電力控制電路三種控制方式

    交流電力控制電路是現(xiàn)代電力系統(tǒng)的重要組成部分,它涉及到對(duì)交流電的控制和調(diào)節(jié)。在實(shí)際應(yīng)用中,交流電力控制電路的控制方式多種多樣,但主要可以分為三種:電壓控制、電流控制和功率控制。下面,我們將詳細(xì)介紹
    的頭像 發(fā)表于 06-16 11:19 ?5370次閱讀