#include"stm8s.h"
void Init_ADC1()
{
ADC1_Init( ADC1_CONVERSIONMODE_CONTINUOUS , //配置ADC1工作在連續轉換模式
ADC1_CHANNEL_2 , //選擇通道2
ADC1_PRESSEL_FCPU_D18, //ADC的工作頻率進行系統時鐘的18分頻
ADC1_EXTTRIG_GPIO , //不使能外部觸發產生采樣
DISABLE ,
ADC1_ALIGN_RIGHT , //采樣數據進行右對齊輸出
ADC1_SCHMITTTRIG_CHANNEL2 , //不使能通道施密特
DISABLE
);
ADC1_Cmd(ENABLE); //使能ADC1模塊
ADC1_ITConfig(ADC1_IT_EOCIE , ENABLE); //配置ADC1采樣數據結束時產生中斷
ADC1_StartConversion(); //使ADC開始轉換數據
}
void USART_Init()
{
UART1_Init(9600 , //配置串口通訊的波特率為9600
UART1_WORDLENGTH_8D , //配置串口為8位數據通訊
UART1_STOPBITS_1, //配置串口通訊產生1個停止位
UART1_PARITY_NO , //配置串口為無校驗
UART1_SYNCMODE_CLOCK_DISABLE , //配置串口為無流控制
UART1_MODE_TX_ENABLE); //使能串口為發送數據模式
UART1_Cmd(ENABLE); //對串口使能
}
void UART_Send(u8 data)
{
while(UART1_GetFlagStatus(UART1_FLAG_TXE) == RESET);
UART1_SendData8(data);
}
void Delay(u16 ms)
{
u16 x , y;
for(y = ms ; y > 0 ;y--)
for(x = 16000 ; x > 0 ; x--);
}
int main()
{
disableInterrupts();
CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV1); //配置系統時鐘為1分頻,即16MHZ
USART_Init();
Init_ADC1();
enableInterrupts();
while(1)
{
}
}
完整代碼請下載附件
ADC連續采樣_基于中斷.7z
(643.42 KB, 下載次數: 54)
2019-6-20 03:06 上傳
點擊文件名下載附件
|