久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
基于stm32的OLED屏+按鍵中斷+數據傳輸 +電壓檢測
[打印本頁]
作者:
herui123456
時間:
2021-6-12 18:02
標題:
基于stm32的OLED屏+按鍵中斷+數據傳輸 +電壓檢測
本帖最后由 herui123456 于 2021-6-15 13:09 編輯
1 電壓檢測的轉換(我使用的是AD的多通道轉換)
//電壓轉換顯示
void measurement_V_02(void){
while(1)
{
[qq]1727606470[/qq] if(EXTI_GetITStatus(KEY1_EXTI_select)!=RESET)
{
mode_selection();
delay500ms(1);
break;
}
EXTI_ClearITPendingBit(KEY1_EXTI_select);
delay500ms(5);
OLED_WrCmd(0xAF); //開啟顯示
ADC_ConvertedValueLocal[3] =(float) ADC_ConvertedValue[3]/4096*3.3;
Dis_Float(5,1,ADC_ConvertedValueLocal[3]*6.452);
}
}
復制代碼
2 端口和ADC的初始化
void ADCx_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
// 打開 ADC IO端口時鐘
ADC_GPIO_APBxClock_FUN ( ADC_GPIO_CLK, ENABLE );
// 配置 ADC IO 引腳模式
GPIO_InitStructure.GPIO_Pin = ADC_PIN1|ADC_PIN2|ADC_PIN3|ADC_PIN4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
// 初始化 ADC IO
GPIO_Init(ADC_PORT, &GPIO_InitStructure);
DMA_InitTypeDef DMA_InitStructure;
ADC_InitTypeDef ADC_InitStructure;
// 打開DMA時鐘
RCC_AHBPeriphClockCmd(ADC_DMA_CLK, ENABLE);
// 打開ADC時鐘
ADC_APBxClock_FUN ( ADC_CLK, ENABLE );
/* ------------------DMA模式配置---------------- */
// 復位DMA控制器
DMA_DeInit(ADC_DMA_CHANNEL);
// 配置 DMA 初始化結構體
// 外設基址為:ADC 數據寄存器地址
DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)(&( ADCx->DR ));
// 存儲器地址
DMA_InitStructure.DMA_MemoryBaseAddr = (u32)ADC_ConvertedValue;
// 數據源來自外設
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
// 緩沖區大小,應該等于數據目的地的大小
DMA_InitStructure.DMA_BufferSize = NOFCHANEL;
// 外設寄存器只有一個,地址不用遞增
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
// 存儲器地址遞增
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
// 外設數據大小為半字,即兩個字節
DMA_InitStructure.DMA_PeripheralDataSize =
DMA_PeripheralDataSize_HalfWord;
// 內存數據大小也為半字,跟外設數據大小相同
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
// 循環傳輸模式
DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
// DMA 傳輸通道優先級為高,當使用一個DMA通道時,優先級設置不影響
DMA_InitStructure.DMA_Priority = DMA_Priority_High;
// 禁止存儲器到存儲器模式,因為是從外設到存儲器
DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
// 初始化DMA
DMA_Init(ADC_DMA_CHANNEL, &DMA_InitStructure);
// 使能 DMA 通道
DMA_Cmd(ADC_DMA_CHANNEL , ENABLE);
/* ----------------ADC 模式配置--------------------- */
// 只使用一個ADC,屬于單模式
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
// 掃描模式
ADC_InitStructure.ADC_ScanConvMode = ENABLE ;
// 連續轉換模式
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
// 不用外部觸發轉換,軟件開啟即可
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
// 轉換結果右對齊
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
// 轉換通道個數
ADC_InitStructure.ADC_NbrOfChannel = NOFCHANEL;
// 初始化ADC
ADC_Init(ADCx, &ADC_InitStructure);
// 配置ADC時鐘N狿CLK2的8分頻,即9MHz
RCC_ADCCLKConfig(RCC_PCLK2_Div8);
// 配置ADC 通道的轉換順序和采樣時間
ADC_RegularChannelConfig(ADCx, ADC_CHANNEL1, 1,
ADC_SampleTime_55Cycles5);
ADC_RegularChannelConfig(ADCx, ADC_CHANNEL2, 2,
ADC_SampleTime_55Cycles5);
ADC_RegularChannelConfig(ADCx, ADC_CHANNEL3, 3,
ADC_SampleTime_55Cycles5);
ADC_RegularChannelConfig(ADCx, ADC_CHANNEL4, 4,
ADC_SampleTime_55Cycles5);
// 使能ADC DMA 請求
ADC_DMACmd(ADCx, ENABLE);
// 開啟ADC ,并開始轉換
ADC_Cmd(ADCx, ENABLE);
// 初始化ADC 校準寄存器
ADC_ResetCalibration(ADCx);
// 等待校準寄存器初始化完成
while (ADC_GetResetCalibrationStatus(ADCx));
// ADC開始校準
ADC_StartCalibration(ADCx);
// 等待校準完成
while (ADC_GetCalibrationStatus(ADCx));
// 由于沒有采用外部觸發,所以使用軟件觸發ADC轉換
ADC_SoftwareStartConvCmd(ADCx, ENABLE);
}
復制代碼
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
女人高潮特级毛片
|
黄色www.
|
国产成人免费在线
|
黑人精品一区二区
|
91在线精品李宗瑞
|
欧美日韩免费在线
|
亚洲精品久久久久avwww潮水
|
欧美一级视频在线观看
|
亚洲自拍偷拍一区
|
欧美日韩中文字幕在线
|
日日夜夜干
|
伊人影院综合
|
久久怡红院
|
亚洲精品美女
|
国产性猛交96
|
激情综合网站
|
影音先锋中文字幕在线
|
国语对白做受欧美
|
香蕉视频国产
|
久久精品国产成人av
|
av超碰在线
|
久久av影院
|
欧美成人一级
|
欧美日韩在线一区二区
|
性久久久久
|
日本毛片视频
|
户外少妇对白啪啪野战
|
国产一区二区三区在线视频
|
人人草人人草
|
玖玖久久
|
中文字幕自拍偷拍
|
亚洲精品久久久久avwww潮水
|
欧美精品一二三
|
久久精品观看
|
午夜aaa
|
亚洲视频三区
|
亚洲国产精
|
91久久国产综合久久91精品网站
|
一区二区三区四区av
|
免费看黄色网址
|
国产成人三级一区二区在线观看一
|