第一步:stm8 ADC簡介
stm8的ADC1和ADC2是10位逐次比較型模擬數字轉換器。A/D轉換的各個通道可以執行單次和連續的轉換模式。
stm8S103k5引腳圖如下:
stm8
可以看見它只有16/15/14/13引腳是ADC的引腳,分別是AIN0、AIN1、AIN2、AIN3。都是ADC1。
第二步:ADC相關寄存器說明
基本還是和前幾節一樣都是直接截圖的數據手冊。
第三步:具體實現
實現功能:PB0腳AIN0,當接3.3V電壓時點亮LED,接地時LED熄滅,沒有可調電阻和可調電源,就這么操作了。
#include "IOSTM8S105K4.h"
#define u16 unsigned int
#define u8 unsigned char
void System_Init(void)
{
CLK_SWR = 0xE1; //選擇高速內部時鐘HSI為主時鐘
CLK_ICKR |= 0x01; //高速內部HSI時鐘使能
while(!(CLK_ICKR&0x02)); //等待內部高速HSI就緒
CLK_CKDIVR = 0x18; // Fhsi = Fhsi = Fcpu = Fmaster = 2MHz
}
/*延時xms函數@ HSI 2MHz*/
void delay_ms(u16 xms)
{
u16 i,j;
for(i=xms;i>0;i--)
for(j=330;j>0;j--)
{
asm("nop");
}
}
void Gpio_Init(void)
{
/*PE5設置為推挽輸出*/
PE_DDR|=0x20;
PE_CR1|=0x20;
PE_CR2|=0x00; //最大為10MHz
}
/*ADC初始化*/
void Adc_Init(void)
{
/*PB0 設置為懸浮輸入*/
PB_DDR &=0xFE; //PB0輸入模式
PB_CR1 &=0xFE; //PB0浮空輸入
PB_CR2 &=0xFE; //PB0禁止外部中斷
/*開啟ADC時鐘*/
CLK_PCKENR2 |= 0x08; //開啟ADC時鐘 ADC時鐘默認是開啟的,可不設置
/*設置ADC時鐘、轉換模式、數據對齊格式和通道*/
ADC_CR1 = 0x00; //ADC時鐘1MHz,單次轉換,關閉ADC 默認如此
ADC_CR2 = 0x00; //數據左對齊,禁止外部觸發,禁止掃描模式 默認如此
ADC_CSR = 0x00; //選擇通道0 AIN0 默認如此
}
/*獲取10位的ADC轉換結果*/
u16 Get_Adc_Result(void)
{
u8 ADC_H,ADC_L;
u16 ADC_temp;
ADC_CR1 |= 0x01; //啟動ADC 啟動ADC電源
delay_ms(1); //延時1ms 等待ADC啟動
ADC_CR1 |= 0x01; //再次啟動ADC轉換
while((ADC_CSR&0x80) == 0); //等待ADC轉換結束
ADC_H = ADC_DRH; //左對齊 先讀高八位
ADC_L = ADC_DRL; //讀取低位值
ADC_temp = (ADC_H << 8) +ADC_L; //兩個八位數據合并成一個16位數據
return ADC_temp; //返回10位ADC轉換結果
}
int main( void )
{
u16 temp;
System_Init();
Gpio_Init();
Adc_Init();
while (1)
{
temp = Get_Adc_Result();
if(temp>=800) //如果ADC轉換結果大于800
{
PE_ODR = 0x00; //PE5口的LED點亮
}
else PE_ODR = 0xFF; //否則PE5口的LED不點亮
delay_ms(800); //延時800ms
}
}
上一篇:IAR for STM8 研究
下一篇:STM8的啟動過程(基于IAR)
推薦閱讀
史海拾趣
Advanced Components Industries Inc(以下簡稱ACI)在電子行業的崛起,始于一次關鍵的技術突破。公司研發團隊成功開發出一種新型的高效能電子元件,這一創新不僅提高了電子設備的性能,還降低了能耗。這一成果迅速吸引了市場的關注,ACI的訂單量激增,公司開始迅速擴張。
隨著技術的不斷完善和市場的認可,ACI逐漸在電子元件領域建立了自己的品牌地位。公司不斷投入研發,推出了一系列具有競爭力的產品,逐漸在行業中嶄露頭角。
Cobham Semiconductor Solutions深知人才是企業發展的核心。因此,公司一直注重人才的引進和培養。公司積極招聘業界精英,為團隊注入新的活力。同時,公司還建立了完善的培訓體系,為員工提供持續的學習和發展機會。這種人才戰略的實施,使得Cobham的團隊素質不斷提升,為公司的持續發展提供了有力保障。
為了進一步提升品牌影響力和市場競爭力,Digital View公司開始實施國際化戰略。公司積極參加國際展覽和論壇,與全球同行建立合作關系,引進先進技術和管理經驗。同時,公司還在海外設立研發中心和生產基地,以便更好地服務全球客戶。通過國際化戰略的實施,Digital View的品牌知名度和市場份額均得到了顯著提升。
隨著電子行業的快速發展,許多電子產品型號逐漸停產或變得稀缺。ASI敏銳地捕捉到了這一市場變化,并開始專注于生產停產及稀缺元器件的替代或新設計。其RF功率晶體管生產線主要提供Motorola、Philips及SGS Thomson公司的替代型號,而微波二極管生產線則主要提供HP、M/A-COM、Alpha及Loral/Frequency sources公司的替代型號。這一策略不僅滿足了市場的需求,還進一步鞏固了ASI在行業中的地位。
本人設計的工業儀表,遇到這樣的問題:輸入信號0-20MV。當用手觸摸輸入端子的時候,顯示值會波動,這是什么干擾(好象是串模干擾),如何解決?注明:信號是經過了2個模擬開關(CD4051),由OP07放大 再采樣。… 查看全部問答∨ |
|
LPC1114 datasheet深度解析LPC1100低功耗設計的七個秘密以LPC1100產品進行設計32位MCU開發全攻略上32位MCU開發全攻略下LPC1000 系列 Q&A及支持 … 查看全部問答∨ |
pxa3XX 從CF卡上啟動nk.bin 的bootloader 請問各位大俠有誰做過pxa310或者pxa270的bootloader 要求從CF卡啟動nk.bin 我應該用什么軟件來編譯,用wce6.0 還是ARM提供的AXD 是不是wce6.0下生成bootimage.nb0 就是bootloader 我用仿 ...… 查看全部問答∨ |
我在SD卡里面創建一個“我們.txt”文件,結果在PC機上看到文件名為“컒쏇.txt”。 創建“我們.txt”文件,并給此文件里面寫一段中文,里面的中文都很正常。就是文件名為“컒쏇.txt” 不過用FileScanName函數可以 ...… 查看全部問答∨ |