草庐IT

HAL_GPIO_ReadPin

全部标签

STM32G030F6P6读写flash失败问题(HAL)

STM32G030是F0系列的升级版,其在性能上比F0要好很多,具体G0参数如下:        最开始做项目选用的单片机是STM32F030F4P6,但是在后期使用中发现,我的FLASH(16K)不够用了,就选择了STM32G030F6P6来进行项目使用,主要是价格便宜,资源够用。    在F030使用的flash拿到G030上来发现不可使用,就进行了一些修改,但是这个时候就出现了报错,在进行flash擦除的时候报错HAL_FLASHEx_Erase(&EraseInitStruct,&PageError);通过发现擦除有问题,我就去查看其底层函数。HAL_StatusTypeDefHAL_

【明解STM32】GPIO理论基础知识篇之寄存器原理

目录一、前言二、寄存器概述三、寄存器详述四、总结一、前言        在之前的STM32的GPIO理论基础知识中,分别对基本结构和工作模式进行了详细的介绍。GPIO基本结构中主要对GPIO内部的各个功能电路逐一的进行的分析;GPIO工作模式中主要介绍GPIO应用在不同的使用场景下,GPIO端口的静态特征配置和动态的工作模式,同时对信号的工作流进行了分析。        这一篇主要对GPIO模块使用到的寄存器进行详细的分析介绍,适当了解GPIO寄存器的相关知识,可以对GPIO最底层的一些配置和工作原理有更好的认识,有助于加深对GPIO基本结构及工作模式的理解,同时对后续介绍到的GPIO在应用设

(CubeMX)STM32使用FREERTOS,在中断函数中使用HAL_Delay()函数导致程序卡死问题解决记录

1.RTOS占用systick,所以系统定时器需要配置为其他定时器。否则CubeMX会报错。 2.调整系统定时器为TIM1后,此时,定时器中断优先级默认为最低15,导致在其它高于此优先级的中断中,使用HAL_Delay()函数时,程序卡死。调高TIM1定时器中断优先级即可。 

STM32-06-STM32_GPIO

文章目录STM32GPIO1.GPIO简介2.GPIO工作模式3.GPIO相关寄存器4.通用外设驱动模型5.GPIO配置步骤6.点亮LED灯7.LED流水灯8.按键控制LED灯STM32GPIO1.GPIO简介什么是GPIO?GPIO:GeneralPurposeInputOutput,即通用输入输出端口,简称GPIO作用:负责采集外部器件的信息或者控制外部器件工作,即输入输出STM32F103ZET6芯片是144脚的芯片,具有GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF和GPIOG七组GPIO口,共有112个IO口可供编程使用。GPIO特点?不同型号芯片IO口数量可

STM32 HAL库 SPI主从双机通信

一、简介最近因为项目需求,需要在一块板子内实现一个主机和五个从机的通信;主机平台选用的是STM32F407VGT6,从机平台选用的是STM32F103C8T6;通信总线选用的是SPI总线。在构想是觉得采用SPI进行主从通信会很简单,但在实际开发的过程中,各种坑,通信时而正常时而混乱。不过在不断探究中,也逐渐发现了,各种问题所在,借此记录下来,希望能帮助一些兄弟在开发中避免一些坑。本次实现的平台如下:通信主机:芯片:STM32F103RCT6硬件平台:野火mini开发板通信从机:芯片:STM32F103C8T6硬件平台:淘宝STM32F103C8T6最小系统开发板软件:HAL库MDKSTM32C

STM32故障处理——HAL_Delay卡死

问题描述笔者准备写一个按键控制LED亮灭的简单程序,但是程序却卡死在了用于消抖的HAL_Delay(20)处问题所在检查发现是因为HAL_Delay()需要用到SysTick定时器,而本人使用的STM32CubeMX对SysTick的初始中断优先级设为了15(最低),所以按键中断进入后调用HAL_Delay()函数发生卡死解决方案打开STM32CubeMX,进入Pinout&Configuration->SystemCore->NVIC,将SysTick的优先级设置得比按键中断更高即可前面的是抢占优先级,后面的是响应优先级简单来说就是比谁的数字小,小的优先级高。比完抢占优先级比响应优先级。

嵌入式-Stm32-江科大基于标准库的GPIO的八种模式

文章目录一:GPIO输入输出原理二:GPIO基本结构三:GPIO位结构四:GPIO的八种模式道友:相信别人,更要一百倍地相信自己。(推荐先看文章:《嵌入式-32单片机-GPIO推挽输出和开漏输出》)下文图都是从参考手册借阅:STM32F10xxx(中文),大概页数是110/775左右一:GPIO输入输出原理GPIO(GeneralPurposeInputOutput)通用输入输出口可配置为8种输入输出模式引脚电平:0V~3.3V,部分引脚可容忍5V(有FT标识)输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等输入模式下可读取端口的高低电平或电压,用于读取按键

HAL 库

HAL库1、初识HAL库1.1CMSIS简介CMSIS(微控制器软件接口标准):CrotexMicrocontrollerSoftwareInterfaceStandard,是由ARM和与其合作的芯片厂商、软件工具厂商,共同制定的标准ARM官方提供的CMSIS规范架构1.2HAL库简介ST为了方便用户开发STM32芯片开发提供了三种库:标准外设库:StandardPeripheralLibrariesST最早的库,现在还在用目前只兼容F0/F1/F3/F2/F4/L1系列目前已停止维护HAL库(硬件抽象层):HardwareAbstractionLayerST目前主推的库全系列兼容兼容性好、移

普中STM32-PZ6806L开发板(HAL库函数实现-TIM5 设置 PWM input, 获取频率跟占空比)

简介初始化TIM5为PWMinputCH1,获取输入PWM的频率和占空比电路原理图连线将PC7与PA0使用跳线进行连接其他知识APIs/*Blockingmode:Polling*/HAL_StatusTypeDefHAL_TIM_IC_Start(TIM_HandleTypeDef*htim,uint32_tChannel);//堵塞捕获开启HAL_StatusTypeDefHAL_TIM_IC_Stop(TIM_HandleTypeDef*htim,uint32_tChannel);//堵塞捕获停止/*Non-Blockingmode:Interrupt*/HAL_StatusTypeDe

基于HAL库实现STM32硬件IIC读写MPU6050

一、接口介绍1.1HAL_I2C_Mem_Write()参数1:I2C句柄,如&hi2c1;参数2:从机设备地址(呼叫),如陀螺仪,写为0xD0(...0);参数3:从机寄存器地址(具体的读写位置);参数4:从机寄存器地址长度,I2C_MEMADD_SIZE_8BIT或I2C_MEMADD_SIZE_16BIT;参数5:发送的数据的起始地址(写入什么);参数6:传输数据的大小如1代表1字节;参数7:操作超时时间如0x10...。1.2HAL_I2C_Mem_Read()参数2:如陀螺仪,读为0xD1(...1);参数5:读到哪里二、实验代码(注释很重要)uint8_tSenddata0x00=