STM32
文章平均质量分 91
flydream0
这个作者很懒,什么都没留下…
展开
-
STM32F10x的启动汇编分析
;******************** (C) COPYRIGHT 2009 STMicroelectronics ********************;* File Name : startup_stm32f10x_cl.s;* Author : MCD Application Team;* Version :原创 2012-11-04 20:57:02 · 12148 阅读 · 1 评论 -
如何使用CubeMx制作一个基于SD卡的文件系统工程
前言本文将介绍使用CubeMx工具从零开始制作一个基于SD卡的文件系统,以便后续使用此功能者参考。原创 2016-10-10 15:26:51 · 8525 阅读 · 1 评论 -
无法使用内置Bootloader的DFU方式进行固件升级
本文将针对客户无法使用内置Bootloader的DFU方式进行固件升级的问题进行分析。转载 2016-12-06 20:06:12 · 6279 阅读 · 0 评论 -
串口工作在DMA模式下有时接收异常
1 前言客户反馈在使用STM32F205的串口工作在DMA模式时,有时能够接收数据,有时完全没有数据,但如果换成中断模式来接收又能100%正常收到数据。2 复现现象2.1 问题背景与客户沟通,客户使用的是STM32F2标准库V1.1.0,串口波特率为1.408Mbps,不经过串口RS232,直接连接主CPU和从MCU(STM32F205)的串口发送和接收引脚,如下图所示: 图12.2 尝试重现转载 2016-11-25 16:56:05 · 8940 阅读 · 0 评论 -
STM32F030低温下RTC不工作
客户反馈在批量生产阶段,发现部分产品的MCU的RTC在低温(0℃)下工作不正常,但是在常温下又是正常的,且其他正常的MCU的RTC在常温与低温下都是正常的。原创 2016-12-16 22:28:35 · 9067 阅读 · 7 评论 -
如何制作一个读取U盘文件系统的工程
本文介绍基于CubeMx如何创建一个读取U盘的工程,并通过FAT32文件系统创建和读取文件。原创 2016-12-21 19:16:09 · 5738 阅读 · 0 评论 -
STM32之CAN ---CAN ID过滤器分析
1 前言 在CAN协议里,报文的标识符不代表节点的地址,而是跟报文的内容相关的。因此,发送者以广播的形式把报文发送给所有的接收者。节点在接收报文时,根据标识符(CAN ID)的值决定软件是否需要该报文;如果需要,就拷贝到SRAM里;如果不需要,报文就被丢弃且无需软件的干预。 为满足这一需求,bxCAN为应用程序提供了14个位宽可变的、可配置的过滤器组(13~0),以原创 2012-11-05 16:01:16 · 100233 阅读 · 55 评论 -
再谈STM32的CAN过滤器-bxCAN的过滤器的4种工作模式以及使用方法总结
1. 前言bxCAN是STM32系列最稳定的IP核之一,无论有哪个新型号出来,这个IP核基本未变,可见这个IP核的设计是相当成熟的。本文所讲述的内容属于这个IP核的一部分,掌握了本文所讲内容,就可以很方便地适用于所有STM32系列中包含bxCAN外设的型号。有关bxCAN的过滤器部分的内容在参考手册中往往看得“不甚明白“,本文就过滤器的4种工作模式进行详细讲解并使用具体的代码进行演示,这些代码都进原创 2016-08-25 21:02:36 · 60589 阅读 · 72 评论 -
如何使用CubeMx制作一个基于SD卡的文件系统工程(2)
本文是原文http://blog.csdn.net/flydream0/article/details/52777923的补充。原文并没有考虑SD卡拔插问题,且SDIO没有使用DMA,本文作为补充,将示例如何改善这两方面的问题。1 SD卡拔插检测FATFS文件系统初始化得修改下:void MX_FATFS_Init(void) { /*## FatFS: Link the原创 2017-01-03 20:21:27 · 5903 阅读 · 1 评论 -
STM32F412擦除内部FLASH时间过长
1 前言客户反馈在使用STM32F412的时候,擦除sector 8~11发现时间过长,从而导致意外触发IWDG复位。2 问题分析2.1 问题详情通过与客户邮件和电话沟通,了解到客户主要是想使用内部FLASH暂时保存IAP升级时的程序数据,在IAP升级的过程中,需要首先擦除内部FLASH中一块足够大的空间,然后再写入升级数据。客户的工程中有使用到IWDG,喂狗间隔大约1.5S,客户原创 2017-01-05 22:02:51 · 19423 阅读 · 13 评论 -
使用CubeMx制作一个SD卡作为存储空间的U盘
本文总结如何使用CubeMx制作一个U盘。原创 2017-01-06 20:27:33 · 9287 阅读 · 0 评论 -
elm FatFs文件系统移植总结
本文将根据我的一些理解,针对elm FatFs文件系统做一个初步总结。原创 2017-01-13 20:10:02 · 10989 阅读 · 4 评论 -
如何使用CubeMx生成一个DFU工程
DFU用来做IAP是很方便的,可以直接通过USB来对APP进行升级,因此,掌握DFU的制作还是挺有好处,特别是使用CubeMx工具可以快速制作,本文将基于STM3240G-EVL评估板来一步一步实现一个DFU的IAP工程。原创 2017-01-11 21:09:19 · 9335 阅读 · 2 评论 -
对TTCAN的分析
TTCAN通过独占窗口的方式解决消息传送的确定性问题,提高总线利用率,试图满足应用发展的要求。但是在恶劣环境的高误码率下,传送的可靠性下降,容错的措施不成熟,成本较高。再考虑TTCAN的其他得失,认为它不是性价比高的CAN技术升级方案。转载 2017-01-23 19:29:46 · 7288 阅读 · 7 评论 -
在进行USB CDC类开发时,无法发送64整数倍的数据
前言本文将基于STM32F4DISCOVERY板,介绍如何使用USB的CDC类进行开发,以及在开发过程中碰到发送64整数倍数据时会失败的问题分析及解决方案。原创 2016-11-17 21:27:42 · 19650 阅读 · 16 评论 -
全速USB和高速USB的识别过程分析
注:本文是根据网上的一些资料整理而成。1 前言我们知道USB2.0向下兼容USB1.x,即高速2.0的hub能支持所有的速度类型的设备,而USB1.x的hub不能支持高速设备(High Speed Device)。因此,如果高速设备挂到USB1.x的hub上,那该设备只能工作在全速模式下。不管是hub还是设备(device),对于速度的区分是非常重要的,否则,后续的通信根本无法进行。2 全速和低速U原创 2017-05-09 23:19:21 · 36221 阅读 · 7 评论 -
STM32L152的低功耗测试
本文将验证STM32L32在stop模式下的低功耗电流。在ST官网的STM32L152RE芯片介绍上明确有说明此芯片在stop模式下可以达到560nA,纳安!并且还可以支持16个外部中断唤醒。真的这么强!下面来验证一下。采用NUCLEO-L152板子进行验证,使用CubeMx生成工程代码。在CubeMx中选择STM32L152RE这款芯片,pinout如下设置:如上图,只是简单地将PC13,PB9原创 2016-09-12 11:06:04 · 20576 阅读 · 10 评论 -
USB Audio设计与实现
本文将基于STM32F4 Discovery板,从零开始设计并实现一个USB Audio的例子。原创 2016-11-10 20:50:16 · 24653 阅读 · 31 评论 -
STM32之CAN---接收管理分析
1 前言 当bxCAN接收到报文,经过过滤器过滤后,会将报文存储到FIFO中,由http://blog.csdn.net/flydream0/article/details/8148791一文中可知,每个过滤器组都会关联一个FIFO,由此可见,当接收到的报文通过过滤器后会被存储到此过滤器组关联的FIFO中(STM32共两个接收FIFO)。这个FIFO为3级邮箱原创 2012-11-07 10:49:56 · 38752 阅读 · 4 评论 -
STM32之CAN---错误管理分析
1 几个重要概念 根据ISO11898有如下几个重要的与CAN相关的定义:Fault confinement(错误界定)CAN nodes shall be able to distinguish short disturbances from permanent failures. Defective transmitting nodes shall be swit原创 2012-11-08 16:36:03 · 33516 阅读 · 1 评论 -
STM32之CAN---TTCAN模式浅析
1 前言 传统CAN 采用事件触发消息传输机制,CSMA/ CD+ AMP( Carrier-Sense Mult iple Access w ith Co llision Detect ion and Arbit ration on Message Priorit ies, 载波侦听、多路访问、冲突检测、优先级仲裁) 介质访问控制机制, 即多个消息同时发送时, 按照消息原创 2012-11-09 18:33:39 · 18875 阅读 · 5 评论 -
STM32之CAN---中断管理浅析
1 前言bxCAN占用4个专用的中断向量。通过设置CAN中断允许寄存器(CAN_IER),每个中断源都可以单独允许和禁用。 图1从图1可以看出,最右边共四个中断,中断是可以通过CAN_IER来屏蔽或允许的。2 CAN中断允许寄存器 (CAN_原创 2012-11-10 23:12:54 · 24510 阅读 · 0 评论 -
STM32之CAN---工作/测试模式浅析
1 bxCAN工作模式 bxCAN有3个主要的工作模式:初始化模式、正常模式和睡眠模式。 在硬件复位后,bxCAN工作在睡眠模式以节省电能,同时CANTX引脚的内部上拉电阻被激活。软件通过对CAN_MCR寄存器的INRQ或SLEEP位置’1’,可以请求bxCAN进入初始化或睡眠模式。一旦进入了初始化或睡眠模式,bxCAN就对CAN_MSR寄存器的INAK或SLAK位置’1’来进原创 2012-11-11 00:10:15 · 22965 阅读 · 0 评论 -
如何用MDK从零开始创建STM32F2xx工程(图文教程)
第一步:下载标准外设固件库。 下载链接:http://www.st.com/stonline/stappl/resourceSelector/app?page=resourceSelector&doctype=FIRMWARE&ClassID=1734 打到STM32F2xx Standard Peripherals library,目前最新的版本是V1.1.0原创 2012-11-29 10:54:02 · 20445 阅读 · 1 评论 -
STM32之中断与事件---中断与事件的区别
<!--@page {margin:0.79in}p {margin-bottom:0.08in; direction:ltr; color:#000000; text-align:justify; widows:0; orphans:0}p.western {font-family:"Times New Roman",serif; font-siz原创 2012-11-21 15:55:42 · 52738 阅读 · 31 评论 -
发布一个简单好用的STM32F20x烧录工具
主界面如下图:目前支持STM32F20x的MCU,其它功能待进一步完善。下载地址:http://download.csdn.net/detail/flydream0/5264125第一步:选择串口在启动软件时,程序会自动将当前存在的串口导入到列表中以供选择,且程序默认状态下自动选择了最后一个串口。第二步:载入文件可支持bin文件和hex文件:第三步:点击开始烧录:请先确保STM32F20x的MCU原创 2013-04-16 15:24:33 · 11314 阅读 · 1 评论 -
STM32之CAN---发送管理分析
1 CAN发送邮箱STM32共有三个CAN发送邮箱,在检测到总线空闲时交发送,但需要注意的是,有可能会发送失败,有可能因为仲裁失败从而导致失败,也有可能是其它错误,原则上bxCAN将自动重发,但bxCAN也可以配置不自动重发。正因为如此,发送邮箱中有可能同时存在多个需要发送的报文,一旦出现这种情况,那么发送邮箱中的多个报文又将是谁先发送谁后发送呢?有两种模式:ID模式和FIFO模式。ID模式由报文原创 2012-11-07 16:56:33 · 49700 阅读 · 10 评论 -
STM32之中断与事件---一个使用GPIO作为外部中断的示例
1.GPIO 的正确设置GPIO_InitTypeDef GPIO_InitStructure;/* Enable GPIOD clock */RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);/* Configure PD.03, PC.04, as input floating */GPIO_InitStructure.GPIO原创 2012-11-21 17:32:29 · 24433 阅读 · 0 评论 -
STM32之CAN---配置波特率
1 位时间特性 为了掌握如何设置STM32 CAN的波特率,首先我们得先了解一下位时间特性。 位时间特性逻辑通过采样来监视串行的CAN总线,并且通过跟帧起始位的边沿进行同步,及通过跟后面的边沿进行重新同步,来调整其采样点。它的操作可以简单解释为,如下所述把名义上的每位的时间分为3段:● 同步段(SYNC_原创 2012-11-10 22:40:33 · 56767 阅读 · 5 评论 -
使用USART接口进行STM32F0的在线升级(AN4065)-基于标准库的STM32F070的IAP移植手记
1 前言STSW-STM32116是ST官网基于标准库的针对STM32F0的USART进口IAP示例程序,下载链接:http://www.stmcu.org/document/detail/index/id-213120工程原本是针对STM32F051,本文将介绍如何移植到STM32F070,并针对移植的过程中的问题逐个处理。2 KEIL下移植IAP程序一般分为两个,一个是IAP,一个是APP,I原创 2016-07-28 21:56:45 · 12938 阅读 · 1 评论 -
USB库STM32F0x2移植到STM32F070笔记
1. 前言ST官方提供的USB库STM32F0x2_USB-FS-Device_LibV1.0.0 是基于标准库的,适用于STM32F0x2系列MCU,但是对于STM32F070来说,就需要稍作修改,本文就一直到STM32F070作一个笔记。2. 移植从STM中文官网上下载STM32F0x2 USB库,地址:http://www.stmcu.org/document/detail/index/id原创 2016-07-30 19:22:39 · 11612 阅读 · 4 评论 -
STM32L152的IAP移植笔记
本文将针对STML152的IAP移植过程作一个笔记。首先得下载AN3310的示例代码,地址为:http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32-standard-peripheral-libraries-expansi原创 2016-09-09 15:24:18 · 6923 阅读 · 1 评论 -
STM32F0xx在增加IAP后APP为什么在main函数中要重映射SRAM
本文很好的介绍了M0的启动过程,以及中断与中断向量表的关系,以及从IAP到APP的过程。并为读者解释了对于M0的MCU在增加了IAP后,为什么要将中断向量表拷贝到SRAM并且将系统重映射到SRAM。原创 2016-10-13 17:09:31 · 12332 阅读 · 7 评论 -
在进行USB CDC类开发时,无法发送64整数倍的数据(续)
1 前言此文延续之前相同文章的话题,是对上篇文章的补充,之所以会有此文,主要是之前发现问题是在STM32F4上,解决方案也是基于CubeF4,但是,当相同问题出现在STM32F0上时,使用之前的代码修改并不能适用,这也就是本文的目的所在。注:需要读懂此文的内容,请先了解上篇文章的内容:[这里写链接内容](http://blog.csdn.net/flydream0/article/detai原创 2017-05-04 21:17:51 · 5674 阅读 · 1 评论