13
06月
2023
具体步骤:
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; }
免责声明:本内容由金宣创作助手生成,可能存在逻辑不清、乱码等问题,点这里>>使用AI金宣助手高级版(Super),更聪明、更完整、无乱码!
以上内容除特别注明外均来源于网友提问、金宣助手回答,权益归原著者所有,本站仅作效果演示和欣赏之用;
本文标题: 嵌入式在stm32做个电池充放电显示在触摸屏上具体步骤详细代码,分析代码
本文网址: https://www.nhwlfw.com/news-read-2434.html
直通道: 金宣助手
延伸阅读
- 如何应对全球性的健康威胁,如传染病或新出现的病毒?
- 为什么木头能够燃烧?
- 知道RhB的初始吸光度,RhB初始浓度怎么得到
- 如何在Go中实现对JSON数据进行解析和封装?
- 如何教育孩子正确利用电子词典和学习工具?