草庐IT

STM32中MspInit的一些知识

在书本上以及网上总结了一些关于Msp函数的知识在学习HAL库的过程中,总是会看到MspInit和MspDeInit,书本上只是说这是回调函数,但是关于这个函数有什么用,为什么要有这个函数,却说的很少,于是我就上网找了一些资料,在结合一下书本上的说法,就有了这一篇笔记。这篇笔记有可能会随着我的水平的提升而进行迭代。MSP:MCUSpecificPackage,即MCU特定程序包,也称MCU具体方案。因为MspDeInit用的很少,所有这里只介绍MspInit可以通过两个说法来了解带有MspInit的函数的主要作用①存放外设使用到的GPIO、CLOCK、NVIC、DMA等外设的初始化(驱动)代码。

【STM32】HAL库代码移植GD32,CAN总线收发例程(已调通)

一、移植对象从STM32F103CBT6移植到GD32F303CCT6。二、can总线通信源码1.mian.c#include"main.h"#include"can.h"#include"usart.h"#include"gpio.h"#include"stdio.h"#include"delay.h"externCAN_TxPacketTypeDefg_CanTxPacket;voidSystemClock_Config(void);uint32_ta;intmain(void){HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_CAN_I

STM32的CRL CRH ODR BRR BSRR寄存器(逐句解析)

 一端口配置寄存器(GPIOx_CRL和GPIOx_CRH)这两个寄存器都是GPIO口配置寄存器,CRL控制端口的低八位,CRH控制端口的高八位。寄存器的作用是控制GPIO口的工作模式和工作速度。每组GPIO下有16个IO口,一个寄存器共32位,每4个位控制1个IO如图所以才需要两个寄存器完成。比如GPIOA_CRL的复位值是0x44444444,4位为一个单位都是0100,一共八个0100,以寄存器低四位说明一下。首先位1:0为00即:设置 PA0为输入模式,如图位3:2为01即:设置为浮空输入模式,如图所以假如GPIOA_CRL的值是0x44444444,那么PA0~PA7都是设置为输入模

RT-Thread NUCLEO32-STM32L412开发板BSP说明

RT-ThreadNUCLEO32-STM32L412开发板BSP说明RT-ThreadNUCLEO32-STM32L412开发板BSP说明简介开发板介绍外设支持使用说明快速上手硬件连接编译下载运行结果进阶使用注意事项示例代码源码下载维护人:RT-ThreadNUCLEO32-STM32L412开发板BSP说明简介本文档为ST官方NUCLEO32-L412开发板的BSP(板级支持包)说明。主要内容如下:开发板资源介绍BSP快速上手进阶使用方法通过阅读快速上手章节开发者可以快速地上手该BSP,将RT-Thread运行在开发板上。在进阶使用指南章节,将会介绍更多高级功能,帮助开发者利用RT-Thr

【STM32】STM32F103ZET6程序下载(串口方式)

00.目录文章目录00.目录01.概述02.CH340驱动安装03.串口下载程序步骤04.讨论05.附录01.概述STM32的程序下载有多种方法:USB、串口、JTAG、SWD等,这几种方式,都可以用来给STM32下载代码。不过,我们最常用的,最经济的,就是通过串口给STM32下载代码。我们将向大家介绍,如何利用串口给STM32下载代码。STM32的串口下载一般是通过串口1下载的,STM32开发板,不是通过RS232串口下载的,而是通过自带的USB串口来下载。看起来像是USB下载(只需一根USB线,并不需要串口线)的,实际上,是通过USB转成串口,然后再下载的。02.CH340驱动安装在驱动安

STM32CubeMX学习笔记(50)——USB接口使用(DFU固件升级)

一、USB简介USB(UniversalSerialBUS)通用串行总线,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的。USB发展到现在已经有USB1.0/1.1/2.0/3.0等多个版本。目前用的最多的就是USB1.1和USB2.0,USB3.0目前已经开始普及。STM32F103自带的USB符合USB2.0规范,不过STM32F103的USB都只能用来做设备,而不能用作主机。标准USB共四根线组成,除VCC/GND外,另外为D

ZIGBEE协议栈通信——阿里云上传数据(STM32)(一)

ZIGBEE协议栈介绍Zigbee是一种低功耗、低成本的无线通信协议,特别适用于物联网设备之间的通信。Zigbee协议栈是一组硬件和软件层级结构,用于支持Zigbee设备之间的通信。Zigbee协议栈通常由以下几个层级组成:1.物理层(PhysicalLayer):负责处理物理无线通信的细节,例如频率、功率控制和数据传输速率等。物理层使用的是2.4GHz频段,并支持多种调制方式。2.媒介接入控制层(MediumAccessControl,MAC):负责管理通信介质的访问,以便多个设备可以按照一定的规则共享通信介质。MAC层处理一些基本的网络控制功能,例如设备的寻址、帧结构定义和冲突避免。3.网

CRC原理介绍及STM32 CRC外设的使用

1.CRC简介循环冗余校验(英语:Cyclicredundancycheck,简称CRC),由W.WesleyPeterson于1961年首次提出的一种纠错码理论。CRC是一种数据纠错方法,主要应用于数据通信或者数据存储的场合,用来检测或校验数据传输或者数据存储后可能出现的错误,特别是擅长检测由传输通道中的噪声引起的常见错误。CRC是数据通信领域中最流行的一种错误检测方法,传输过程中的数据信息字段长度,以及校验码的字段长度可以任意自定义的指定,但是通信双方必须使用同一标准的CRC校验。2.CRC模型及其相关概念很多大佬们在研究CRC算法的时候,设计了各种CRC的算法模型,这些模型可以适用不同的

STM32--中断使用(超详细!)

写在前面:前面的学习中,我们接触了STM32的第一个外设GPIO,这也是最常用的一个外设;而除了GPIO外,中断也是一个十分重要且常用的外设;只有掌握了中断,再处理程序时才能掌握好解决实际问题的逻辑思路。此节我们学习STM32的中断;  在前面51的学习中,我们也介绍过中断的内容,但是相对于32来说,52的中断十分简单,只有5个中断源,中断的优先级,响应函数也是比较简单的,感兴趣的读者可以看一下下面的这篇博客。CSDNhttps://mp.csdn.net/mp_blog/creation/editor/133904885目录一、什么是中断二、NVIC(中断管家)2.1NVIC基本概念2.2N

STM32 DAC+串口

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、DAC是什么?二、STM32DAC1.什么型号有DAC2.简介3.主要特点4.DAC框图5.DAC电压范围和引脚三、程序步骤1.开启DAC时钟2.配置引脚PA4PA5模拟输入3.初始化DAC5.使能DAC6.写入数字电压7.触发转换8测试结果四、加入串口互动1.定义发送字符格式:方案1比较符合人性方案2,用mv输出,没有小数,提取会更简单2.获取字符串3.解释字符串总结前言提示:这里可以添加本文要记录的大概内容:前面学习了STM32的ADC,掌握了模拟信号如何转化成数字信号,现在学习如何将数字信号转换成模拟信号。目