最新搜索: fatfs TTP226 LDO CEC QFN封装 RM0008
推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

获得赏金
20.00元
ADC单通道采集数据并分析 keil+stm32cubemx开发

更新时间:2024-06-02 08:23:02 大小:24M 上传用户:mulanhk查看TA发布的资源 标签:adc数据分析keilstm32cubemx 下载积分:4分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

项目内容:

包括stm32cubemx工程配置,

keil的源代码编写,并注释

proteus的仿真电路原理图搭建


实现思路:

用ADC通道采集电位器的变化电压数据,通过电路关系换算,得到电压值

用IIC协议和OLED屏进行交流,将电压值显示在OLED屏


项目工程详细配置:

芯片引脚配置

image.png


首先,经典配置PB6,PB7为OLED的iic传输引脚


image.png


打开低速高速时钟

image.png

打开ADC1通道1,对应的是PA0引脚

image.png


时钟树配置

image.png


设置存储路径


image.png


生成工程文件


仿真电路搭建

image.png

代码板块

引入OLED.C,OLED.H,OLED_Font.H


image.png


自己编的一个显示浮点数的函数

/**

  * @brief  OLED显示浮点数数字(十进制,带符号数)

  * @param  Line 起始行位置,范围:1~4

  * @param  Column 起始列位置,范围:1~16

  * @param  Number 要显示的数字,范围:7位

  * @param  decimal_places 要显示的小数点后的位数

  * @retval 无

  */

void OLED_ShowFNum(uint8_t Line,uint8_t Column,float Number,int decimal_places)

{

char buffer[16]; // 用于存储格式化后的数字字符串

float Number1;

if (Number >= 0) //根据正负加"+","-"

{

OLED_ShowChar(Line, Column, '+');

Number1 = Number;

}

else

{

OLED_ShowChar(Line, Column, '-');

Number1 = -Number;

}

snprintf(buffer,sizeof(buffer),"%.*f",decimal_places,Number1);

for (int i = 0; buffer[i] != '\0'; ++i) {

        OLED_ShowChar(Line,Column + i + 1,buffer[i]); // 显示单个字符

    }

}


主函数实现部分

image.png

最终实现效果图

image.png

image.png


部分文件列表

文件名大小
P9_ADC_collection/
P9_ADC_collection/P9_ADC_collection/
P9_ADC_collection/P9_ADC_collection/.mxproject8KB
P9_ADC_collection/P9_ADC_collection/Core/
P9_ADC_collection/P9_ADC_collection/Core/Inc/
P9_ADC_collection/P9_ADC_collection/Core/Inc/adc.h1KB
P9_ADC_collection/P9_ADC_collection/Core/Inc/gpio.h1KB
P9_ADC_collection/P9_ADC_collection/Core/Inc/main.h2KB
P9_ADC_collection/P9_ADC_collection/Core/Inc/OLED.h1KB
P9_ADC_collection/P9_ADC_collection/Core/Inc/OLED_Font.h
P9_ADC_collection/P9_ADC_collection/Core/Inc/stm32f1xx_hal_conf.h
...
  • 21ic小能手打赏了20.00

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载