久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2494|回復: 0
打印 上一主題 下一主題
收起左側

基于stm32的OLED屏+按鍵中斷+數(shù)據(jù)傳輸 +電壓檢測

[復制鏈接]
跳轉到指定樓層
樓主
ID:743843 發(fā)表于 2021-6-12 18:02 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 herui123456 于 2021-6-15 13:09 編輯

1 電壓檢測的轉換(我使用的是AD的多通道轉換)
  1. //電壓轉換顯示
  2. void measurement_V_02(void){
  3.    
  4.     while(1)
  5.         {
  6.     [qq]1727606470[/qq]       if(EXTI_GetITStatus(KEY1_EXTI_select)!=RESET)
  7.                 {
  8.                     mode_selection();
  9.                     delay500ms(1);
  10.                     break;
  11.                 }
  12.                 EXTI_ClearITPendingBit(KEY1_EXTI_select);
  13.             delay500ms(5);
  14.             OLED_WrCmd(0xAF); //開啟顯示
  15.             ADC_ConvertedValueLocal[3] =(float) ADC_ConvertedValue[3]/4096*3.3;
  16.             Dis_Float(5,1,ADC_ConvertedValueLocal[3]*6.452);
  17.         }
  18. }
復制代碼
  2 端口和ADC的初始化

  1. void ADCx_GPIO_Config(void)
  2. {
  3.     GPIO_InitTypeDef GPIO_InitStructure;

  4.     // 打開 ADC IO端口時鐘
  5.     ADC_GPIO_APBxClock_FUN ( ADC_GPIO_CLK, ENABLE );

  6.     // 配置 ADC IO 引腳模式
  7.     GPIO_InitStructure.GPIO_Pin = ADC_PIN1|ADC_PIN2|ADC_PIN3|ADC_PIN4;                    
  8.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
  9.     // 初始化 ADC IO
  10.     GPIO_Init(ADC_PORT, &GPIO_InitStructure);
  11.    
  12.    
  13.     DMA_InitTypeDef DMA_InitStructure;
  14.     ADC_InitTypeDef ADC_InitStructure;

  15.     // 打開DMA時鐘
  16.     RCC_AHBPeriphClockCmd(ADC_DMA_CLK, ENABLE);
  17.     // 打開ADC時鐘
  18.     ADC_APBxClock_FUN ( ADC_CLK, ENABLE );

  19.     /* ------------------DMA模式配置---------------- */
  20.     // 復位DMA控制器
  21.     DMA_DeInit(ADC_DMA_CHANNEL);
  22.     // 配置 DMA 初始化結構體
  23.     // 外設基址為:ADC 數(shù)據(jù)寄存器地址
  24.     DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)(&( ADCx->DR ));
  25.     // 存儲器地址
  26.     DMA_InitStructure.DMA_MemoryBaseAddr = (u32)ADC_ConvertedValue;
  27.     // 數(shù)據(jù)源來自外設
  28.     DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
  29.     // 緩沖區(qū)大小,應該等于數(shù)據(jù)目的地的大小
  30.     DMA_InitStructure.DMA_BufferSize = NOFCHANEL;
  31.     // 外設寄存器只有一個,地址不用遞增
  32.     DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
  33.     // 存儲器地址遞增
  34.     DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
  35.     // 外設數(shù)據(jù)大小為半字,即兩個字節(jié)
  36.     DMA_InitStructure.DMA_PeripheralDataSize =
  37.         DMA_PeripheralDataSize_HalfWord;
  38.     // 內(nèi)存數(shù)據(jù)大小也為半字,跟外設數(shù)據(jù)大小相同
  39.     DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
  40.     // 循環(huán)傳輸模式
  41.     DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
  42.     // DMA 傳輸通道優(yōu)先級為高,當使用一個DMA通道時,優(yōu)先級設置不影響
  43.     DMA_InitStructure.DMA_Priority = DMA_Priority_High;
  44.     // 禁止存儲器到存儲器模式,因為是從外設到存儲器
  45.     DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
  46.     // 初始化DMA
  47.     DMA_Init(ADC_DMA_CHANNEL, &DMA_InitStructure);
  48.     // 使能 DMA 通道
  49.     DMA_Cmd(ADC_DMA_CHANNEL , ENABLE);

  50.     /* ----------------ADC 模式配置--------------------- */
  51.     // 只使用一個ADC,屬于單模式
  52.     ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
  53.     // 掃描模式
  54.     ADC_InitStructure.ADC_ScanConvMode = ENABLE ;
  55.     // 連續(xù)轉換模式
  56.     ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
  57.     // 不用外部觸發(fā)轉換,軟件開啟即可
  58.     ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
  59.     // 轉換結果右對齊
  60.     ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
  61.     // 轉換通道個數(shù)
  62.     ADC_InitStructure.ADC_NbrOfChannel = NOFCHANEL;
  63.     // 初始化ADC
  64.     ADC_Init(ADCx, &ADC_InitStructure);
  65.     // 配置ADC時鐘N狿CLK2的8分頻,即9MHz
  66.     RCC_ADCCLKConfig(RCC_PCLK2_Div8);
  67.     // 配置ADC 通道的轉換順序和采樣時間
  68.     ADC_RegularChannelConfig(ADCx, ADC_CHANNEL1, 1,
  69.                             ADC_SampleTime_55Cycles5);
  70.     ADC_RegularChannelConfig(ADCx, ADC_CHANNEL2, 2,
  71.                             ADC_SampleTime_55Cycles5);
  72.     ADC_RegularChannelConfig(ADCx, ADC_CHANNEL3, 3,
  73.                             ADC_SampleTime_55Cycles5);
  74.     ADC_RegularChannelConfig(ADCx, ADC_CHANNEL4, 4,
  75.                             ADC_SampleTime_55Cycles5);

  76.     // 使能ADC DMA 請求
  77.     ADC_DMACmd(ADCx, ENABLE);
  78.     // 開啟ADC ,并開始轉換
  79.     ADC_Cmd(ADCx, ENABLE);
  80.     // 初始化ADC 校準寄存器
  81.     ADC_ResetCalibration(ADCx);
  82.     // 等待校準寄存器初始化完成
  83.     while (ADC_GetResetCalibrationStatus(ADCx));
  84.     // ADC開始校準
  85.     ADC_StartCalibration(ADCx);
  86.     // 等待校準完成
  87.     while (ADC_GetCalibrationStatus(ADCx));
  88.     // 由于沒有采用外部觸發(fā),所以使用軟件觸發(fā)ADC轉換
  89.     ADC_SoftwareStartConvCmd(ADCx, ENABLE);

  90. }
復制代碼






評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字字幕在线中文乱码范文 | 欧美aⅴ | 国产一区二区三区久久久久久久久 | 天天看夜夜 | 精品视频在线免费观看 | 国产精品99久久久久久人 | 欧美视频成人 | 欧美性极品xxxx做受 | 精品国产一区二区国模嫣然 | 国产精品日韩一区二区 | 国产欧美精品一区二区三区 | 国产第二页 | 中文字幕视频一区二区 | 久久一区视频 | 天天操天天射天天舔 | 三级视频在线观看电影 | 国产一区二区三区亚洲 | 久久999| 国产精品成人一区二区 | 中文字幕日韩一区 | 国产乱码精品一区二区三区忘忧草 | 国产欧美一区二区三区另类精品 | 国产区在线 | 天天看天天操 | 国产第一亚洲 | 成人在线电影网站 | 91视频在线看 | 国产成人精品一区二区三区四区 | 91视视频在线观看入口直接观看 | 日韩视频一区二区 | 免费一二区 | www日本高清视频 | 国产日韩一区二区三免费高清 | 一区二区精品 | 久热伊人 | 亚洲欧美成人影院 | 欧美一区二区三区在线观看 | 暖暖成人免费视频 | 激情久久久久 | 啪啪毛片 | 精品一区二区免费视频 |