
stm32
文章平均质量分 76
imxiangzi
这个作者很懒,什么都没留下…
展开
-
STM32内部参照电压VREFIN的使用
一、STM32的内部参照电压VREFINT和ADCx_IN17相连接,它的作用是相当于一个标准电压测量点(和MSP430不一样。。),内部参照电压VREFINT只能出现在主ADC1中使用。内部参照电压VREFINT与参考电压不是一回事。ADC的参考电压都是通过Vref+提供的并作为ADC转换器的基准电压。当我们使用的Vref+是直接取自用VCC电压时,当VCC电压波动比较大时或稳压转载 2017-10-13 15:06:30 · 33445 阅读 · 3 评论 -
使用STM32的USB模块中后对USB缓冲区的认识
最近在使用STM32的USB模块开发个项目,还以为挺简单,结果搞了快两天才把USB的包缓冲区的访问搞定,在此做个小总结吧。 STM32的USB模块包缓冲区有512B,但是在STM32的参考手册中的存储器映像中却表明0x40006000-0x400063ff,整整多了512B,怎么会这样呢,同时在尝试着编程时也遇到了一个问题:在usb_core.c文件的Setup0_Process(void)这...转载 2018-04-23 19:26:51 · 1438 阅读 · 0 评论 -
STM32USB的枚举过程简介
STM32的USB枚举过程介绍 之前的说明: 文中大量引用网上资料,在文后已给出资料的引用说明。文件涉及到的USB各种传输包各个位的含义以及USB标准设备请求的含义都没有做说明,推荐看《圈圈教你玩USB》里面有详细的说明一、枚举前的工作 系统上电后,程序开始运行,简单介绍一下USB的初始化 根据STM32的USB库做移植,介绍枚举转载 2018-04-24 21:25:42 · 1116 阅读 · 0 评论 -
STM32 复合设备编写
目的完成一个CDC + MSC的复合USB设备可以方便在CDC,MSC,复合设备三者间切换可移植性强预备知识cube中USB只有两个入口。main函数中的MX_USB_DEVICE_Init函数。/* init function */void MX_USB_DEVICE_Init(void){ /* Init Device Library,Add Supported Class and S...转载 2018-04-24 21:38:29 · 1754 阅读 · 0 评论 -
USB Audio&hid 混合设备的描述符详解
/* USB Standard Device Descriptor */__ALIGN_BEGIN uint8_t USBD_HS_DeviceDesc[USB_LEN_DEV_DESC] __ALIGN_END = { 0x12, /*bLength */ USB_DESC_TYPE_DEVICE, /*bDe转载 2018-04-28 20:18:00 · 2660 阅读 · 0 评论 -
STM32_USB-FS-Device_Lib_V4.0.0中CustomHID实例在STM3210E-EVAL上的实现
1. 将STM32_USB-FS-Device_Lib_V4.0.0下的Libraries、Utilities文件夹和Projects\Custom_HID下的inc、src和MDK-ARM文件夹拷出。并保持原层叠关系: 2. 用MDK新建工程,Device选择STM32F103ZE 3. 在工程中添加如下文件夹: 4. 各文件夹下从添加的文件如下: 4.1 User文件夹下的文件在Pr...转载 2018-06-19 16:44:59 · 806 阅读 · 0 评论 -
STM32 USB 之从0开始移植笔记
-----------------------------------动机-----------------------------------写在前面的话:最近逛淘宝无意间发现RC522居然只要10元左右就可以包邮买到,真是太便宜了,就忍不住买了个回来玩玩。到货移植到我的板子上OK 后突然发现我的USB口紧张了,一个用来给板子供电一个插jlink 一个插入usb转串口给RC522...转载 2018-06-19 16:46:22 · 10762 阅读 · 0 评论 -
STM32之DMA
一、DMA简介1、DMA简介 DMA(Direct Memory Access:直接内存存取)是一种可以大大减轻CPU工作量的数据转移方式。 CPU有转移数据、计算、控制程序转移等很多功能,但其实转移数据(尤其是转移大量数据)是可以不需要CPU参与。比如希望外设A的数据拷贝到外设B,只要给两种外设提供一条数据通路,再加上一些控制转移的部件就可以完成数据的拷贝。 DMA就是基于以上设想设计的,...转载 2018-06-20 10:38:40 · 733 阅读 · 0 评论 -
STM32 DMA传输 中断方式配置 源代码
stm32单片机源程序:#include "pbdata.h"void RCC_Configuration(void);void GPIO_Configuration(void);void NVIC_Configuration(void);void USART_Configuration(void);void ADC_Configuration(void);void DMA_Configurat...转载 2018-06-20 10:39:45 · 9363 阅读 · 0 评论 -
STM32复位及通过函数判断是何种条件出发的复位
STM32F10xxx支持三种复位形式,分别为系统复位、上电复位和备份区域复位。一、系统复位:系统复位将复位所有寄存器至它们的复位状态。 当发生以下任一事件时,产生一个系统复位:1. NRST引脚上的低电平(外部复位) 2. 窗口看门狗计数终止(WWDG复位) 3. 独立看门狗计数终止(IWDG复位) 4. 软件复位(SW复位) 5. 低功耗管理复位 可通过查看RCC_CSR控制...转载 2018-10-14 16:23:58 · 2628 阅读 · 0 评论 -
窗口看门狗的真正作用
STM32有2个看门狗:独立看门狗和窗口看门狗。独立看门狗IWDG--独立于系统之外,因为有独立时钟,所以不受系统影响的系统故障探测器,主要用于监视硬件错误。窗口看门狗WWDG----系统内部的故障探测器,时钟与系统相同。如果系统时钟不走了,这个狗也就失去了作用了,主要用于监视软件错误。简单的讲,看门狗就是检测系统故障的,如果因为系统故障而没有及时喂狗,则引发复位重启。对于一般的看...转载 2018-10-14 16:28:29 · 1468 阅读 · 1 评论 -
STM32 关于复位类型的判断及软件复位 bug
STM 32在复位时,有严重BUG:1. 上电复位和外置的看门狗芯片重启复位是无法区分开来的!RCC_FLAG_BORRST, RCC_FLAG_PINRST, RCC_FLAG_LPWRRST三个都复位了!2. 这样当要在上电复位初始化关键代码时,这些代码看门狗复位则不用重启,这个关键代码会导致应用业务的异常!若两个中断分不开,导致系统异常看门狗复位时影响业务! /...转载 2018-10-14 17:50:28 · 2588 阅读 · 0 评论 -
STM32学习笔记之复位后初始化变量非零方法
一些产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备。而keil mdk在默认情况下,任何形式的复位都会将RAM区的非初始化变量数据清零。如何设置非初始化数据变量不被零初始化,这是本篇文章所要探讨的。 在给出方法之前,先来了解一下代码和数据的存放规则、属性,以及复位后为何默认非初始化变量所在RAM都被初始化为...转载 2018-10-14 18:35:06 · 2998 阅读 · 0 评论 -
STM32F0开发笔记8: 在keil中使用不初始化变量
我们进行程序设计的时候,都会知道,系统上电或复位时,会执行变量初始化操作,但是有些情况下,我们并不希望变量初始化,例如,在系统异常复位发生后,我们希望系统能够迅速恢复复位前的现场状况,这样就希望变量能够保留原先的值,而不被初始化。实际上,大家都知道,变量是存储在RAM中的,只要不掉电,变量的数值是不会改变的,只要我们不让系统进行初始化操作就可以了。 不同的编译环境,有不同的设置方法,本文...转载 2018-10-14 20:31:40 · 1309 阅读 · 0 评论 -
STM32-USB之Buffer Description Table
一.stm32的USB接口每个端点对应两个分组缓冲区,其地址与范围位于分组存储区。从STM32的数据手册中存储器映像->寄存器组起始地址看到:(注意地址范围大小为1024,APB1按32BIT对齐访问,但此SRAM是由256个16BIT字组成)这512BYTE的SRAM便是分组存储区;而Buffer Description Table(缓冲区描述表)则用于定位与划分各个端点的缓冲区缓冲区描述...转载 2018-04-23 18:56:10 · 1180 阅读 · 0 评论 -
STM32的USB例程修改步骤
我修改过的ST的Custom_HID例程http://download.youkuaiyun.com/source/2022984本文中修改好的例程http://download.youkuaiyun.com/source/2807366 以下是笔者将ST的Custom_HID例程修改为“自定义USB设备”例程时总结出来的,因为笔者也是刚刚学USB开发不久,某些方面理解错误在所转载 2018-04-23 18:52:56 · 2692 阅读 · 0 评论 -
STM32关于USB控制端点4的问题
解释如下:#define BTABLE_ADDRESS (0x00) //说明端点描述符表从0x00开始每个端点描述符会占用4个uint32_t型,即16个字节如果使用到端点4,需要将#define ENDP0_RXADDR (0x18)#define ENDP0_TXADDR (0x58)改为#define ENDP0_RXAD转载 2018-04-23 18:49:28 · 2418 阅读 · 0 评论 -
利用ST MCU内部基准参考电压监测电源电压及其它
在使用ST MCU开发过程中,有人问如果电源电压是变动的,询问有无办法用比较简洁的办法对电源电压进行监测,或者说电源电压波动情况下能否检测出其它待测的AD输入电压。 这里跟大家分享交流一个方法。就是在没有其它外来参考电压,用芯片电源电压VDD作为ADC的参考电压,同时该电源电压又在一定范围内变动的情况下【这个范围就是在保证芯片正常工作的范围】,利用MCU芯片内部自带基准电压对电源电压进行转载 2017-10-13 15:07:25 · 4394 阅读 · 0 评论 -
STM32 —— 多路DAC(输出电压和正弦波)
[cpp] view plain copy print?//========================================DAC========================================= #define DA_OUT1_CHANNEL DAC_Channel_1 #define DA_OUT1_GRP转载 2017-10-13 15:08:59 · 4410 阅读 · 1 评论 -
STM32 —— 多路ADC采集
[cpp] view plain copy print?#ifndef _ADC_H_ #define _ADC_H_ #include "type.h" #include "debug.h" void ADCInit(void); uint16_t ADCGetData(uint8_t channel); uin转载 2017-10-13 15:09:45 · 4826 阅读 · 0 评论 -
基于STM32F103的ID号对应用程序的保护方法(转)
由于现在市场激烈竞争、混乱的市场机制及已失去的市场道德,迫使在产品设计时,必需要考虑到对产品的保护,以防产品的技术被第三方所用。无论是从硬件方面来保护,还是从软件方面来保护,都无法保证产品100%的安全。由于嵌入式系统的特点就是软件、硬件相结合,才具有实际的意义,失去任何一个平台都是废品一堆,因此将系统的软件、硬件结合起来对产品进行加密保护,可靠性会大大地增加。STM32F103系列ARM处理器芯转载 2017-12-03 10:05:06 · 3219 阅读 · 3 评论 -
STlink V2 烧录器使用教学 【STM32篇】
STlink V2 是一款支持STM32/STM8 烧录的常规工具。本帖主要讲解STM32 的烧录过程。STM32有2种烧录接口,分别为古老的Jtag接口和目前最常规的SWD接口。由于SWD只需要4条线就能烧录,目前STM32硬件工程师用SWD取代JTAG接口已经成为大势所趋。Stlink v2 支持Jtag和SWD 2种接口,ST原厂设计产品考虑的就是通杀!下面开始教程。软件安装篇:1.安装驱动...转载 2018-02-12 13:06:58 · 56427 阅读 · 5 评论 -
STM32F042F6P6生成HID工程模拟USB鼠标
原文地址::http://www.stm32cube.com/article/141相关文章1、STM32F042F6P6-USB设备开发最小系统之键盘示例----http://www.stm32cube.com/article/143就是这个板子,淘宝59可买直接上工程配置了。打开SWD调试,开引脚映射,打开转载 2018-02-25 14:56:29 · 690 阅读 · 0 评论 -
STM32_USB之完全双缓存(包括发送和接收) -- 更新中断处理
STM32的USB双缓存接收代码其实已经可以在ST提供的USB示例代码中找到,只要稍加修改,就可以得到将近1MB的数据接收性能。虽然Datasheet中说明USB发送也同样可以使用双缓存,但并没有示例代码,由于为了测试性能,自己做了一个,测试中没有发现问题,虽然对性能的提升不如在USB接收上实现双缓存那么多。注意:FreeUserBuffer的作用是切换当前的USB缓存。1.接收双缓...转载 2018-04-22 16:04:41 · 1777 阅读 · 0 评论 -
STM32 USB 之从0开始移植笔记
-----------------------------------动机-----------------------------------写在前面的话:最近逛淘宝无意间发现RC522居然只要10元左右就可以包邮买到,真是太便宜了,就忍不住买了个回来玩玩。到货移植到我的板子上OK 后突然发现我的USB口紧张了,一个用来给板子供电一个插jlink 一个插入usb转串口给RC522下命...转载 2018-04-22 16:46:52 · 820 阅读 · 0 评论 -
入门级详细USB移植教程——致正在为USB烦恼的朋友
同上一篇MPU6050一样,我还是写一篇关于USB的帖子,在圈圈等玩USB的大神面前,我掌握的USB知识实在是九牛一毛,所以这篇帖子加上了入门级的修饰语。写这篇帖子主要是为了那些想快速开发USB的人,至于想深入了解USB协议,可以先学完我这个再去看看别的高级教程可能会好点,虽然我强调自己掌握的USB知识不多,但是对于一般的应用已经足够,我这里主要是学会怎么去用USB做自己的东西,而且我觉得刚学完一...转载 2018-04-22 16:48:10 · 1154 阅读 · 0 评论 -
STM32 USBHID应用
关于USB接口不多说了,你可以到网络上搜索很多的。我这里只是说说STM32的应用,具体USB的东西不多说。 我在设计STM32程序的时候,如果需要和上位机通信,一般来说串口,485啊,或者CAN,也可以USB,或者网络通信,下面具体说说USB通信,正点原子的开发板提供了一些关于USB接口的使用例程,如果你将那个例程看懂的话,自己移植一个关于HID或者虚拟串口,甚至自己写一个固件,设计...转载 2018-04-22 16:49:36 · 3193 阅读 · 1 评论 -
STM32 USB学习笔记
STM32 USB学习笔记一、USB-FS-Device firmware library使用固件库开发程序,需要包含几个文件 从图中可见,应用程序接口部分,有:usb_pwr, usb_conf, usb_desc, usb_istr, usb_prop, usb_endp六个文件,在设备驱动中有六个文件:usb_core, usb_init, usb_sil, usb_int, usb_reg...转载 2018-04-22 16:50:18 · 743 阅读 · 0 评论 -
STM32 USB数据发送完成的识别方法
1 if (GetEPTxStatus(ENDP1) == EP_TX_NAK) 则认为发送完成了2 可以在相应端点的回调函数中,作相应的标志 void EP1_IN_Callback(void) { sUSB.in = 0;转载 2018-04-23 18:42:14 · 3838 阅读 · 1 评论 -
STM32的USB多包数据传送(转贴)
因为我看到STM32的USB都没有对发送状态进行检测,当多于传送缓冲器的数据要传送时,估计就会出错了,所以找下这篇文章,但没有找到原始作者,但也在此谢过了!STM32的多包数据传送(转贴)SMT32F103,根据例程 Custom_HID 修改,利用 EP1 以 EP_INTERRUPT 的方式发送包,原来的例程每次发送 2 个字节,现在修改后包的长度不超过 64 字节时发送是正常的,但当一个...转载 2018-04-23 18:44:01 · 2315 阅读 · 0 评论 -
STM32-USB学习笔记(一) USB基础
USB基础知识扫盲前言本文将从USB的插入检测、身份识别、数据传输三个方面对USB通讯整个过程扫盲,其中有些知识点的详细信息会放在文章最下面的附录中供查看,从而保证文章的整体简洁。在进入主题之前,首先了解一下USB的一些基础知识USB的分类 按接口类型分 控制器/主机(controller/host) 设备(peripheral) OTG(on-the-go),...转载 2019-05-12 15:03:01 · 3618 阅读 · 1 评论