推荐阅读最新更新时间:2024-11-09 12:23
STM32的IO口灌入电流和输出驱动电流最大是多少?
刚开始学习一款单片机的时候一般都是从操作IO口开始的,所以我也一样,先是弄个流水灯。 刚开始我对STM32的认识不够,以为是跟51单片机类似,可以直接操作端口,可是LED灯却没反应,于是乎,仔细查看资料发现,原来对于ARM,不管你要操作哪个IO口,都要先配置IO口。 不过对于普通的IO口的应用,配置会比较简单,主要就以下几个步骤: 1.打开相应IO口的时钟; 2.打开IO口相应引脚位; 3.配置IO口的模式; 4.初始化IO端口。 对于STM32的IO口可以根据需要由软件配置成8种模式: (1)GPIO_Mode_AIN 模拟输入 (2)GPIO_Mode_IN_FLOATING 浮
[单片机]
STM32的ADC单次转换设计
下面分别为库函数和直接操作寄存器的两个范便,我都已测试通过 使用此程序前必要对GPIO设好为模拟输入方式 =====================================库函数版========================================= void AD_CONFIG_SINGLE(void ) { //先配置IO口: ADC_InitTypeDef adcInitStruct; ////PB1 作为模拟通道输入引脚 RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 , ENABLE);//使能ADC和GPIOC时钟 //配置ADC: //将ADC配置成非
[单片机]
STM32低功耗定时器(LPTIM)有哪些独特功能
开发低功耗产品,我们会比较关注整个系统的功耗问题。那么,LPTIM低功耗定时器你有关注吗? 1写在前面 在早些年,可能较少听见LPTIM这个名词。随着低功耗产品需求越来越严格,MCU厂商就推出了针对低功耗应用的LPTIM定时器。 定时器是我们常见的一种外设,之所以这么常见,原因在于定时器的用途非常广泛。 在STM32所有MCU中都配有定时器,那么你有关注、对比过各系列、各型号MCU中定时器的差异吗? 2 哪些STM32配有LPTIM定时器? 在STM32中,相对较新的MCU部分型号配有LPTIM定时器。 比如:STM32F7、H7高性能MCU,STM32L0、L4低功耗MCU,以及新推出的G0、G4系列中都配有这种LPTI
[单片机]
STM32---定时器的ETR功能
在使用定时器的时候,在引脚复用功能中看到了TIM2_CH1_ETR,这个ETR是什么意思呢? 答:TIM2_CH1_ETR表示两个功能选一个,分别是TIM2_CH1和TIM2_ETR,TIM2_CH1表示让这个引脚作为TIM2的第一通道对应引脚;TIM2_ETR表示让这个引脚作为TIM2外部时钟提供引脚,这种功能有两种模式,如下图:
[单片机]
stm32 ADC模数转换 ADC多通道 ADC DMA
通过调节电位器,改变AD转换值和电压值 STM32F1 ADC 配置步骤 1.使能GPIO时钟和ADC时钟 2.配置引脚模式为模拟输入 3.配置ADC的分频因子 4.初始化ADC参数,ADC_InitTypeDef 5.使能ADC 6.执行ADC校准 7.设置ADC软件启动 8.读取ADC转换值 9.设置ADC规则,采样时间等 10.使能ADC的软件转换 11.读取ADC转换结果 举例 u16 ADC_value(u8 time) { u8 i = 0; u16 value; for(i = 0; i time; i++) { ADC_SoftwareStartConvCmd
[单片机]
怎样调试STM32硬件错误HardFault
在用 Keil 对STM32的程序进行仿真时程序有时会跑飞,停止仿真程序会停在HardFault_Handler 函数里的死循环while(1)中。 这说明 STM32 出现了硬件错误。 硬件错误中断 STM32出现硬件错误可能有以下原因: 数组越界操作; 内存溢出,访问越界; 堆栈溢出,程序跑飞; 中断处理错误; 遇到这种情况,可以通过以下2种方式来定位到出错代码段。 方法1: 在硬件中断函数HardFault_Handler里的while(1)处打调试断点,程序执行到断点处时点击STOP停止仿真。 示例 在Keil菜单栏点击View——Registers Window,在寄存器查看窗口查找R14(LR)的值。 如果R14(
[单片机]
分析一个关于STM32 芯片异常复位的经典案例!
前言 本篇主要是介绍一种处理问题的思路,即当我们在做STM32应用开发过程中,遇到芯片异常复位,或者进入了异常处理时,如何通过集成开发环境,如IAR,KEIL等查看相应的ARM内核寄存器,定位出应用软件产生异常的地方! 问题描述 某STM32用户反馈,当使用STM32L4芯片的时候,程序运行一段时间后,会忽然复位。复位后程序继续运行,但是还会继续复位,原因不详! 问题分析 针对于此类问题,我们可以按照一个统一的思路去处理。分析本案例的大致步骤如下: 1、初步确定复位的原因,是硬件复位,如外部NRST被拉低,还是软件复位,包括软件直接调用复位,或者看门狗复位,还是低功耗模式如standby模式被唤醒时产生中断; 2、查看复位
[单片机]
STM32-2-GPIO
最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多: (1)GPIO_Mode_AIN 模拟输入 (2)GPIO_Mode_IN_FLOATING 浮空输入 (3)GPIO_Mode_IPD 下拉输入 (4)GPIO_Mode_IPU 上拉输入 (5)GPIO_Mode_Out_OD 开漏输出 (6)GPIO_Mode_Out_PP 推挽输出 (7)GPIO_Mode_AF_OD 复用开漏输出 (8)GPIO_Mode_AF_PP 复用推挽输出 对于刚入门的新手,我想这几个概念是必须得搞清楚的,平时接触的最多的也就是推挽输出、开漏输出、上拉输入这三种,但一直未曾对这些做过归纳。因此,在这里做一个总
[单片机]