草庐IT

STM32程序调用规则(AAPCS):最新的ARM子程序调用规则

        AAPCS是arm公司发布的ARM架构应用程序二进制(ABI)程序调用接口,该文档由多个版本,博主第一次ARM程序调用规则是在《ARM体系与结构编程》,但书中描述的是ATPCS,AAPCS是ATPCS的升级版。后面去ARM官网看到了AAPCS的文档,遂记录下来。ARM的ABI标准有多个文档,该文档只是其中的一部分。下面的链接里面包含了相关文档,又想去的可以拿来都看看。最新版的链接:GitHub-ARM-software/abi-aa:ApplicationBinaryInterfacefortheArm®Architecture1、适用范围        AAPCS定义了子程序

【STM32+HAL】LCD显示及触摸初始化配置

一、所用工具:1、芯片:STM32F407ZGT62、STM32CubeMx软件3、IDE:MDK-Keil软件4、显示屏:正点原子4.3寸TFTLCDMCU电阻屏480*800二、实现功能:初始化LCD显示、触摸三、准备工作:1、有关CUBEMX的初始化配置,参见我的另一篇blog:【STM32+HAL】CUBEMX初始化配置2、准备好商家提供的LCD文件(本文末附)四、LCD显示配置步骤:1、配置FSMC2、配置LCD屏幕的背光引脚至此,HAL库配置完成3、创建LCD的C文件和H头文件4、将例程中的代码复制到LCD.h中注意:需要删去头文件改为添加以下代码#include"stdint.h

STM32F103标准外设库——认识STM32(一)

 个人名片:🦁作者简介:一名喜欢分享和记录学习的在校大学生🐯个人主页:妄北y🐧个人QQ:2061314755🐻个人邮箱:2061314755@qq.com🦉个人WeChat:Vir2021GKBS🐼本文由妄北y原创,首发CSDN🎊🎊🎊🐨座右铭:大多数人想要改造这个世界,但却罕有人想改造自己。专栏导航:妄北y系列专栏导航:C/C++的基础算法:C/C++是一种常用的编程语言,可以用于实现各种算法,这里我们对一些基础算法进行了详细的介绍与分享。🎇🎇🎇C/C++刷题库:分享一些关于编程的练习基础题,也会后续加入一系列的算法题,分享自己的解题思路和方法。🥰🥰🥰计算机网络:对计算机网络的基础知识框架有一

STM32(HAL库)驱动AD8232心率传感器

目录1、简介2、CubeMX初始化配置2.1基础配置2.1.1SYS配置 2.1.2RCC配置2.2ADC外设配置2.3 串口外设配置 2.4GPIO配置 2.5项目生成 3、KEIL端程序整合3.1串口重映射3.2ADC数据采集3.3主函数代码整合4硬件连接5效果展示1、简介本文通过STM32F103C8T6单片机通过HAL库方式对AD8232心率传感器进行数据的读取,并通过串口来进行显示。2、CubeMX初始化配置2.1基础配置2.1.1SYS配置 2.1.2RCC配置2.2ADC外设配置2.3 串口外设配置 2.4GPIO配置 2.5项目生成 3、KEIL端程序整合3.1串口重映射具体步

HAL库 STM32运用DMA与IDLE中断实现高效串口通信 (附代码)

最近想做一个控制电机的项目,其中会用到Pytho与单片机STM32之间的互同,最近也在看一些关于数据通信和拆包的相关知识,所以记录一下这段时间里对两者之间的互通所做的事情和发现的问题,以供自己和大家参考。单片机的串口是我们常用的与电脑通信的外设,本次与Python互通就采用的串口实现上位机与下位机的通讯。本章先讲解串口外设的使用,下一章讲解在Python中接收单片机发送的数据。我采用的单片机型号是STM32F103ZET6,使用usart1进行数据的收发,所使用的引脚是PA9、PA10。使用STM32Cube打开串口进行初始化。第一步,设置时钟源,在未设置的情况下,我们的单片机默认的系统时钟是

【STM32】定时器1触发ADC多(规则)通道采样+DMA(CUBEMX配置)

在用单片机做电源控制时不得不提ADC采集,离散系统是有固定的执行周期的,所以我们采样也是要固定时间去采样。然后就是我希望pwm波(定时器1产出)的频率与采样频率一致。我下面演示的是G431CBU6,当然其他芯片也大差不差了。说一下大致流程,TIM1触发ADC采样,然后DMA把数据搬出来,在ADC中断里处理DMA搬出来的数据。ADC配置首先口都是这个signal的。这里记得用循环。不然你第一次数据才出来DMA搬完你还要再次使能DMA,太麻烦了。ScanConversionMode:就是多通道模式。这里你要先完成下面的选择转换口数量才能enable。一定不要使能连续转换。我们的目的就是定时器触发,

【STM32】STM32学习笔记-串口发送和接收(27)

00.目录文章目录00.目录01.串口简介02.串口相关API2.1USART_Init2.2USART_InitTypeDef2.3USART_Cmd2.4USART_SendData2.5USART_ReceiveData03.串口发送接线图04.USB转串口模块05.串口发送程序示例06.串口发送支持printf07.串口发送支持printf_v208.串口发送和接收接线图09.串口接收示例(轮询模式)10.串口接收示例(中断模式)11.程序下载12.附录01.串口简介串口通讯(SerialCommunication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备

嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记02:开发环境安装

系列文章目录嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记01:赛事介绍与硬件平台嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记02:开发环境安装嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记03:从零开始创建工程模板并开始点灯前言上一篇介绍了一下蓝桥杯板子CT117E的硬件情况,这一篇讲一下如何配置开发环境。基于STM32CubeMX的HAL库开发主要依靠图形化配置软件STM32CubeMX、JAVA开发环境、集成开发环境MDK-ARM、芯片器件包、HAL固件包。这五个软件资源的安装可以分为两个部分,一是STM32

【STM32 + HAL库】之 6 --- GPIO 输入模式,读取按键电平

 目录第一部分、GPIO 输入模式要点第二部分、CubeMX配置        第三部分、代码编写第四部分、编译+烧录代码本篇目标:    通过按键,点亮\关闭LED灯,学会:    ①、通过CubeMX,配置引脚的输入模式     ②、调用函数,读取引脚电平状态    ③、了解上、下拉电阻钳位的作用     不聊底层理论,5分钟干完!       友情约定:本系列的前五篇,为了方便新手玩家熟悉CubeMX、Keil的使用,会详细地截图每一步CubeMX、Keil的操作,并做上标记。之后的篇章,仅截图主要步骤页面。希望新手玩家熟记本篇的基本操作。第一部分、GPIO 输入模式要点      重要

【STM32】HAL库的STOP低功耗模式UART串口唤醒,解决首字节出错的问题(全网第一解决方案)

【STM32】HAL库的STOP低功耗模式UART串口唤醒,解决首字节出错的问题(全网第一解决方案)前文:【STM32】HAL库的STOP低功耗模式UART串口唤醒,第一个接收字节出错的问题(疑难杂症)目前已解决并更新了我的gitee库:基于HAL库建立自己的低功耗模式配置库(STM32L4系列低功耗所有配置汇总)文章目录先说结论最初的串口唤醒配置官方文档的说明首字节出错的问题解决后的流程及代码为什么说是“全网第一”附录:Cortex-M架构的SysTick系统定时器精准延时和MCU位带操作SysTick系统定时器精准延时延时函数阻塞延时非阻塞延时位带操作位带代码位带宏定义总线函数一、位带操作