qcode
  • 创作工场专业版,一问多答!更智能、更完整、更原创
  • 这是一个超强内容创作平台,它会写文章、做设计、绘图、敲代码,有问必答!
🔥点击使用-高级专业版🔥

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

时间2023-04-15 09:18:58 提问来自 安徽省宣城市 的网友 分类创作 浏览409
具体步骤: 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做个电池充放电显示在触摸屏上具体怎么设计详细步骤说明程序等 下一篇 民商法如果它不是你最想要学习的专业,那你最心仪的是什么专业?为什么?