娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

AVR的模數(shù)轉(zhuǎn)換器ADC具有下列特點: 

  • 10位精度;

  • 0.5LSB積分非線形誤差

  • ±2LSB的絕對精度;

  • 13μs~260μs的轉(zhuǎn)換時間;

  • 在最大精度下可達到每秒15kSPS的采樣速率;

  • 8路可選的單端輸入通道;

  • 7路差分輸入通道;

  • 2路差分輸入通道帶有可選的10×和200×增益;

  • ADC轉(zhuǎn)換結(jié)果的讀取可設(shè)置為左端對齊(LEFT ADJUSTMENT);

  • ADC的電壓輸入范圍0~Vcc;

  • 可選擇的內(nèi)部2.56V的ADC參考電壓源;

  • 自由連續(xù)轉(zhuǎn)換模式和單次轉(zhuǎn)換模式;

  • ADC自動轉(zhuǎn)換觸發(fā)模式選擇;

  • ADC轉(zhuǎn)換完成中斷;

  • 休眠模式下的噪聲抑制器(NOISE CANCELER)。


在本實例中,我們將編寫程序?qū)崿F(xiàn)將模數(shù)轉(zhuǎn)換后獲得的電壓值通過單片機的串口發(fā)送到計算機,然后通過計算機上的串口助手顯示測量的電壓值。 

本實例共有3個功能模塊,分別描述如下: 
● 單片機系統(tǒng):使用單片機的串口實現(xiàn)將模數(shù)轉(zhuǎn)換后獲得的電壓值通過串口發(fā)送到計算機。 
● 外圍電路:RS232電平轉(zhuǎn)換電路,DB9串行接口插座,模擬電壓輸入采集電路。
● 軟件程序:進一步熟悉單片機的串行通信,并掌握單片機的模數(shù)轉(zhuǎn)換的方法。

6.2.2、器件和原理
關(guān)于串行接口的原理已接單片機與計算機的串口的連接在上一實例中進行了描述,在本實例中不再重復(fù)。

本實例只介紹ATmega16單片機如何通過內(nèi)置的模數(shù)轉(zhuǎn)換模塊采集外界輸入的模擬電壓。

1、ATmega16單片機的模數(shù)轉(zhuǎn)換器ADC介紹 
由于單片機只能處理數(shù)字信號,所以外部的模擬信號量需要轉(zhuǎn)變成數(shù)字量才能進一步的由單片機進行處理。ATmega16內(nèi)部集成有一個10位逐次比較(successive approximation)ADC電路。因此使用AVR可以非常方便的處理輸入的模擬信號量。 

ATmega16的ADC與一個8通道的模擬多路選擇器連接,能夠?qū)σ訮ORTA作為ADC輸入引腳的8路單端模擬輸入電壓進行采樣,單端電壓輸入以0V(GND)為參考。另外還支持16種差分電壓輸入組合,其中2種差分輸入方式(ADC1,ADC0和ACD3,ADC2)帶有可編程增益放大器,能在A/D轉(zhuǎn)換前對差分輸入電壓進行0dB(1×),20dB(10×)或46dB(200×)的放大。還有七種差分輸入方式的模擬輸入通道共用一個負極(ADC1),此時其它任意一個ADC引腳都可作為相應(yīng)的正極。若增益為1×或10×,則可獲得8位的精度。如果增益為200×,那么轉(zhuǎn)換精度為7位。 

AVR的ADC功能單元由獨立的專用模擬電源引腳AVcc供電。AVcc和Vcc的電壓差別不能大于±0.3V。ADC轉(zhuǎn)換的參考電源可采用芯片內(nèi)部的2.56V參考電源,或采用AVcc,也可使用外部參考電源。使用外部參考電源時,外部參考電源由引腳ARFE接入。使用內(nèi)部電壓參考源時,可以通過在AREF引腳外部并接一個電容來提高ADC的抗噪性能。 

ADC功能單元包括采樣保持電路,以確保輸入電壓在ADC轉(zhuǎn)換過程中保持恒定。ADC通過逐次比較(successive approximation)方式,將輸入端的模擬電壓轉(zhuǎn)換成10位的數(shù)字量。最小值代表地,最大值為AREF引腳上的電壓值減1個LSB。可以通過ADMUX寄存器中REFSn位的設(shè)置,選擇將芯片內(nèi)部參考電源(2.56V)或AVcc連接到AREF,作為A/D轉(zhuǎn)換的參考電壓。這時,內(nèi)部電壓參考源可以通過外接于AREF引腳的電容來穩(wěn)定,以改進抗噪特性。 

模擬輸入通道和差分增益的選擇是通過ADMUX寄存器中的MUX位設(shè)定的。任何一個ADC的輸入引腳,包括地(GND)以及內(nèi)部的恒定能隙(fixed bandgap)電壓參考源,都可以被選擇用來作為ADC的單端輸入信號。而ADC的某些輸入引腳則可選擇作為差分增益放大器的正、負極輸入端。當選定了差分輸入通道后,差分增益放大器將兩輸入通道上的電壓差按選定增益系數(shù)放大,然后輸入到ADC中。若選定使用單端輸入通道,則增益放大器無效。 
通過設(shè)置ADCSRA寄存器中的ADC使能位ADEN來使能ADC。在ADEN沒有置“1”前,參考電壓源和輸入通道的選定將不起作用。當ADEN位清“0”后,ADC將不消耗能量,因此建議在進入節(jié)電休眠模式前將ADC關(guān)掉。 

ADC將10位的轉(zhuǎn)換結(jié)果放在ADC數(shù)據(jù)寄存器中(ADCH和ADCL)。默認情況下,轉(zhuǎn)換結(jié)果為右端對齊(RIGHT ADJUSTED)的。但可以通過設(shè)置ADMUX寄存器中ADLAR位,調(diào)整為左端對齊(LEFT ADJUSTED)。如果轉(zhuǎn)換結(jié)果是左端對齊,并且只需要8位的精度,那么只需讀取ADCH寄存器的數(shù)據(jù)作為轉(zhuǎn)換結(jié)果就達到要求了。否則,必須先讀取ADCL寄存器,然后再讀取ADCH寄存器,以保證數(shù)據(jù)寄存器中的內(nèi)容是同一次轉(zhuǎn)換的結(jié)果。因為一旦ADCL寄存器被讀取,就阻斷了ADC對ADC數(shù)據(jù)寄存器的操作。這就意味著,一旦指令讀取了ADCL,那么必須緊接著讀取一次ADCH;如果在讀取ADCL和讀取ADCH的過程中正好有一次ADC轉(zhuǎn)換完成,ADC的2個數(shù)據(jù)寄存器的內(nèi)容是不會被更新的,該次轉(zhuǎn)換的結(jié)果將丟失。只有當ADCH寄存器被讀取后,ADC才可以繼續(xù)對ADCL和ADCH寄存器操作更新。 

ADC有自己的中斷,當轉(zhuǎn)換完成時中斷將被觸發(fā)。盡管在順序讀取ADCL和ADCH寄存器過程中,ADC對ADC數(shù)據(jù)寄存器的更新被禁止,轉(zhuǎn)換的結(jié)果丟失,但仍會觸發(fā)ADC中斷。 
2、ATmwga16單片機的模數(shù)轉(zhuǎn)換器ADC相關(guān)的I/O寄存器
1.ADC多路復(fù)用器選擇寄存器—ADMUX

  • 位7,6—REFS[1:0]:ADC參考電源選擇

REFS1、REFS2用于選擇ADC的參考電壓源,見表6.2.1。如果這些位在ADC轉(zhuǎn)換過程中被改變,新的選擇將在該次ADC轉(zhuǎn)換完成后(ADCSRA中的ADIF被置位)才生效。一旦選擇內(nèi)部參考源(AVcc、2.56V)為ADC的參考電壓后,AREF引腳上不得施加外部的參考電源,只能與GND之間并接抗干擾電容。


表6.2.1  ADC參考電源選擇

REFS1

REFS0

ADC參考電源

0

0

外部引腳AREF,斷開內(nèi)部參考源連接 

0

1

AVcc,AREF外部并接電容 

1

0

保留 

1

1

內(nèi)部2.56V,AREF外部并接電容 
  • 位5—ADLAR:ADC結(jié)果左對齊選擇

ADLAR位決定轉(zhuǎn)換結(jié)果在ADC數(shù)據(jù)寄存器中的存放形式。寫“1”到ADLAR位,將使轉(zhuǎn)換結(jié)果左對齊(LEFT ADJUST);否則,轉(zhuǎn)換結(jié)果為右對齊(RIGHT ADJUST)。無論ADC是否正在進行轉(zhuǎn)換,改變ADLAR位都將會立即影響ADC數(shù)據(jù)寄存器。 

  • 位4..0—MUX4:0:模擬通道和增益選擇

這5個位用于對連接到ADC的輸入通道和差分通道的增益進行選擇設(shè)置,詳見表6.2.2。注意,只有轉(zhuǎn)換結(jié)束后(ADCSRA的ADIF是“1”),改變這些位才會有效。


表6.2.2   ADC輸入通道和增益選擇

MUX[4:0]

單端輸入

差分正極輸入

差分負極輸入

增益

00000

ADC0

N/A

00001

ADC1

00010

ADC2

00011

ADC3

00100

ADC4

00101

ADC5

00110

ADC6

00111

ADC7

01000

N/A

ADC0

ADC0

10×

01001

ADC1

ADC0

10×

01010

ADC0

ADC0

200×

01011

ADC1

ADC0

200×

01100

ADC2

ADC2

10×

01101

ADC3

ADC2

10×

01110

ADC2

ADC2

200×

01111

ADC3

ADC2

200×

10000

ADC0

ADC1

10001

ADC1

ADC1

10010

ADC2

ADC1

10011

ADC3

ADC1

10100

ADC4

ADC1

10101

ADC5

ADC1

10110

ADC6

ADC1

10111

ADC7

ADC1

11000

ADC0

ADC2

11001

ADC1

ADC2

11010

ADC2

ADC2

11011

ADC3

ADC2

11100

ADC4

ADC2

11101

ADC5

ADC2

11110

1.22V(VBG)

N/A

11111

0V(GND)

本實例中我們需要設(shè)置ADC的參考電壓源為AVcc,即REFS0設(shè)置為1,ADC默認轉(zhuǎn)換結(jié)果為右對齊,我們不需要改變,模擬通道選擇ADC0通道單端輸入,即MUX4:0。

2.ADC控制和狀態(tài)寄存器A—ADCSRA

  • 位7—ADEN:ADC使能

該位寫入“1”時使能ADC,寫入“0”關(guān)閉ADC。如在ADC轉(zhuǎn)換過程中將ADC關(guān)閉,該次轉(zhuǎn)換隨即停止。

  • 位6—ADSC:ADC轉(zhuǎn)換開始

在單次轉(zhuǎn)換模式下,置該位為“1”,將啟動一次轉(zhuǎn)換。在自由連續(xù)轉(zhuǎn)換模式下,該位寫入“1”將啟動第一次轉(zhuǎn)換。先置位ADEN位使能ADC,再置位ADSC;或置位ADSC的同時使能ADC,都會使能ADC開始進行第一次轉(zhuǎn)換。第一次ADC轉(zhuǎn)換將需要25個ADC時鐘周期,而不是常規(guī)轉(zhuǎn)換的13個ADC時鐘周期,這是因為第一次轉(zhuǎn)換需要完成對ADC的初始化。 
在ADC轉(zhuǎn)換的過程中,ADSC將始終讀出為“1”。當轉(zhuǎn)換完成時,它將轉(zhuǎn)變?yōu)椤?”。強制寫入“0”是無效的。 

  • 位5—ADATE:ADC自動轉(zhuǎn)換觸發(fā)允許

當該位被置為“1”時,允許ADC工作在自動轉(zhuǎn)換觸發(fā)工作模式下。在該模式下,在觸發(fā)信號的上升沿時ADC將自動開始一次ADC轉(zhuǎn)換過程。ADC的自動轉(zhuǎn)換觸發(fā)信號源由SFIOR寄存器中的ADTS位選擇確定。 

  • 位4—ADIF:ADC中斷標志位

當ADC轉(zhuǎn)換完成并且ADC數(shù)據(jù)寄存器被更新后該位被置位。如果ADIE位(ADC轉(zhuǎn)換結(jié)束中斷允許)和SREG寄存器中的I位被置“1”,ADC中斷服務(wù)程序?qū)⒈粓?zhí)行。ADIF在執(zhí)行相應(yīng)的中斷處理向量時被硬件自動清零。此外,ADIF位可以通過寫入邏輯“1”來清零。 

  • 位3—ADIE:ADC中斷允許

當該位和SREG寄存器中的I位同時被置位時,允許ADC轉(zhuǎn)換完成中斷。 

  • 位2,0—ADPS[2:0]:ADC預(yù)分頻選擇

這些位決定了XTAL時鐘與輸入到ADC的ADC時鐘之間分頻數(shù),見表6.2.3。

表6.2.3   ADC時鐘分頻

ADPS[2:0]

分  頻  系  數(shù)

000

2

001

2

010

4

011

8

100

16

101

32

110

64

111

128

本實例中我們需要使能ADC,即ADEN設(shè)置為1,我們不用自動轉(zhuǎn)換,也不需要中斷,所以,ADTE、ADIE位不需要設(shè)置。在通常情況下,ADC的逐次比較轉(zhuǎn)換電路要達到最大精度時,需要50kHz~200kHz之間的采樣時鐘。本例中使用的時鐘是12M的,所以要將時鐘64分頻,分頻后ADC頻率為188KHz,即時鐘分頻選擇ADPS[2:0]=6。

3.ADC數(shù)據(jù)寄存器—ADCL和ADCH

  • ADLAR = 0,ADC轉(zhuǎn)換結(jié)果右對齊時,ADC結(jié)果的保存方式


  • ADLAR = 1,ADC轉(zhuǎn)換結(jié)果左對齊時,ADC結(jié)果的保存方式


當ADC轉(zhuǎn)換完成后,可以讀取ADC寄存器的ADC0-ADC9得到ADC的轉(zhuǎn)換的結(jié)果。如果是差分輸入,轉(zhuǎn)換值為二進制的補碼形式。一旦開始讀取ADCL后,ADC數(shù)據(jù)寄存器就不能被ADC更新,直到ADCH寄存器被讀取為止。因此,如果結(jié)果是左對齊(ADLAR=1),且不需要大于8位的精度的話,僅僅讀取ADCH寄存器就足夠了。否則,必須先讀取ADCL寄存器,再讀取ADCH寄存器。ADMUX寄存器中的ADLAR位決定了從ADC數(shù)據(jù)寄存器中讀取結(jié)果的格式。如果ADLAR位為“1”,結(jié)果將是左對齊;如果ADLAR位為“0”(默認情況),結(jié)果將是右對齊。 

4.特殊功能I/O寄存器—SFIOR

  • 位7..5—ADTS[2:0]:ADC自動轉(zhuǎn)換觸發(fā)源選擇

當ADCSRA寄存器中的ADATE為“1”,允許ADC工作在自動轉(zhuǎn)換觸發(fā)工作模式時,這3位的設(shè)置用于選擇ADC的自動轉(zhuǎn)換觸發(fā)源。如果禁止了ADC的自動轉(zhuǎn)換觸發(fā)(ADATE為“0”),這3個位的設(shè)置值將不起任何作用。

表10-6   ADC自動轉(zhuǎn)換觸發(fā)源的選擇

ADTS[2:0]

觸  發(fā)  源

000

連續(xù)自由轉(zhuǎn)換

001

模擬比較器

010

外部中斷0

011

T/C0比較匹配

100

T/C0溢出

101

T/C1比較匹配B

110

T/C1溢出

111

T/C1輸入捕捉

本例中我們不使用自動轉(zhuǎn)換功能,所以該寄存器可以不必設(shè)置。

6.2.3、電路
本實例的電路包括232電平轉(zhuǎn)換電路和電阻分壓電路,這兩種電路在前面的實例中均做過介紹,這里不再重復(fù)。

1、電路原理
在本實例中利用MAX3232芯片使單片機輸出的TTL電平轉(zhuǎn)換為標準的RS232電平,從而使計算機能夠識別。同時將計算機輸出的RS232電平轉(zhuǎn)換為單片機可以識別的TTL電平。

利用電位器產(chǎn)生電阻分壓電路,從而產(chǎn)生變化的模擬電壓加到單片機的模擬信號采集端口,供單片機采集。

2、電路連接 
電路中MAX3232芯片的9、10引腳分別連接單片機的PD0、PD1端口,MAX3232的13、14引腳分別連接計算機串口線的3、2腳。
電位器RP2的動片引腳連接單片機的模擬信號采集通道PA0(ADC0)。

3、特別說明
本學習板采用的是串口插座是公頭的,所以與計算機相連的串口連接線應(yīng)該是交叉串口線,而不是串口延長線。

6.2.4、程序設(shè)計

1、程序功能
程序的功能是通過單片機的串行接口,將單片機采集到的模擬電壓值發(fā)送到計算機中,通過計算機上的串口助手顯示采集的電壓值。    
● 單片機串行接收中斷的編程
在本例中,我們用到了單片機的串行接收中斷,需要編寫串行接收中斷服務(wù)程序,通過查詢WINAVR(GCC)的中斷庫函數(shù)手冊,可以查找到ATmega16單片機串行接收中斷的中斷向量為USART_RXC_vect。據(jù)此我們可以編寫串行接收中斷服務(wù)程序,如下:
//接收中斷函數(shù) 
ISR(USART_RXC_vect )
{
unsigned char Rev;
Rev = UDR;              //從USART I/O數(shù)據(jù)寄存器-UDR中讀出數(shù)據(jù) 
Usart_PutChar(Rev);    //將接收到的數(shù)據(jù)發(fā)送 
}
在中斷服務(wù)程序中,我們首先把單片機串口接收到的數(shù)據(jù)放入變量Rev中,然后調(diào)用上一實例中編寫的串行接口字節(jié)發(fā)送函數(shù)將變量Rev中的數(shù)據(jù)發(fā)送到計算機。 

2、 單片機與計算機串行通信結(jié)果的觀察 
在觀察本例運行結(jié)果時,我們同樣要用到串口助手,本例中,單片機發(fā)送串口數(shù)據(jù)采用的波特率是9600bps,數(shù)據(jù)格式是8位數(shù)據(jù)位,1位停止位,無奇偶校驗。在串口助手里面,我們也要將波特率和數(shù)據(jù)格式設(shè)置成一樣的。 

3、函數(shù)說明
本實例用到了6個函數(shù),分別是: 
void Port_Init(void);   //端口初始化配置 
void Usart_Init(void);  //USART寄存器設(shè)置 
void AD_Init(void);    //AD初始化 
void Usart_PutChar(unsigned char cTXData);  //字節(jié)發(fā)送函數(shù) 
void Usart_PutString(unsigned char *pcString);  // 字符串發(fā)送數(shù)據(jù) 
unsigned int AD_GetData(void);    //AD轉(zhuǎn)換函數(shù)   

4、使用WINAVR開發(fā)環(huán)境,在本例中我們使用的是外部12M的晶振,所以需要將MAKEFILE文件中的時鐘頻率修改為12M。另外在程序燒錄到單片機的時候,熔絲位也要選擇為外部12M晶振(注意是晶振,不是外部振蕩器,一定不要選擇錯了,否則會導(dǎo)致單片機不能再燒寫程序)。

5、程序代碼

#include         
#include
#include    //中斷函數(shù)頭文件
//常量聲明
#define BAUD 9600         //波特率設(shè)置值
//全局變量聲明
unsigned int ADData;          //AD轉(zhuǎn)換獲得的數(shù)據(jù)
//函數(shù)聲明
void Port_Init(void);   //端口初始化配置
void Usart_Init(void);  //USART寄存器設(shè)置
void AD_Init(void);    //AD初始化
void Usart_PutChar(unsigned char cTXData);  //字節(jié)發(fā)送函數(shù)
void Usart_PutString(unsigned char *pcString);  // 字符串發(fā)送數(shù)據(jù)
unsigned int AD_GetData(void);    //AD轉(zhuǎn)換函數(shù)
int main(void)            
{
unsigned char Delay3s;
      Port_Init();
Usart_Init();
AD_Init();

Usart_PutString("AD轉(zhuǎn)換測試程序");
Usart_PutString("測得ADC0通道的電壓值為:");

sei();          //使能全局中斷  

while(1)
{
ADData = (int)((long)AD_GetData() * 5010 / 1024);         //將獲得的AD值轉(zhuǎn)換為電壓值 
//單位為mv。 

Usart_PutChar(ADData / 1000 + 0x30);      //得到電壓值的千位并發(fā)送
Usart_PutChar('.');                          //發(fā)送小數(shù)點
Usart_PutChar(ADData % 1000 / 100 + 0x30);   //得到電壓值的百位并發(fā)送
Usart_PutChar(ADData % 100 / 10 + 0x30);    //得到電壓值的十位并發(fā)送
Usart_PutChar(ADData % 10 + 0x30);     //得到電壓值的個位并發(fā)送
Usart_PutChar('V');                  //發(fā)送電壓符號“V”

Usart_PutChar(0x0d);     // 
Usart_PutChar(0x0a);     //  AD值發(fā)送結(jié)束,回車換行

for(Delay3s = 0;Delay3s < 30;Delay3s++)     //延時3S
{
_delay_ms(90);
}
}
}
//端口狀態(tài)初始化設(shè)置函數(shù)
void Port_Init()
{
PORTA = 0X00;         
DDRA = 0x00;   //ADC通道設(shè)置為輸入口,高阻態(tài)     

}
//USART寄存器配置函數(shù)
void Usart_Init()
{
UCSRA = 0X00;    
UCSRC |= (1<//UCSRC寄存器與UBRRH寄存器共用相同的I/O地址,寫 UCSRC 時, URSEL 應(yīng)設(shè)置為 1。 
UBRRL = (F_CPU / BAUD / 16 - 1) % 256;    //波特率設(shè)置
UBRRH = (F_CPU / BAUD / 16 - 1) / 256;        
UCSRB |= (1 << RXCIE) | (1 << RXEN) | (1 << TXEN);    //發(fā)送使能

}
//字節(jié)發(fā)送函數(shù)
void Usart_PutChar(unsigned char cTXData)
{
while( !(UCSRA & (1 << UDRE)) );  //只有數(shù)據(jù)寄存器為空時才能發(fā)送數(shù)據(jù)
UDR = cTXData;                   //發(fā)送數(shù)據(jù)送USART I/O數(shù)據(jù)寄存器-UDR
}
//接收中斷函數(shù)
ISR(USART_RXC_vect )
{
unsigned char Rev;
Rev = UDR;              //從USART I/O數(shù)據(jù)寄存器-UDR中讀出數(shù)據(jù)
Usart_PutChar(Rev);    //將接收到的數(shù)據(jù)發(fā)送
}

void Usart_PutString(unsigned char *pcString)
{
while (*pcString)
{
Usart_PutChar(*pcString++);   
}
Usart_PutChar(0x0D);
Usart_PutChar(0x0A);  //結(jié)尾發(fā)送回車換行
}
//AD轉(zhuǎn)換初始化函數(shù)
void AD_Init()
{
ADMUX |= (1 << REFS0);     //ADC參考電壓為AVcc,ADC結(jié)果右對齊,選擇通道ADC0
ADCSRA |= (1 << ADEN) | (1 << ADPS2) | (1 << ADPS1); //使能AD轉(zhuǎn)換,ADC時鐘64分頻 
}
//AD轉(zhuǎn)換函數(shù)
unsigned int AD_GetData()
{
ADCSRA |= (1 << ADSC);     //開始AD轉(zhuǎn)換
while(!(ADCSRA & (1 << ADIF)));    //等待轉(zhuǎn)換完成
ADCSRA |= (1 << ADIF);              //清零ADC中斷標志位

return ADC;        //返回ADC值
}


附錄:ADC應(yīng)用設(shè)計要點 1.預(yù)分頻與轉(zhuǎn)換時間 
在通常情況下,ADC的逐次比較轉(zhuǎn)換電路要達到最大精度時,需要50kHz~200kHz之間的采樣時鐘。在要求轉(zhuǎn)換精度低于10位的情況下,ADC的采樣時鐘可以高于200kHz,以獲得更高的采樣率。 

[1] [2]
關(guān)鍵字:ATmage16  ADC 引用地址:ATmage16-ADC

上一篇:AVR ATmega1280定時器PWM輸出程序
下一篇:AVR_點亮LED程序

推薦閱讀

GPIO:STM32的(64引腳的)IO口一共有3個,分別是PA、PB、PC.STM32的IO端口可以由軟件配置成8種模式:1,輸入浮空2,輸入上拉3,輸入下拉4,模擬輸入5,開漏輸出6,推挽輸出7,推挽復(fù)用功能8,開漏復(fù)用功能STM32的每個IO端口都有7個寄存器來控制。他們分別是:配置模式的2個32位的端口配置寄存器CRL和CRH;2個32位的數(shù)據(jù)寄存器IDR和ODR;1個32位的置位/復(fù)位寄存...
示波器是一種常用的電子測量儀器,可以把肉眼無法看見的電信號轉(zhuǎn)換為圖像便于人們的觀察。示波器在使用的過程中用戶對于示波器的工作原理和組成是必須要掌握的,這對于用戶的使用是很重要的。今天小編就來具體為大家介紹一下示波器的工作原理和組成吧,希望可以幫助到大家。函數(shù)信號發(fā)生器的原理和使用1. 基本要求:設(shè)計制作一個方波-三角波-正弦波信號...
高通技術(shù)公司宣布,支持奇瑞控股旗下品牌捷途汽車和騰訊系車聯(lián)網(wǎng)企業(yè)梧桐車聯(lián),為即將交付的捷途車型帶來卓越數(shù)字座艙體驗。通過結(jié)合第三代高通驍龍?汽車數(shù)字座艙平臺的高性能計算、人工智能(AI)和多媒體能力以及梧桐車聯(lián)TINNOVE智能網(wǎng)聯(lián)車載操作系統(tǒng)整合解決方案,捷途X70 PLUS成為中國首批采用驍龍汽車數(shù)字座艙平臺并搭載TINNOVE系統(tǒng)的車型,為用戶...
據(jù)外媒報道,意法半導(dǎo)體(STMicroelectronics)宣布推出全球首款汽車衛(wèi)星導(dǎo)航芯片STA8135GA,可提供高級駕駛系統(tǒng)所需的高質(zhì)量位置數(shù)據(jù)。STA8135GA屬于意法半導(dǎo)體的Teseo V系列,是第一款通過汽車認證的GNSS(全球?qū)Ш叫l(wèi)星系統(tǒng))接收器,除了標準的多波段位置-速度-時間(PVT)外,還集成了片上三波段定位測量引擎和航位推算。(圖片來源:意法半導(dǎo)體)三...

史海拾趣

問答坊 | AI 解惑

串口通訊時斷時續(xù)

主板rs232連接程序,過幾個小時程序就會掛起。和硬件有關(guān)嗎?(對通訊不太懂,麻煩說詳細點可能原因)謝謝!…

查看全部問答∨

PB編譯時發(fā)生錯誤

想用VT6656 USB網(wǎng)卡,但安裝驅(qū)動后編譯出錯,錯誤如圖: 網(wǎng)上搜索了一下,毫無頭緒,請問各位有沒有碰到過類似的問題啊? 我用的是ATMEL 9261的bsp。…

查看全部問答∨

請問Windows Embedded CE 6.0 為什么只有評估版?

我在網(wǎng)上到處找Windows Embedded CE 6.0的正式版,但是沒有。全都是評估版。請問各位哪里有正式版下載?謝謝。…

查看全部問答∨

WinCE程序移植問題

我在原來的VC程序中用到了ltoa函數(shù),把long型數(shù)據(jù)存在字符數(shù)組中,但是在WinCE中不支持,有什么其它的辦法實現(xiàn)這個功能嗎?請教各位了…

查看全部問答∨

請教各位前輩,32位變量被中斷騷擾??

uint16 moniliangruanjianjizhun(uint16 a,uint16 b) //模擬量軟件基準計算 { unsigned long int c,d; if(a>=b) a=0xffff; else {   //_asm("sim"); //禁止中斷后計算正常   c=a; d=c<<16; d-=c; //==d ...…

查看全部問答∨

pwm的幅值有要求嗎?

我想用pt4207來做led的pwm調(diào)光電路,pt4207的1腳的pwm信號幅值有什么要求,0~5v可以不,還有,1腳要怎樣連?…

查看全部問答∨

STM32中SPI數(shù)據(jù)傳輸問題

我在STM32外面接了一個ADC-TLC2543,用STM32的SPI傳輸ADC轉(zhuǎn)換之后的結(jié)果。現(xiàn)在我用示波器觀察STM32中MOSI(PA7)的輸出,示波器中沒有波形(片選信號和時鐘信號正常),把MOSI接到ADC中,ADC的輸出用示波器看有波形,但輸入STM32中讀出的數(shù)據(jù)很小, ...…

查看全部問答∨

關(guān)于數(shù)模模數(shù)轉(zhuǎn)換的問題?可能是我對單片機理解還不夠深,請問誰能解答一下?

比如用單片機時我直接置高電平是外接發(fā)光二極管點亮,與我用數(shù)模轉(zhuǎn)換后輸出一個電壓點亮發(fā)光二極管   請問這兩個過程有區(qū)別么,為什么要加數(shù)模轉(zhuǎn)換?…

查看全部問答∨

多功能調(diào)試測試助手-精密電壓源AD5791

多功能調(diào)試測試助手-精密電壓源AD5791 環(huán)境說明:CubeSuites+ 文件: AD5791.c   AD5791.h 函數(shù): AD57XX_Init(AD5791); void AD57XX_SetRegisterValue(unsigned char registerAddress, unsigned long registerValue) unsigned ...…

查看全部問答∨

74LS245和ULN2803

看到一電子設(shè)備,MCU控制繼電器時,是先經(jīng)過74LS245,再經(jīng)過ULN2803去繼電器,而控制LED時,只經(jīng)過ULN2803,沒有使用74LS245,請問是大概會基于什么,在驅(qū)動繼電器和LED時,做了不同的設(shè)計呢。另外,麻煩順便通俗的介紹下74LS245,我在網(wǎng)上也查了一 ...…

查看全部問答∨
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 临西县| 聂拉木县| 镇赉县| 尚志市| 旌德县| 呼和浩特市| 通道| 洪泽县| 太保市| 永仁县| 偏关县| 和硕县| 肃宁县| 郴州市| 平山县| 定结县| 河西区| 芮城县| 滨州市| 常德市| 米林县| 长海县| 连平县| 德兴市| 柘荣县| 辽宁省| 泽普县| 荃湾区| 布拖县| 太白县| 玉屏| 阿坝| 会宁县| 苏尼特左旗| 临高县| 革吉县| 龙山县| 连南| 商南县| 钦州市| 科技|