推荐阅读最新更新时间:2024-11-13 06:32
STM8S STM8L引脚如何配置功耗最低
STM8S无任何外围电路 单片机CAP接104电容 复位接上拉电阻,其它引脚全部悬空,利用以下程序测试电流如下:(以前也用STM8L做过类似实验,情况也基本同下) 另外打开AWU 电流就变成了200uA 如果开了看门狗,就成了500uA ,这两个参数不是太好,不太适合带有周期唤醒的电池的应用 定时器和串口休眠后对功耗基本无影响 整机依然为4.7uA 单独一个引脚悬空会浪费4UA电流 如果将这个悬空的脚内部或外部上拉或下拉,电流都会变小 //GPIO_MODE_OUT_OD_LOW_SLOW 4.8uA //GPIO_MODE_IN_FL_NO_IT 390uA //GPIO_MODE_IN_PU_NO_IT 4.7uA /
[单片机]
STM32的ADC获取电池电压
adc.c #include adc.h void Adc_Init(void) { ADC_InitTypeDef ADC_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_ADC1 , ENABLE ); //使能ADC1通道时钟 RCC_ADCCLKConfig(RCC_PCLK2_Div6); //设置ADC分频因子6 72M/6=12,ADC最大时间不能超过14M //PA4 作为模拟通道输入引脚
[单片机]
STM8L USART+DMA配置,使用DMA完成串口收发
USART配置 /*----------------------------------------------------------------------------- * 函 数 名 : USART1_Config() * 函数功能 : USART1初始化配置 * 输 入 : 无 * 输 出 : 无 -----------------------------------------------------------------------------*/ void USART1_Config(void) { USART_Init(USART1, (uint32_t)
[单片机]
如何利用光电耦合器隔离高电压改善电动车锂离子电池组的安全性
目前在全电动或混合动力汽车应用中,高电压锂离子电池组的管理面临许多挑战,除了必须监控充电和放电循环外,基于安全考量,也需要对提供数百伏电压的电池组进行隔离,本文特别面向锂离子电池监测需求进行讨论,并探讨电池监控系统、数字通信系统以及隔离接口使用的架构和零组件。 在管理系统中,电池监测电路板运用两个关键子系统来可靠监测电池状态并提供数字化结果给掌管控制系统运作的主控处理器,为了分离这些子系统,在高电压电池感应电路和电路板的通信器件间采用光隔离信号接口,以确保高电压不会影响数字子系统。 锂离子电池特性 必须符合电动车在性能、安全以及可靠性要求的复杂电子系统及本上直接受到锂离子电池特性的影响,锂离子电池放电时,锂材料
[电源管理]
STM8L驱动I2C类型的12864
原理 之前没有操作过12864这种类型的屏,但是,操作过其他类型的,原理都是相通的。12864是拥有128x64像素点这类屏幕的称号吧。屏幕有64行,128列;每个汉字是16x16,所以一个这样的屏,最多可以显示4x8的汉字或者8x16的字符。 我使用的是不带字库的I2C接口的屏幕,主芯片是ST7656。这样的屏,只能写,不能读。先配置屏幕,然后通过字模制作软件制作出待显示内容的像素数字,最后,通过数据线传送给屏幕显示。了解了原理后,接下来就根据主芯片的数据手册进行配置屏幕就好了。 硬件连线 CS:片选 RST: 复位 RS:数据或命令选择 SDA:I2C数据线 SCL:I2C时钟线 I2C采用的是软件模拟的 底层写操
[单片机]
STM8L探索套件学习笔记-GPIO端口操作(一)
STM8与STM32一样提供了固件库函数,方便用户快速开发,不需要花费很多时间去查寄存器。不过没有STM32的库完善,给的说明文档是chm格式的,名字是stm8l15x_stdperiph_lib_um.chm,这个官网有下载,今天按照官方给的模板自己做个模板文件夹,方便后期的移植,这样就不要再重复设置了。首先我们看看GPIO模块,在用固件库之前先了解下GPIO里面的大体的寄存器,方便后期使用固件库。缺点是你所以输入的参数都会检测是否符合规范,必须得按照库函数里面定义的参数写。 GPIO寄存器有:输出寄存器(ODR),输入寄存器(IDR),方向寄存器(DDR),控制寄存器1(CR1)和控制寄存器2(CR2).后面三个寄存器组和可
[单片机]
PCF8563 时钟芯片驱动程序 (STM8S/STM8L)
模拟I2C读取时钟芯片PCF8563中的日期时间 #define SCLK_Clr() GPIO_ResetBits(GPIOD, GPIO_PIN_1)//SDA IIC接口的时钟信号 #define SCLK_Set() GPIO_SetBits(GPIOD, GPIO_PIN_1) #define SDIN_Clr() GPIO_ResetBits(GPIOD, GPIO_PIN_2)//SCL IIC接口的数据信号 #define SDIN_Set() GPIO_SetBits(GPIOD, GPIO_PIN_2) u8 buf ; void SDA_IN(u8 in) { if(in) GPIO_I
[单片机]
MCU内部参考电压妙用
近期接触到STM32L0系列MCU,为了发挥超低功耗特性使用的也是干电池供电,想要获取当前干电池组的电量。 起初的方案设计是在MCU的IO口找一路ADC,使用分压方式直接让MCU采集电量,之后在查找资料如何实现时发现了参考电压的问题,步步深入后发现原来还有一种解决方案,即使用内部参考电压直接演算出VDDA的供电,在此做个记录并分享 对ADC工作比较重要的电压一般就两个,VDDA供电让ADC运行,VREF+提供ADC转换的参考电压值。经查阅该型号的数据手册,直接通过供电给VREF+的方式定ADC的基准电压是不可行的,于是下图中也标注了芯片生产制造时已经根据一定环境测试出了一个精准的电压值,此值存储在内存地址如图所示处,
[单片机]