在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

采用STM32F103硬件ADC功能進行光照強度采集

嵌入式技術 ? 來源:嵌入式技術 ? 作者:嵌入式技術 ? 2022-05-31 11:32 ? 次閱讀

硬件配置

單片機型號STM32F103C8
屏幕:0.96寸OLED
傳感器光照傳感器(ADC采集)

功能實現
光照強度采集ADC方式采集,STM32F103本身自帶有硬件ADC功能。將采集到的數據實時刷新到屏幕上即可完成波形顯示。
0.96寸OLED分辨率為128*64(128列,64行)。我們可以定義一個數組buff[128],數組下標作為橫坐標,數組中的值作為縱坐標。這樣即可把采集到的值實時刷新即可。由于需要先采集的數據先顯示,這樣就可以采用環形隊列特性實現波形顯示。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQ1MzY5NA==,size_16,color_FFFFFF,t_70#pic_centerpoYBAGKVjAqASijEAAsNlF_HczA081.png

功能實現:

int main()
{
    u8 cnt=40;
    u8 buff[20];
	Beep_Init();//蜂鳴器初始化
	Usartx_Init(USART1,115200,72);
	TIMx_Init(TIM2,72,20000);//通過定時器2輔助串口接收數據,20ms
	OLED_Init();//OLED初始化
    OLED_Display_Font(8,0,16,5);//光
    OLED_Display_Font(8+16,0,16,6);//照
    OLED_Display_Font(8+16*2,0,16,7);//強
    OLED_Display_Font(8+16*3,0,16,8);//度
    OLED_Refresh_PageGram();
    ADC1_InjectionChannel_Init();
    printf("串口初始化完成\r\n");
	while(1)
	{
		ADC1->CR2|=1<<21;//開啟注入通道轉換
		Delay_Ms(1);
		while(adc.adc_len)
		{
			OLED_RowGram_Clear(adc.r);
			OLED_DrawPoint(adc.r,adc.buff[adc.r],1);
			adc.r=(adc.r+1)%ADC_LEN;
			adc.adc_len--;//緩沖區長度-1
		}
		OLED_RefreshGram();//更新數據到屏幕
		cnt++;
		if(cnt>=40)
		{
			cnt=0;
			snprintf((char *)buff,20,"%d",ADC_Data);
			OLED_Display_str(16+16*4,0,16,buff);//顯示光照值
			OLED_Display_Font(8,0,16,5);
			OLED_Display_Font(8+16,0,16,6);
			OLED_Display_Font(8+16*2,0,16,7);
			OLED_Display_Font(8+16*3,0,16,8);
			OLED_Refresh_PageGram();//更新數據到屏幕
		}
	}
}

硬件ADC配置:

#include "adc.h"
/********************注入通道配置********************/
void ADC1_InjectionChannel_Init(void)
{
	//1.開時鐘
	RCC->APB2ENR|=1<<9;//ADC1時鐘
	RCC->APB2ENR|=1<<3;//PB0時鐘
	RCC->APB2RSTR|=1<<9;//ADC復位時鐘
	RCC->APB2RSTR&=~(1<<9);//關復位
	/*2.GPIO配置*/
	GPIOB->CRL&=0xFFFFFFF0;//模式輸入方式
	/*3.ADC時鐘頻率配置*/
	RCC->CFGR&=~(0x3<<14);//清除原來配置
	RCC->CFGR|=0x2<<14;//ADC工作頻率72MHZ/6=12MZH
	/*4.配置ADC核心寄存器*/
//	ADC1->CR1&=~(0xF<<16);//獨立模式
	ADC1->CR1|=1<<8;//掃描模式
	ADC1->CR2|=1<<23;//啟動溫度傳感器(測量CPU溫度)
	ADC1->CR2|=1<<15;//注入通道外部觸發轉換模式
	ADC1->CR2|=0x7<<12;//注入通道事件方式啟動轉換
//	ADC1->CR2&=~(1<<11);//右對齊(地位對齊,高位補0)
	ADC1->SMPR1|=0x7<<18;//溫度傳感器采樣時間通道16
	ADC1->SMPR2|=0x2<<24;//通道8采用時間
//	ADC1->CR2&=~(1<<1);//單次轉換模式
	ADC1->JSQR|=0x1<<20;//注入通道轉換序列的通道數為2
	/*設置要轉換通道*/
	ADC1->JSQR&=~(0x1F<<15);//清除原來寄存器中值
	ADC1->JSQR|=(8<<15);
	ADC1->JSQR&=~(0x1F<<10);//清除第三個注入序列中的值
	ADC1->JSQR|=(16<<10);
	/*開中斷*/
	ADC1->CR1|=1<<7;//開啟注入通道中斷
	STM32_NVIC_SetPriority(ADC1_2_IRQn,1,1);//設置優先級
	ADC1->CR2|=1<<0;//開啟ADC
	ADC1->CR2|=1<<3;//初始化校準
	while(ADC1->CR2&1<<3);//等待初始化校準完成
	ADC1->CR2|=1<<2;//開始校準
	while(ADC1->CR2&1<<2){}//等待校準完成
}
/************ADC中斷服務函數*******************/
u16 ADC_Data=0;
ADC_DATA adc;//獲取的光照強度結構體數據
void ADC1_2_IRQHandler(void)
{
	u16 data;
	if(ADC1->SR&1<<2)//注如通道轉完成標志
	{
        ADC_Data=ADC1->JDR2;
        data=10+ADC_Data*(64.0/4095.0);
        if(data>63)data=63;//保證ADC采集的值為10~63,保證和屏幕高度一致
        adc.buff[adc.w]=data;//寫入數據到緩沖區
        adc.w=(adc.w+1)%ADC_LEN;
        adc.adc_len++; 
	}
	ADC1->SR=0;
}

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6037

    文章

    44558

    瀏覽量

    635227
  • adc
    adc
    +關注

    關注

    98

    文章

    6498

    瀏覽量

    544629
  • STM32F103C8
    +關注

    關注

    1

    文章

    23

    瀏覽量

    8088
收藏 人收藏

    評論

    相關推薦

    STM32F103控制ad7606采集程序分享

    本文首先分析了了stm32f103系列的性能如何,其次介紹了ad7606特性,最后介紹了STM32F103控制ad7606采集程序。
    的頭像 發表于 05-21 11:31 ?3w次閱讀

    STM32采集光照強度顯示波形硬件配置

    STM32采集光照強度顯示波形硬件配置??單片機型號:STM32F103C8??屏幕:0.96寸OLED屏??傳感器:
    發表于 08-18 06:58

    如何去實現STM32采集光照強度顯示波形?

    如何去實現STM32采集光照強度顯示波形?
    發表于 11-23 07:15

    BH1750光強度傳感器Stm32f103驅動的相關資料推薦

    1. 實驗:Stm32f103 驅動 bh1750采集光照強度,串口打印采集到的數據。2. 實驗準備器材 開發版:stm32f103c8t6
    發表于 01-18 07:02

    基于stm32f103的數據采集

    基于stm32f103的數據采集,將0-3.3v的電壓轉換成數字量
    發表于 05-06 16:43 ?53次下載

    STM32F103封裝方式與功能配置

    本文介紹STM32F103封裝方式和STM32F103管腳功能的配置。
    發表于 08-03 17:44 ?2.2w次閱讀
    <b class='flag-5'>STM32F103</b>封裝方式與<b class='flag-5'>功能</b>配置

    基于單片機的GY-30光照強度采集

    利用單片機寫的關于光照強度采集
    發表于 11-05 11:42 ?105次下載

    stm32f103采集四路ADC并且顯示到OLED上程序

    stm32f103采集四路ADC并且顯示到OLED上程序
    發表于 01-16 18:07 ?182次下載

    如何基于STM32F103對4路ADCDMA進行改進的詳細資料概述

    本文的主要內容詳細介紹了基于STM32F103的4路ADC采集用的DMA進行改進的詳細資料概述
    發表于 06-04 10:00 ?12次下載

    使用STM32F103單片機采集16路ADC的工程文件和程序免費下載

    本文檔的主要內容詳細介紹的是使用STM32F103單片機采集16路ADC的工程文件和程序免費下載。
    發表于 09-26 08:00 ?32次下載
    使用<b class='flag-5'>STM32F103</b>單片機<b class='flag-5'>采集</b>16路<b class='flag-5'>ADC</b>的工程文件和程序免費下載

    stm32f030和stm32f103功能差異

    stm32f030和stm32f103功能差異主要表現在哪?
    的頭像 發表于 07-22 09:35 ?2.2w次閱讀

    GD32F103STM32F103的區別 2021.6.2

    GD32F103STM32F103區別介紹關鍵詞Key words:GD32F103STM32F103摘要Abstract:本文主要是GD32F
    發表于 12-08 11:06 ?83次下載
    GD32<b class='flag-5'>F103</b>與<b class='flag-5'>STM32F103</b>的區別 2021.6.2

    STM32采集光照強度顯示波形

    STM32采集光照強度顯示波形硬件配置??單片機型號:STM32F103C8??屏幕:0.96寸OLED屏??傳感器:
    發表于 12-24 19:33 ?61次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>采集</b><b class='flag-5'>光照強度</b>顯示波形

    用于stm32f103 A/D信號采集的處理

    用于stm32f103 A/D信號采集的處理
    發表于 08-01 18:13 ?5次下載

    學習STM32F103ADC功能

    三勺最近在學習STM32F103ADC功能,居然連最簡單的獨立模式的單通道的電壓采集都不能實現,這就不能忍了,這是對智商的侮辱。
    的頭像 發表于 10-24 16:06 ?2259次閱讀
    學習<b class='flag-5'>STM32F103</b>的<b class='flag-5'>ADC</b><b class='flag-5'>功能</b>
    主站蜘蛛池模板: 狠狠操狠狠摸| 黄色视奸| 日本一区高清视频| 色偷偷91久久综合噜噜噜噜| 国产精品va一区二区三区| 久久影视精品| 在线色网| 狠狠色丁香婷婷综合| 精品久久久久久久久久| 一级欧美一级日韩| 国产一区二区三区在线观看影院 | mide-776中文字幕在线| 51精品视频免费国产专区| 亚洲 欧美 精品| 99婷婷| 欧美一区二区三区激情啪啪| 四虎影院永久| 午夜精品久久久久久影视riav| 性欧美bbbbbb动漫| 么公的好大好硬好深好爽在线视频| 欧美一级在线全免费| 欧美第一色| 免费一级毛片在线播放| 优优色综合| 国产啊v在线观看| 丁香婷婷啪啪| 美女免费观看一区二区三区| 久久久久久久国产| 激情伦成人综合小说| 日本三级欧美三级香港黄| 天天骑天天干| 一级毛片视频在线| 在线观看午夜| av网站免费线看| 国产精品亚洲色图| 68日本xxxxxxxxx| 麦克斯奥特曼在线观看| 91久久国产青草亚洲| 日本黄在线| 澳门久久| 欧美一级www片免费观看|