
STM32CUBE
文章平均质量分 57
张十三的博客
一个专注于电子/IT开发技术的创客媒体,主要涵盖电子基础技术,软件开发基础技术,物联网,智能家居,开源软硬件,自动控制,仿真,机器人(运动控制,ROS),无人机,机械设计等等
快用 WX 搜索并关注“张十三的博客”和张十三一起搞技术吧!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
STM32 电机教程 24 - ST MCLIB实战之无感变绝对式位置传感器
前言上一节给大讲演示了如何用ST MotorControl Workbench创建基本STM32F103C8T6芯片的FOC工程并根据实际电路成功创建了工程,但是实际电路使用的是绝对式磁编码器作为电机位置及速度检测传感器,而ST MotorControl Workbench工程中并没有对应的选项可选,因此上一节所创建的工程是无位置传感方式的FOC工程,本节将基于上一节的工程,给大家讲解如何手动...原创 2019-12-12 17:01:49 · 6233 阅读 · 5 评论 -
STM32 电机教程 22 - 基于ST MCLIB无感FOC算法变有感(HALL)FOC算法
前言 磁场定向控制又称矢量控制(FOC), 本质上为控制定子电流的幅度和相位,使之产生的磁场和转子的磁场正交,以产生最大的扭矩. PMSM的磁场定向控制框图如下图所示:第21讲对比分析了基于ST MotorControl Workbench实现的单电阻FOC有感(hall)算法及单电阻FOC无感算法在代码上的具体差异,知道了其核心差异在MC_Task.C文件中对电机转子位置及...原创 2019-12-07 14:35:04 · 10295 阅读 · 0 评论 -
ST CUBEMX 修改MCU型号
在已经配置好的 stm32cube工程基础上如何快速更换MCU,如更换成同系列的Flash空间更大或者更小/或封状更小的芯片,ST CUBE工具不支持直接修改MCU ,如果换个芯片需要重新配个CUBE工程的话,对于笔者这种比较懒的人来是有点接受不了的,下面给大家介绍一种快速更改MCU型号的方法 :原理: 用文件编辑器(记事本,写字板等,笔者用第三方工具UltraEdit)直接修改.ioc文件内...原创 2019-12-03 16:21:19 · 9720 阅读 · 1 评论 -
STM32 基础系列教程 41 – SDMMC
前言 SDIO(Secure Digital Input and Output) 安全数字输入输出接口,它支持多种类型的MMC卡,如SD卡,SDIO卡,MMC卡等。STM32 的SD/SDIO MMC卡主机模块(SDIO)在AHB外设总线和多媒体卡(MMC)、 SD存储卡、 SDIO卡和CE-ATA设备间提供了操作接口。其主要特点有:● 与多媒体卡系统规格书版本4.2全兼容。支持三种...原创 2019-05-27 07:32:01 · 7107 阅读 · 0 评论 -
STM32 基础系列教程 35 - Lwip_sntp
前言NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。SNTP 简单网络时间协议(Simple Network Time Protocol),由NTP改编而来,主要用来同步因特网中的计算机时钟。换句话说SNTP是NTP的精简版,我们可以用SNTP协议来得到当前网络时间。关于NTP及SNTP的更多知识请自行查找资料。本实险主要目...原创 2019-05-12 20:46:19 · 6026 阅读 · 0 评论 -
STM32 基础系列教程 34 - Lwip_tcp_server
前言学习stm32 以太网接口使用,及LWIP使用,用LWIP快速实现一个TCP server网络通信功能, 学会基本LWIP的网络数据接收与发送功能,让初学者了解和学会使用lwip.示例详解基于硬件平台: MCU 的型号是STM32F407VGT6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。本示例所用的最小系统板原理图: ...原创 2019-05-12 20:44:56 · 6147 阅读 · 3 评论 -
STM32 基础系列教程 33 - Lwip_tcp_client
前言学习stm32 以太网接口使用,及LWIP使用,用LWIP快速实现一个TCP client网络通信功能, 学会基本LWIP的网络数据接收与发送功能,让初学者了解lwip(关于Lwip更多的功能介绍将会在后期的STM32 中级教程中介绍)。示例详解基于硬件平台: MCU 的型号是STM32F407VGT6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编...原创 2019-05-12 20:43:48 · 5306 阅读 · 2 评论 -
STM32 基础系列教程 37 - Lwip_igmp
前言组播通信的特点是报文从一个源发出,被转发到一组特定的接收者。但在组播通信模型中,发送者不关注接收者的位置信息,只是将数据发送到约定的目的组播地址。要使组播报文最终能够到达接收者,需要某种机制使连接接收者网段的组播路由器能够了解到该网段存在哪些组播接收者,同时保证接收者可以加入相应的组播组中。IGMP就是用来在接收者主机和与其所在网段直接相邻的组播路由器之间建立、维护组播组成员关系的协议。...原创 2019-05-16 16:05:22 · 3226 阅读 · 2 评论 -
STM32 基础系列教程 39 - Lwip_tftp
前言文件传输协议(英文:FileTransferProtocol,缩写:FTP)是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层。文件传送(file transfer)和文件访问(file access)之间的区别在于:前者由FTP提供,后者由如NFS等应用系统提供。FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理,...原创 2019-05-21 17:29:26 · 5270 阅读 · 1 评论 -
STM32 基础系列教程 32 – Ethnet+Lwip
前言学习stm32 以太网接口使用,及LWIP使用,用LWIP快速实现一个UDP网络通信功能, 学会基本LWIP的网络数据接收与发送功能,让初学者了解lwip(关于Lwip更多的功能介绍将会在后期的STM32 中级教程中介绍)。示例详解基于硬件平台: MCU 的型号是STM32F407VGT6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。本示例...原创 2019-05-11 12:14:06 · 4060 阅读 · 0 评论 -
STM32 基础系列教程 36 - Lwip_dns
前言域名系统(英文:DomainNameSystem,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。开始时,域名的字符仅限于ASCII字符的一个子集。2008年,ICANN通过一项决议,允许使用其它语言作为互联网顶...原创 2019-05-15 18:32:54 · 2007 阅读 · 0 评论 -
STM32 基础系列教程 31 – DAC
前言学习stm32 DAC数模转换接口使用,学会用STM32 的DAC接口,通过DAC接口将数字信号转变成模拟信号输出,或查看内部变量值的变化波形,学习DAC波形发生器的使用。示例详解基于硬件平台: NUCLEO-F302R8 NUCLEO板, MCU 的型号是STM32F302R8, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。本示例所...原创 2019-05-07 14:13:00 · 1954 阅读 · 0 评论 -
STM32 基础系列教程 30 - 文件系统
前言学习stm32中FATFS 文件系统的基础使用,学会文件的打开及读写删除等基本操作,理解文件系统基本概念。示例详解基于硬件平台: STM32F10C8T6最小系统板, MCU 的型号是STM32F103c8t6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。本示例所用的最小系统板原理图: 关于CUBEMX工...原创 2019-05-06 11:18:34 · 4590 阅读 · 1 评论 -
STM32 基础系列教程 28 - USB_DFU
前言学习stm32 USB接口使用,学会用CUBE工具快速创建USB设备工程及调试,关于usb的相关知道请读者提前准备并学习,当然如果不想深究其中原理的话,跟着本文来操作就可以实现基于USB的设备开发了。需要提示的是,stm32在使用usb接口功能是一般需要在DP引脚上上拉一个1.5K电阻到3.3V(部分MCU内部会上拉)。示例详解基于硬件平台: STM32F10C8T6最小系统...原创 2019-04-30 17:10:15 · 5532 阅读 · 9 评论 -
STM32 基础系列教程 29 - FreeRTOS
前言学习stm32 中 FreeRTOS嵌入式实时操作系统的使用,学会在FreeRTOS时行任务创建与任务运动,学习在嵌入式实时操作系统下编程,用串口打印相应信息,并控制LED闪烁。示例详解基于硬件平台: STM32F10C8T6最小系统板, MCU 的型号是STM32F103c8t6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。...原创 2019-05-05 14:29:33 · 3849 阅读 · 0 评论 -
STM32 基础系列教程 27 - USB_HID
前言学习stm32 USB接口使用,学会用CUBE工具快速创建USB设备工程及调试,关于usb的相关知道请读者提前准备并学习,当然如果不想深究其中原理的话,跟着本文来操作就可以实现基于USB的设备开发了。需要提示的是,stm32在使用usb接口功能是一般需要在DP引脚上上拉一个1.5K电阻到3.3V(部分MCU内部会上拉)。示例详解基于硬件平台: STM32F10C8T6最小系统...原创 2019-04-29 15:10:29 · 16519 阅读 · 12 评论 -
STM32 基础系列教程 42 - SDMMC+Fatfs
前言本节我们将基于42讲 “STM32 基础系列教程 41 - SDMMC” 的基础来实现基于SD卡文件系统的文件操作。 示例详解基于硬件平台: 正点源子的stm32f4 探索者开发板,主要使用了SDIO接口和文件系统,MCU 的型号是STM32F4ZET6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。本示例所用的开发板及部分原理图:...原创 2019-05-27 07:34:04 · 3456 阅读 · 1 评论 -
STM32 基础系列教程 38 - Lwip_http
前言HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的种网络传输协议,所有的WWW文件都必须遵守这个标准。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器有...原创 2019-05-17 20:41:40 · 11007 阅读 · 1 评论 -
stm32f407 usb cdc设备无法启动问题
最新要做一个项目,要求基于STM32F407实现USB CDC设备,首先想到的就是直接用STM32CUBEMX工具来生成,OK,话不多说,直接上过程:RCC配置:Sys配置USB_OTG_FS配置:USB_DEVICE配置:时钟配置然后生成代码并编译,烧录后发现设置有点问题:出现上面的问题显然是不能正常命使用的,曾以为是驱动的问题,重新去官网下载...原创 2019-05-28 11:17:35 · 4298 阅读 · 1 评论 -
STM32 进阶教程 8 - 位带操作
前言有过51单片机开发经历的朋友应该都对51的IO口或一些特殊寄存器可以直接按位操作的方式不陌生吧,那么在stm32中有没有类似的操作呢,答案是肯定的,本节将给大家介绍如何在STM32中实现位带操作。在《ARM Cortex-M3权为指南》中的第87页对位带操作如下描述:位带操作支持了位带操作后,可以使用普通的加载/存储指令来对单一的比特进行读写。在 CM3中,有两个区中实现了位带...原创 2019-07-06 21:47:25 · 2188 阅读 · 0 评论 -
STM32 进阶教程 3 - 软件实现高精度延时 1
前言软件工程师在在实际项目开发过程中,软件延时想必或多或少都有接触过,诸如delay_s(x); delay_ms(x);delay_us(x)等类型的延时函数大家也一定见过或自已曾经实现过,本节给大家介绍一种在STM32 MCU平台上实现高精度(小于1us)软件延时的方法。本节介绍的高精度度软件延时方法以STM32 MCU特有的sysTime 定时器主基础,延时度度高,移植性强,通用性好。...原创 2019-06-22 20:57:13 · 6703 阅读 · 0 评论 -
stm32 USB CDC 不接电脑无程序一直在USB中断问题
前些时间基于STM32CUBE 工具做了个用STM32F103的USB 接口 枚举成CDC的项目,接上电脑程序功能正常,但是在不接电脑时,程序一直在USB中断中,下在给大家分享一下我的解决方法:首先是在 stm32f1xx_hal_pcd.c文件中的HAL_PCD_IRQHandler函数屏蔽USB_ISTR_ESOF中断响应操作,如下面方红色代码所示:void HAL_PCD_IRQH...原创 2019-06-18 09:46:02 · 5287 阅读 · 1 评论 -
STM32 基础系列教程 47 - MD5
前言 MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。1991年,Rivest开发出技术上更为趋近成熟的md...原创 2019-06-11 20:28:25 · 9350 阅读 · 11 评论 -
STM32 基础系列教程 46 – RNG
前言 随机数发生器(RNG)是一个以连续模拟噪声为基础的随机数发生器,在主机读数时提供一个32位的随机数。STM32F407自带RNG ,本节将给大演示STM32F4系列MCU中的RNG的使用。用RNG产生一些随机数并通过串口打印出来,好了,下面开始进入正题。示例详解基于硬件平台: 正点源子的stm32f4 探索者开发板,MCU 的型号是STM32F4ZET6, 使用stm...原创 2019-06-11 16:32:01 · 4778 阅读 · 0 评论 -
STM32 基础系列教程 45 - FSMC_LCD_Touch
前言 上一节我们完成了用 STM32F4的 FSMC接口来控制 TFTLCD的显示的操作,其实正点原子的探索者F4开发板带的屏幕支持触摸操作,笔者用的是4.3寸的电容触摸屏,本节我们继续实验,来完成基于STM32的触摸屏的实验,关于触摸屏的原理自行查找资料。示例详解基于硬件平台: 正点源子的stm32f4 探索者开发板,MCU 的型号是STM32F4ZET6, 使用stm32c...原创 2019-06-11 15:57:04 · 1356 阅读 · 1 评论 -
STM32 基础系列教程 44 - FSMC_LCD
前言 TFT-LCD 即薄膜晶体管液晶显示器。其英文全称为: Thin Film Transistor-Liquid Crystal Display。 TFT-LCD 与无源 TN-LCD、 STN-LCD 的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。 TFT-LC...原创 2019-06-10 20:05:18 · 1081 阅读 · 0 评论 -
STM32 基础系列教程 43 – SRAM
前言 STM32F407ZGT6 自带了 192K 字节的 SRAM,对一般应用来说,已经足够了,不过在一些对内存要求高的场合, 比如跑算法或者跑 GUI 等,自带的这些内存就不够用了。比如跑算法或者跑 GUI 等,就可能不太够用。这个时候就会用到外部的SRAM或SDRAM,本节,我们将使用带领大家用STM32CUBE工具,快速实现基于FSMC接口的外部SRAM的读写操作实验。...原创 2019-06-10 16:17:46 · 9960 阅读 · 2 评论 -
STM32 电机教程 0 - MotorControl Workbench下载与安装
前言STM32微控制器提供了行业标准Arm®Cortex®-M核心运行矢量控制或FOC模式的性能,广泛应用于空调、家用电器、无人机、建筑和工业自动化、医疗和电动自行车应用的高性能驱动器。STM32 MCSDK(电机控制软件开发工具包)固件(X-CUBE-MCSDK和X-CUBE-MCSDK- ful)包括永磁同步电机(PMSM)固件库(FOC control)和STM32电机控制工作台...原创 2019-06-19 11:16:56 · 26052 阅读 · 11 评论 -
STM32 基础系列教程 50 – MbedTls
前言 mbed TLS(以前称为PolarSSL)是TLS和SSL协议的实现,并且需要相应的加密算法和支持代码。这是双重许可与Apache许可证2.0版(与GPLv2许可也可)。网站上指出,mbed TLS的目标是“易于理解,使用,集成和扩展,核心SSL库用C编程语言编写,并实现SSL模块,基本加密功能并提供各种实用功能。与OpenSSL和TLS的其他实现不同,mbed TLS设...原创 2019-06-13 20:26:28 · 10550 阅读 · 4 评论 -
STM32 基础系列教程 49 – Jansson
前言 JSON(JavaScriptObject Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。它独立于开发语言...原创 2019-06-12 16:14:27 · 3544 阅读 · 2 评论 -
STM32 基础系列教程 48 – CJSON
前言 JSON(JavaScriptObject Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。它独立于开发语言...原创 2019-06-12 16:12:07 · 3127 阅读 · 1 评论 -
STM32 基础系列教程 40 - Lwip_mqtt
前言MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网...原创 2019-05-24 10:51:46 · 8580 阅读 · 7 评论 -
STM32 基础系列教程 26 - USB_MSC
前言学习stm32 USB接口使用,学会用CUBE工具快速创建USB设备工程及调试,关于usb的相关知道请读者提前准备并学习,当然如果不想深究其中原理的话,跟着本文来操作就可以实现基于USB的设备开发了。需要提示的是,stm32在使用usb接口功能是一般需要在DP引脚上上拉一个1.5K电阻到3.3V(部分MCU内部会上拉)。示例详解基于硬件平台: STM32F10C8T6最小系统...原创 2019-04-28 11:48:52 · 12670 阅读 · 3 评论 -
STM32 基础系列教程 21 - NVIC
前言学习stm32 NVIC接口编程,学会使用常用的NVIC接口函数,优改中关优先级,开/关单个中断,开/关所有中断,开/关所有中断和异常,系统软件重启等功能。示例详解基于硬件平台: STM32F10C8T6最小系统板, MCU 的型号是STM32F103c8t6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。本示例所用的最小系统板...原创 2019-04-18 21:29:09 · 1536 阅读 · 0 评论 -
STM32 基础系列教程 7 - 单脉冲PWM
前言学习stm32 基本定时器的使用,用基本定时器实现产生一个PWM,实现单脉冲PWM的功能。示例详解基于硬件平台: STM32F10C8T6最小系统板, MCU 的型号是STM32F103c8t6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。本示例所用的最小系统板原理图: 从本节开始,关于CUBEMX...原创 2019-04-02 20:30:58 · 4483 阅读 · 3 评论 -
STM32 基础系列教程 6 - PWM
前言学习stm32 基本定时器的使用,用基本定时器产生定时PWM, 来控制LED,通过并控制PWM波的占空比,实现呼吸灯效果示例详解基于硬件平台: STM32F10C8T6最小系统板, MCU 的型号是STM32F103c8t6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。本示例所用的最小系统板原理图:...原创 2019-04-02 20:30:14 · 2147 阅读 · 2 评论 -
STM32 基础系列教程 5 – 系统定时器
前言学习stm32 systime的使用,用基本定时器产生定时1ms定时中断,用于参生1ms系统时钟节拍,并实现将1ms 节拍改成500us 或其它时间功能。并实产生的时间节拍为机基准实现控制LED闪烁。示例详解基于硬件平台: STM32F10C8T6最小系统板, MCU 的型号是STM32F103c8t6, 使用stm32cubemx 工具自动产生的配置工程,使用KEI...原创 2019-04-02 20:29:17 · 2084 阅读 · 0 评论 -
STM32 基础系列教程 14 - IIC
前言学习stm32 IIC接口的使用,用IIC 接口实现与IIC设备的通信功能。示例详解基于硬件平台: STM32F103C8T6最小系统板, MCU 的型号是STM32F103c8t6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。本示例所用的最小系统板原理图: 关于CUBEMX工具及KEIL工具的操作将不再...原创 2019-04-11 10:39:07 · 1875 阅读 · 0 评论 -
STM32 基础系列教程 4 – 基本定时器
前言学习stm32 基本定时器的使用,用基本定时器产生定时500ms定时中断,控制LED闪烁。示例详解基于硬件平台: STM32F10C8T6最小系统板, MCU 的型号是STM32F103c8t6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。本示例所用的最小系统板原理图: 从本节开始,关于CUBEMX...原创 2019-03-28 14:29:33 · 2256 阅读 · 2 评论 -
STM32 基础系列教程 13 – ADC DMA
前言学习stm32 adc模数转换接口使用,学会用STM32对模拟信号时行采样,通过DMA方式得到ADC结果。示例详解基于硬件平台: STM32F10C8T6最小系统板, MCU 的型号是STM32F103c8t6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。本示例所用的最小系统板原理图: 从本节开始,关于CUBE...原创 2019-04-07 12:21:09 · 2017 阅读 · 2 评论