xiaoing.com©

开花即结果 提问即答案

嵌入式在stm32做个电池充放电显示在触摸屏上具体步骤详细代码,分析代码
原始问题:

嵌入式在stm32做个电池充放电显示在触摸屏上具体步骤详细代码,分析代码

具体步骤:
1、连接电池和stm32开发板,并且确保电池的正负极连接到对应的IO口。
2、在stm32上安装一个ADC采集单元,用于采集电池的电压值。
3、使用STM32系统中断函数定时读取ADC采集单元获得的数据,并将读取到的数据存储在一个数组中。
4、使用STM32 IO口将ADC采集到的数据传输到触摸屏上显示。
5、根据ADC采集到的数据对触屏上显示出来的图形进行相应处理(如显示不同颜色表示不同充/ 放电情况)。

代码如下所示 #include <stdio.h> // 对应头文件
#include "stm32f10x.h" // 对应头文件

int Battery_Voltage; // 电压读取变量

void ADC_Init(void) // ADC 初始化函数
{

  RCC->APB2ENR |= 1<<9;         // ADC1 时钟使能    PCLK2=HCLK/2=72MHz, ADCCLK=PCLK2/6=12MHz                              {     GPIOA->CRL &= 0XFFFFFFF0;      GPIOA->CRL |= 0X00000008;        }       RCC->CFGR &= 0XFFFFFFFC;        RCC->CFGR |= 0<<14;           // 选择 PCLK2 作为 ADC 时钟          RCC->CR |=(1<<28);            while((RCC->CR & (1<<29)) == 0);     // 等待 HSI 被启动      ADC1-》CR1 &=~(7<<24);        ADC1-》CR1 |=(5<<24);         // 通道 16 转化周期 5+12.5 = 17.5 周期          ADC1-》SQR3 &=~(0XF <<0);       ADC1-》SQR3 |=(16 <<0);        }    void Get_Battery_Voltage(void)    {      NVIC_EnableIRQ(TIM4_IRQn) ;          TIM4 ->PSC = 7199 ;              TIM4 ->ARR = 1000 ;            TIM4 ->DIER = 1 ;               TIM4 ->EGR = 1 ;             TIM4 ->CR1 = 1 ;               while (Battery_Voltage == 0 );     }      void Read_Battery()            {              if (TIM4 ->SR & 1 )                {                  Battery_Voltage = (int)(((float)(3.3 * 4096 * 2 / 3)) / ((float)(ADC - >DR)))*1000 + 10;                                                     }           }             int main()            {                    Get_Battery();                     return 0;              }
嵌入式在stm32做个电池充放电显示在触摸屏上具体步骤详细代码,分析代码
https://www.xiaoing.com/zhidao/10094.html
AI / 模型Siliconflow
时间 / DATEApril 15, 2023, 9:18 AM
语言zh-CN
IP / 区域安徽 宣城