ARM
文章平均质量分 90
海洋想想
私聊不回,有事留言。谢谢!
展开
-
STM32F429第二十八篇之ADC
前言STM32F429的ADC为12位逐次逼近的模数转换器。该ADC具有19个复用通道,其中16个通道用于外部测量,两个内部源和VBAT通道。AD转换的结果存在一个16位的数据寄存器中,可以选择为左对齐或者右对齐。...原创 2021-12-02 17:49:05 · 4235 阅读 · 0 评论 -
STM32CubeMX第八篇之DMA
前言本文主要讲解自己实现DMA串口实验。本实验主要实现以下功能:按键0按下,则8000Byte数据通过由DMA控制的串口发出去在LCD屏幕上显示数据发送的进度。LED0每1s闪烁一次,证明程序正确运行本实验使用的HAL库的版本为:STM32Cube_FW_F4_V1.25.0本实验使用的STM32CubeMX版本为:6.1.1该工程的下载地址为:keil版本:https://github.com/zhenhaiyang/keilCube版本:https://github.com/z原创 2021-05-28 09:41:28 · 662 阅读 · 1 评论 -
STM32F429第二十七篇之DMA实验详解
文章目录前言结构体Instance(实例)Init(初始化结构体)Lock(锁)State(状态)XferCpltCallback(传输完成回调函数)XferHalfCpltCallback(传输完成一半回调函数)XferM1CpltCallback(内存1传输完成回调函数)XferM1HalfCpltCallback(内存1传输一半回调函数)XferErrorCallback(错误回调函数)XferAbortCallback(中止回调函数)ErrorCode(错误代码)StreamBaseAddress(原创 2021-05-25 20:35:41 · 4108 阅读 · 8 评论 -
STM32F429第二十七篇之DMA
文章目录前言基本流程通道选择优先级传输模式前言DMA(Direct memory access)用于内存与内存之间或者内存与外设之间的高度数据传输。而且使用DMA进行数据传输不占用CPU任何资源,从而解放CPU去做别的操作。F429中共有两个DMA控制器,每个控制器用户8个数据流。基本流程DMA的事务处理就是一系列一定数量的数据传送。传送的数据宽度可以通过编程改变。每个DMA传送都包含以下几个步骤:从外设寄存器或者内存中加载数据,该外设或者内存的地址存储在寄存器DMA_SxPAR 或者 DMA_原创 2021-05-24 10:48:51 · 1365 阅读 · 2 评论 -
STM32CubeMX第七篇之MCU屏
文章目录前言主程序配置模式A配置时序应用前言本文主要讲解自己实现MCU控制程序。本程序具有以下功能:能够输出汉字能够输出ASCII字符串能够输出整数本文使用的HAL库的版本为:STM32Cube_FW_F4_V1.25.0本文使用的STM32CubeMX版本为:6.1.1该工程的下载地址为:keil版本:https://github.com/zhenhaiyang/keilCube版本:https://github.com/zhenhaiyang/STM32CUBE关于MCU原创 2021-05-18 19:57:39 · 1116 阅读 · 0 评论 -
STM32F429第二十六篇之编码器功能
文章目录前言编码器功能框图功能前言编码器功能是F429的定时器重要的功能之一,在项目中经常要用到。本章主要介绍F429的编码器功能。主要参考文献:RM0090参考文档编码器编码器通常可以分成以下两类:增量式编码器:输出编码器的旋转量绝对式编码器:直接输出编码器的位置下面简单介绍一下需要用到F429编码器模块的增量式编码器。如上图所示,增量式编码器一般输出通道A和通道B两组信号。这两组信号之间有90度的相位差(即四分之一的相位差),通过判断脉冲的频率即可得到编码器的旋转速度,而通原创 2021-05-18 20:01:09 · 1479 阅读 · 1 评论 -
STM32F429第二十五篇之MCU屏实验详解
文章目录前言软件结构体程序主程序配置程序前言软件结构体程序主程序int main(void){ /* 1.定义变量 */ u8 x = 0; u8 lcd_id[12]; /* 2.硬件初始化 */ HAL_Init(); //初始化HAL库 Stm32_Clock_Init(360, 25, 2, 8); //设置时钟,180Mhz delay_init(180);原创 2021-05-11 16:18:41 · 2492 阅读 · 2 评论 -
STM32F429第二十四篇之SRAM原理
文章目录前言前言原创 2021-05-11 16:12:51 · 2204 阅读 · 1 评论 -
STM32F429第二十三篇之电容按键
文章目录前言硬件分析原理源程序主函数TpadInitGetTimeUntochedGetTimeChargeTpadScan前言本文主要介绍电容按键的原理与使用方法,主要使用的ARM资源为捕获模块,并不涉及新的模块。所以本文内容不涉及新的HAL库内容的介绍。关于捕获模块部分,可以参考以下三篇博客:STM32F429第二十二篇之高级定时器——捕获功能原理STM32F429第二十三篇之捕获实验详解STM32CubeMX第六篇之捕获实验本文主要参考资料:刘火良,杨森.STM32库开发实战指南原创 2021-04-26 21:34:48 · 2727 阅读 · 10 评论 -
STM32CubeMX第六篇之捕获实验
文章目录前言结构体SlaveMode(从模式)InputTrigger(触发源)TriggerPolarity(触发极性)TriggerPrescaler(外部触发预分频)TriggerFilter(外部触发滤波器)程序初始化从模式设置前言本文主要讲解自己实现的捕获程序。本文程序借鉴了正点原子的例程。关于正点原子的程序详解,可以参考博客<STM32F429第二十三篇之捕获实验详解>。本文介绍的程序的不同主要如下:通过高级时钟TIM8实现捕获功能。通过通道1和通道2分别捕获PC6管脚上原创 2021-04-20 10:01:55 · 4293 阅读 · 1 评论 -
STM32F429第二十二篇之高级定时器——捕获功能原理
文章目录前言结构体TIM_OC_InitTypeDef源程序主程序配置TIM5_CH1_Cap_InitHAL_TIM_IC_InitHAL_TIM_IC_MspInitTIM_Base_SetConfig前言结构体TIM_OC_InitTypeDef/** * @brief TIM Input Capture Configuration Structure definition */typedef struct{ uint32_t ICPolarity; /*!< S原创 2021-04-07 16:09:17 · 2569 阅读 · 3 评论 -
STM32F429第二十三篇之捕获实验详解
结构体TIM_OC_InitTypeDef/** * @brief TIM Input Capture Configuration Structure definition */typedef struct{ uint32_t ICPolarity; /*!< Specifies the active edge of the input signal. This parameter can be a value o原创 2021-04-07 12:31:56 · 3259 阅读 · 2 评论 -
STM32CubeMX第五篇之PWM
文章目录前言结构体TIM_BreakDeadTimeConfigTypeDefOffStateRunMode(运行模式关闭状态)OffStateIDLEMode(空闲状态关闭)LockLevel(上锁等级)DeadTime(死区时间)BreakState(断路状态)BreakPolarity(断路极性)BreakFilter(断路滤波器)AutomaticOutput(自动输出使能)HAL解析前言本文主要讲解自己实现的PWM程序。借鉴了正点原子程序的实现方法。关于正点原子的程序详细讲解,可以参考博客&l原创 2021-02-24 20:44:42 · 2513 阅读 · 0 评论 -
STM32F429第二十一篇之PWM波实现详解
文章目录前言结构体TIM_OC_InitTypeDefOCMode(输出通道模式)Pulse(脉冲值)OCPolarity(输出极性)OCNPolarity(互补输出通道极性)OCFastMode(输出通道快速模式)OCIdleState(输出通道闲置状态)OCNIdleState(互补输出通道闲置状态)源代码主函数配置TIM3_PWM_InitHAL_TIM_PWM_InitHAL_TIM_PWM_MspInitTIM_Base_SetConfigHAL_TIM_PWM_ConfigChannelTIM_原创 2021-02-22 19:01:05 · 6754 阅读 · 1 评论 -
STM32F429第二十篇之高级定时器——PWM(OSSI,OSSR)
文章目录前言前言从本文开始,介绍F429的高级时钟特性。本文主要介绍高级时钟的PWM功能的应用。关于PWM,本文重点介绍实现带有断路功能的双通道互补无延时的PWM波的实现方式。原创 2021-02-22 18:59:49 · 4911 阅读 · 1 评论 -
STM32CubeMX第四篇之基本定时器
文章目录前言keil主函数时钟配置中断响应CUBE主函数配置函数中断响应前言本文主要介绍使用keil和STM32CubeMX两种工具实现基本定时器功能。与正点原子的代码相比,本文的代码实现有以下几个特点:在中断响应中,不再使用回调函数处理,而是直接使用响应函数,且在响应函数中直接操作寄存器,以提高代码的效率。使用的时钟为基本时钟TIM6。与通用时钟相比,该时钟具有简单易用的特点。关于基本时钟的更多内容,可以参考博客<STM32F429第十八篇之基本定时器>。关于正点原子的代码详原创 2021-02-06 15:58:41 · 977 阅读 · 1 评论 -
STM32F429第十九篇之基本定时器实验详解
前言本次博客更新了HAL库的版本。以后的博客都会采用此HAL库版本。HAL库版本:STM32Cube_FW_F4_V1.25.0本篇博客主要介绍基本定时器中的源码解析,会涉及以下三个部分:以整点原子定时器中断实验的程序为蓝本的程序解析重点的结构体介绍个人根据解析结果,最后分享自己的写的源代码需要注意的是:本文介绍的源代码使用的并非基本定时器TIM6或者TIM7,而是通用定时器TIM3。但是,他们程序上是兼容的,只需将TIM3当做基本定时器即可。在最后的自我分享代码中,会严格的使用TI原创 2021-02-03 20:54:38 · 2821 阅读 · 0 评论 -
STM32F429第十八篇之基本定时器
文章目录前言定时器基本定时器1.时钟源2.控制器3.预分频寄存器4.计数器5.中断与UEV事件前言STM32的时钟比较复杂。在F429中共有14个定时器,大致可以分成以下三类:高级定时器——2个通用定时器——10个基本定时器——2个本文主要介绍基本定时器.本文主要参考内容:刘火良, 杨森.STM32库开发指南——基于STM32F4.机械工业出版社ST.RM0090 Reference manual定时器在F429中,定时器可以汇总为下表:定时器类型定时器名称计数器原创 2021-02-02 19:41:51 · 3679 阅读 · 0 评论 -
STM32F429第十七篇之外部中断实验详解
@原创 2021-01-29 19:49:37 · 1626 阅读 · 0 评论 -
STM32F429第十六篇之外部中断
文章目录前言中断使用优先级外部中断前言本文主要介绍与外部中断相关的内容。本文主要参考文献为:ST.STM32 Cortex®-M4 MCUs and MPUs programming manualST.RM0090 Reference manual刘火良.STM32库开发实战指南——基于STM32F4.机械工业出版社正点原子.STM32F429开发指南-HAL库版本_V1.1Joesph Yiu.ARM cortex-M3与cortex-M4权威指南(第三版).清华大学出版社中断本文原创 2021-01-28 19:04:14 · 730 阅读 · 0 评论 -
STM32CubeMX第三篇之串口实验
文章目录前言STM32CUBE配置配置串口生成代码HAL初始化MX_USART1_UART_InitUSART1_IRQHandler前言本文主要介绍 串口实验 的通过STM32CUBE形式和直接编程模式的不同。本文可以参考博客<STM32F429第十四篇之串口实验详解>。两种方式实验的效果完全相同:在程序启动时,会发送信息 hello,zhy!在程序运行时,LED等闪烁。向串口1 发送数据,其会返回相同的数据。该实验源代码下载https://github.com/zhenh原创 2021-01-27 19:12:36 · 1115 阅读 · 0 评论 -
STM32F429第十五篇之串口实验详解二
文章目录前言主函数system文件夹sysdelayQUEUEUART前言通过上篇博客<STM32F429第十四篇之串口实验详解>,已经详细梳理了串口在HAL库中的工作过程。但是,整个过程比较繁琐,实时性很差。本文通过构建一个新的工程,简化串口工作的流程。另外,本文对于正点原子原有的system文件夹中的程序已经简化。完整的工程文件见GitHub:https://github.com/zhenhaiyang/keil主函数/** **************************原创 2021-01-27 15:55:12 · 741 阅读 · 0 评论 -
STM32F429第十四篇之串口实验详解
文章目录摘要硬件部分软件部分HAL_UART_Init摘要本文主要以正点原子串口通信实验为基础,讲解其中涉及的HAL库函数的具体实现原理。本文主要参考文献:正点原子.STM32F429 开发指南(HAL 库版)硬件部分这是正点原子开发板关于串口部分硬件原理图。该原理图中TXD与RXD分别与PA10和PA9管脚向量。其电平为TTL电平。所以,该原理图就比较容易理解了。通过CH340芯片,将USB转换为TTL电平的串口。这样就可以实现电脑中串口助手与ARM串口之间的通信了.软件部分HAL原创 2021-01-22 11:57:07 · 3442 阅读 · 1 评论 -
STM32F429第十三篇之stm32f4xx_hal_uart
文章目录前言综述用法前言本篇文章主要介绍STM32F429的HAL库中USART的用法。主要参考资料为:Description of STM32F4 HAL and low-layer drivers综述用法声明一个USART_HandleTypeDef句柄结构体(USART_HandleTypeDef husart)。通过重定义函数HAL_USART_MspInit()初始化USART底层资源。使能 USARTx接口时钟。USART管脚配置使能对应GPIO的时钟。配置USA原创 2021-01-18 14:14:45 · 2730 阅读 · 0 评论 -
STM32CubeMX第二篇之跑马灯
文章目录前言操作步骤打开软件新建工程配置时钟配置GPIO生成源代码编写代码实验验证源码讲解delay相关while循环自动生成前言本文主要介绍STM32Cube用法以及自动生成的代码讲解。本文以跑马灯试验为例。本实验纯代码实现方式可以参考博客<STM32F429第三篇之GPIO的模板工程构建>。且实验程序的详细分析,可以参考博客<STM32F429第四篇之跑马灯程序详解>。本文主要参考资料:正点原子.STM32F429开发指南-HAL库版本_V1.1操作步骤打开软件原创 2020-11-11 12:24:10 · 2509 阅读 · 4 评论 -
STM32F429第十二篇之位带操作
文章目录前言与或操作位带操作基本概念地址转换编程实现位操作前言本文主要介绍以位带操作为代表的F429寄存器的位操作方法。通常的寄存器位操作方法有与或方法,位带方法,还有struct位域方法,本文将一一介绍。本文参考文献为:Joesph Yiu.ARM cortex-M3与cortex-M4权威指南(第三版).清华大学出版社刘火良,杨森.STM32库开发实战指南——基于STM32F4.机械工业出版社ST.STM32 Cortex®-M4 MCUs and MPUs programming man原创 2020-11-10 19:37:12 · 1007 阅读 · 0 评论 -
STM32F429第十一篇之数据类型
在ST官方文档上没有找到相关介绍。此表出自< The Definitive Guide to ARM Cortex-M3 and Cortex-M4 Processors>原创 2020-11-10 16:28:52 · 247 阅读 · 0 评论 -
STM32F429第十篇之systick
文章目录前言寄存器STK_CTRLSTK_LOADSTK_VAL正点原子delay初始化函数微秒延时函数HAL库前言systick是Cortex-M内置的一个节拍定时器功能。它具有以下几个特点:24位计数器递减计数可以产生中断本文主要介绍该功能在STM32F429上的使用方法。本文主要参考文献:Joesph Yiu.ARM cortex-M3与cortex-M4权威指南(第三版).清华大学出版社ST.STM32 Cortex®-M4 MCUs and MPUs programming原创 2020-11-06 18:30:24 · 1293 阅读 · 0 评论 -
STM32F429第九篇之stm32f4xx_hal_rcc_ex
文章目录前言函数HAL_RCCEx_PeriphCLKConfig结构体HAL_StatusTypeDefRCC_PeriphCLKInitTypeDef前言本文主要介绍STM32F429的HAL库中的RCC的剩余函数的用法,主要参考资料为:Description of STM32F4 HAL and low-layer drivers本文承接上文<STM32F429第八篇之stm32f4xx_hal_rcc>在HAL库中,名称以_ex为后缀的文件表明该文件中的函数并非通用函数,与原创 2020-10-19 18:35:16 · 31410 阅读 · 0 评论 -
STM32F429第八篇之stm32f4xx_hal_rcc
文章目录前言综述特性初始化和反初始化函数外设控制函数前言本文主要介绍STM32F429的HAL库中的RCC用法。本文主要参考资料:Description of STM32F4 HAL and low-layer drivers综述特性复位之后,芯片的时钟源为HSI。Flash预取缓存,D缓存,I缓存和所有外设全部禁用。此时,只有内部SRAM,FLASH和JTAG还在工作。在高速总线和低速总线上都没有预分频,这些总线上映射的设备全都以HSI速度在运行。所有外设的时钟都关闭,除了SRAM和原创 2020-10-10 14:27:42 · 3800 阅读 · 0 评论 -
STM32F429第七篇之RCC(复位与时钟)
文章目录前言复位系统复位电源复位备份域复位前言本文主要讲解STM32F429的RCC模块,即Reset and Clock Control,也就是复位与时钟控制。本文主要参考:STM32F4XX 英文参考手册STM32F4XX 中文参考手册注意:STM32F429相对于其他4系列的STM32在时钟模块还是有些不同,而由于中文参考手册已经很长时间没有更新,所以,不同之处还需参考英文参考手册。复位复位主要有三种复位类型:系统复位电源复位备份域复位系统复位其中,系统复位 会将所有原创 2020-09-14 00:17:37 · 2420 阅读 · 0 评论 -
STM32F429第六篇之stm32f4xx_hal_gpio
文章目录前言主要功能与使用方法功能使用方法前言本文主要介绍HAL库中Stm32F429的GPIO用法。主要参考资料:STM32F439xx HAL USER Manual关于GPIO寄存器相关知识,可以参阅stm32F4xx中文参考手册,里面对于硬件底层以及寄存器有详细的介绍,本文不再详细展开。在使用HAL库的时候,即使不了解底层硬件和寄存器知识,同样可以完成项目的开发。此处,只需要了解HAL库驱动函数的使用方法即可。了解驱动函数的使用方法可以通过以下两种途径:阅读源程序和其中的注释阅读用原创 2020-09-10 15:21:12 · 2819 阅读 · 0 评论 -
STM32F429第五篇之HAL库内存映射实现
文章目录前言存储器映射HAL库地址名称映射地址寄存器前言本文主要介绍HAL库将外设地址与其变量名称映射关系的确立的方法,主要通过GPIOB为例。主要参考文献:ST.STM32F427xx,STM32F429xx数据手册ST.STM32F4xx参考手册正点原子.STM32F429开发指南——HAL库版本存储器映射HAL库地址名称映射地址根据上文,我们可以得到GPIOB的地址范围为:0x40020400-0x400207FF。在HAL库的stm32f429xx.h中,在127原创 2020-09-09 20:36:43 · 1271 阅读 · 0 评论 -
STM32F429第四篇之跑马灯程序详解
文章目录前言主程序GPIORCCsystick前言本文以上篇博文<STM32F429第三篇之GPIO的模板工程构建>构建的项目为历程,讲解在HAL库中如何操作控制GPIO的输出,以及STM32编程的步骤。本文主要参考文献为:正点原子.STM32F429开发指南——HAL库版本主程序#include "sys.h"#include "delay.h"#include "led.h"int main(void){ HAL_Init();原创 2020-09-09 16:47:43 · 6262 阅读 · 0 评论 -
STM32F429第三篇之GPIO的模板工程构建
文章目录前言步骤前言本篇承接<STM32F429第一篇之新建一个HAL库模板工程>。实现模板工程的应用,主要参考资料:正点原子.STM32F429开发指南——HAL库版本步骤通过参考上一篇文章,新建一个HAL库模板工程。如下图所示:在 Template 文件夹中,新进 hardware 文件夹。如下图所示:...原创 2020-09-06 16:51:35 · 465 阅读 · 0 评论 -
STM32F429第二篇之推挽输出与开漏输出
文章目录前言原理详解应用场景前言STM32F4的IO共有8种模式,分别为输入浮空输入上拉输入下拉模拟功能具有上拉或下拉功能的开漏输出具有上拉或下拉功能的推挽输出具有上拉或下拉功能的复用功能推挽具有上拉或下拉功能的复用功能开漏其中,比较难理解的就是推挽输出和开漏输出的区别。本文重点介绍两者区别。本文主要参考资料为:ST官方.STM32F4XX中文参考手册刘火良.STM32库开发实战指南——基于STM32F4.机械工业出版社原理详解推挽输出和开漏输出的等效电路图如上图所示原创 2020-08-25 18:16:29 · 4342 阅读 · 0 评论 -
STM32F429第一篇之新建一个HAL库模板工程
文章目录前言新建文件夹新建工程官方硬件支持包下载验证前言本文主要的参考资料为正点原子的 <STM32F429开发指南——HAL库版本>。新建文件夹新建一个名称Template的文件夹。在Template文件下,新建CORE,HALLB,OBJ,USER四个文件夹。当然,以上5个文件夹是正点原子推荐的分类方法,可以根据个人的实际需要修改。如下图所示:新建工程新建项目:打开keil->Project->New uVision Project.将目录定位到刚原创 2020-08-25 16:10:44 · 1905 阅读 · 0 评论 -
STM32CubeMX时钟默认设置
原创 2020-08-23 17:16:28 · 678 阅读 · 0 评论