stm32
文章平均质量分 70
fuyunliushuizjf
这个作者很懒,什么都没留下…
展开
-
STM32 ADC笔记单次转换已测试通过
STM32 ADC笔记单次转换已测试通过 (2012-05-20 08:45:28)转载▼标签: 杂谈分类: STM32下面分别为库函数和直接操作寄存器的两个范便,我都已测试通过使用此程序前必要对GPIO设好为模拟输入方式=====================================库函转载 2015-12-27 18:35:05 · 1055 阅读 · 0 评论 -
STM32学习笔记
STM32学习笔记前言:开始学USART+DMA的时候看到帖子《STM32 UART DMA实现未知数据长度接收》,觉得方法妙极了。此下出自此帖子——(整体的思路是这样的,一开始设置好DMA接收,可以把缓冲区长度设置为帧最大长度,我们可以把RX连接到定时器的管脚输入端,并且一开始设置输入并且使能引脚下降沿中断,当帧的第一个字节发送时,因为起始位为低电平,空闲时UART为高电平,满足条件转载 2015-01-05 08:56:50 · 491 阅读 · 0 评论 -
C语言面试题汇编
1.局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" ;局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 2.如何引用一个已经定义过的全局变量?转载 2015-02-09 16:23:03 · 23103 阅读 · 0 评论 -
stm32启动文件中heap与stack的区别
标题起的有点狭义,不管了。(1)栈区(stack):由编译器自动分配和释放,存放函数的参数值、局部变量的值等,其操作方式类似 于数据结构中的栈。(2)堆区(heap):一般由程序员分配和释放,若程序员不释放,程序结束时可能由操作系统回收。分配 方式类似于数据结构中的链表。(3)全局区(静态区)(static):全局变量和静态变量的存储是放转载 2015-02-09 14:58:17 · 879 阅读 · 0 评论 -
弄懂SPI接口
SPI(Serial Peripheral Interface,串行外设接口)是Motorola公司提出的一种同步串行数据传输标准,在很多器件中被广泛应用。1. 接口SPI接口经常被称为4线串行总线,以主/从方式工作,数据传输过程由主机初始化。如图1所示,其使用的4条信号线分别为:1) SCLK:串行时钟,用来同步数据传输,由主机输出;2) MOSI:主机输出从机输转载 2015-02-09 15:00:32 · 552 阅读 · 0 评论 -
STM32-M3系统启动
STM32-M3系统启动 (2008-12-10 22:44:52)转载▼标签: 杂谈 (1)BOOT PIN的配置BOOT1=x BOOT0=0 用FLASH MEMORY 如果悬空是不是默认该模式呢?一般选这种方式BOOT1=0 BOOT0=1 用System MEMORY转载 2015-01-04 10:45:14 · 532 阅读 · 0 评论 -
STM32F103VC在RAM中调试方法
最近开始学习STM32,芯片STMF103VCT6 编译工具 keil 4.14(评估板)。起初是改写买板子送的例程,下载程序到FLASH,看看现象。虽说FLASH可以下载万次,但看到人家说这样容易损伤FLASH。datasheet中说到STM32有三种启动方式,可以在芯片上的SRAM中调试程序。但搞来搞去始终不能明白。 今天我终于搞成了,我以GPIO跑马灯的程序来测试的。首先把程序下载转载 2015-02-09 14:31:56 · 2223 阅读 · 0 评论 -
STM32-AFIO
只有使用了AFIO的事件控制寄存器、AFIO的重映射功能以及外部中断(EXTI)控制寄存器才需要开启AFIO的时钟,STM32参考手册从来没说过使用IO的复用功能就一定要开启AFIO时钟,这是个误区。转载 2015-02-09 14:40:45 · 651 阅读 · 0 评论 -
ARM STM32F103VCT6 总结
ARM开发总结的小知识 字节 8位半字 16位字 32位Code, RO-dataRW-data,ZI-dataCode为程序代码部分RO-data 表示 程序定义的常量 const temp;RW-data 表示 已初始化的全局变量ZI-data 表示 未初始化的全局变量Program Size: Code="18248" RO-data=转载 2015-02-09 14:33:03 · 2546 阅读 · 0 评论 -
STM32的时钟控制……
stm32外部晶振经倍频后提供系统时钟常用设置void RCC_Configuration(void){ RCC_DeInit(); //将外设 RCC寄存器重设为缺省值(即默认值) RCC_HSEConfig(RCC_HSE_ON);//打开外部晶振 if(RCC_WaitForHSEStartUp() == SUCCESS) //转载 2015-02-09 14:30:50 · 379 阅读 · 0 评论 -
STM32 GPIO速度,模式等理解【转】
一、 GPIO模式配置 1、输入/输出模式(参考stm32手册)2、GPIO输出模式下,几种速度的区别:(1). GPIO 引脚速度: GPIO_Speed_2MHz (10MHz, 50MHz) ; 又称输出驱动电路的响应速度:(芯片内部在I/O口的输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要选择合适的驱动电路,通过选转载 2015-02-09 14:29:19 · 588 阅读 · 0 评论 -
STM32___USART学习
#include "stm32f10x.h"#include "USART.h" void USART1_Configuration(void){ USART_InitTypeDef USART_InitStructure; USART_InitStructure.USART_BaudRate = 115200 ; //波特率转载 2015-02-09 14:28:21 · 636 阅读 · 0 评论 -
STM32___系统时钟
1. STM32的时钟系统 在STM32中,一共有5个时钟源,分别是HSI、HSE、LSI、LSE、PLL (1) HSI是高速内部时钟,RC振荡器,频率为8MHz;(2) HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围是4MHz – 16MHz;(3) LSI是低速内部时钟,RC振荡器,频率为40KHz;(4) LSE是低速外部时转载 2015-02-09 14:27:12 · 519 阅读 · 0 评论 -
SD卡之SPI
感觉起这个标题的名字怪怪的,不过也是背后意义的。记得以前学习51单片机是,是用IO口模拟的SPI时序,现在在STM32上有了SPI硬件。才算基本上弄明白了SPI时序。在学习SD卡时才接触的硬件SPI,所以给标题起了个怪怪的名字。 SD卡和硬件SPI的同时学习: 1、SPI接口 SPI是一种全双工、同步串行通信方式接口,这里用到了四个IO口:分别是时钟线SCK转载 2015-02-09 14:26:05 · 1572 阅读 · 0 评论 -
一条进程的栈区、堆区、数据区和代码区在内存中的映射
l 栈区:主要用来存放局部变量, 传递参数, 存放函数的返回地址。.esp 始终指向栈顶, 栈中的数据越多, esp的值越小。l 堆区:用于存放动态分配的对象, 当你使用 malloc和new 等进行分配时,所得到的空间就在堆中。动态分配得到的内存区域附带有分配信息, 所以你能够 free和delete它们。l 数据区:全局,静转载 2015-02-09 14:23:09 · 284 阅读 · 0 评论 -
core_cm3.c解析
CMSIS是Cortex微控制器软件接口标准(Cortex MicroController Software Interface Standard)的缩写,这个是ARM定制的一个用于Cortex-M系列的一个标准,主要是为了提供通用api接口来访问内核和一些片上外设,提高代码的可移植性。CMSIS有三个层:核内外设访问层Core Peripheral Access Layer(CPAL),中间转载 2015-01-04 12:09:59 · 5592 阅读 · 0 评论 -
浅析STM32 Bootloader设计
不需要拆机就能对产品进行固件升级是很多人想要的效果,不仅方便而且节省精力和成本。那么如何完成这项工作呢?接下来所介绍的Bootloader就可以完成这项工作,通过Bootloader引导程序完成固件的升级。下面来浅析STM32 Bootloader设计。本文引用地址:http://www.eepw.com.cn/article/174370.htm 设计思想 由Bootlo转载 2015-03-03 16:55:08 · 2668 阅读 · 0 评论 -
STM32 DMA笔记(转贴)
STM32 DMA笔记(转贴) (2012-05-20 09:25:38)转载▼标签: 杂谈分类: 单片机转:http://blog.chinaunix.net/uid-21658993-id-3030728.html 在做实验之前,首先必须明白什么是DMA,DMA的作用又体现在哪里转载 2015-12-27 18:34:34 · 457 阅读 · 0 评论 -
STM32开关总中断(转贴)
来自 http://www.ourdev.cn/forum.php?mod=viewthread&tid=5397451 作者:fire在 STM32/Cortex-M3 中是通过改变 CPU 的当前优先级来允许或禁止中断。 PRIMASK 位:只允许 NMI 和 hard fault 异常,其他中断/ 异常都被屏蔽(当前 CPU 优先级=0)。 FAULTMAS转载 2015-12-27 18:31:20 · 501 阅读 · 0 评论 -
STM32的AD用DMA方式时的请注意初始化顺序
STM32的AD用DMA方式时的请注意初始化顺序(转) (2012-06-01 00:45:25)转载▼标签: 杂谈 分类: 单片机今天无意之间看到了这篇帖子,是斑竹好久前发的~~~我突然意识到我的数据好像一直没有错位,看到这个我又试验了一下,发现把DMA_Cmd(DMA1_Channel1, ENABLE);放置到哪儿都是一样的啊~~~这个是原帖部分:STM32的AD用DMA方式时的请注意初始化转载 2015-12-27 18:26:19 · 1603 阅读 · 0 评论 -
STM32的中断分级管理
一个程序,要依实际情况选择指定的中断分组级别,即如下NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); 这个函数,在库手册上有说,先决条件为:优先级分组只能设置一次先定好分组后,还得依据分组的级别,设定抢占式的优先级别及响应式的优先级别,由以下两个指定 NVIC_InitStructure.NVIC_IRQChann转载 2015-12-27 18:15:27 · 1005 阅读 · 0 评论 -
转 STM32定时器时钟 定时器的时钟有倍频功能
内部的HSI/2经PLLx16,所以最大只能为64MHZ而外部的选8M经PLL后,可以最大到72MhzSysTick由AHB固定8分频后得到APB2可以工作在72MHz下,而APB1最大是36MHz。SYSCLK 系统时钟,最大72MHzHCLK :AHB总线时钟,由系统时钟SYSCLK 分频得到,一般不分频,等于系统时钟经过总线桥AHB--APB,通过设置分转载 2015-12-27 18:13:29 · 3997 阅读 · 1 评论 -
STM32 KEIL下的堆栈设置
STM32 KEIL下的堆栈设置 (2013-02-23 17:56:49)转载▼ 分类: 单片机刚接手STM32时,你只编写一个 int main(){while(1);}BUILD://Program Size: Code=340 RO-data=252 RW-data=0 ZI-data=1632转载 2015-12-27 18:05:06 · 2371 阅读 · 0 评论 -
PICC 内嵌汇编
因为我想用到滚动码HCS300/301的解码算法,但是C语言的效率肯定不如汇编,所以打算夹入汇编来实现PIC的KEELOQ的decrypt(); 打算用以下介绍的第三种方法来实现来自:http://blog.sina.com.cn/s/blog_4de52ced0100zqti.htmlPICC 内嵌汇编 (2012-05-05 17:53:22)转载 2015-12-27 17:45:55 · 1344 阅读 · 0 评论 -
STM32 EXTI中断设置五步曲 (备忘)
首依实际系统选择需要多少个中断优先级即 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); 然后按下列5步 1 AFIO及GPIO时钟设置 2 要中断的脚设为IN_PU或浮空输入 3 绑定exti中断引脚如 GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0); 4转载 2015-12-27 17:38:42 · 460 阅读 · 0 评论 -
关于STM32中RTC的校准方法
转载原贴地:http://www.amobbs.com/forum.php?mod=viewthread&tid=3803285最近看了一些关于RTC校准的帖子,发现很多人存在疑惑。正好最近我也在STM32中实现了RTC校准。发些心得。这些对老手来说有些罗索,但对新手有益处。实现RTC 校准的核心之一是库文件Stm321f0x_bkp.c中的void BKP_SetRT转载 2015-12-27 17:37:08 · 15057 阅读 · 1 评论 -
STM32 USB数据发送完成的识别方法
1 if (GetEPTxStatus(ENDP1) == EP_TX_NAK) 则认为发送完成了2 可以在相应端点的回调函数中,作相应的标志 void EP1_IN_Callback(void) { sUSB.in = 0;转载 2015-12-27 17:32:45 · 4595 阅读 · 0 评论 -
命中缺高人指点
楼主,您好!我就不像楼上的和你讲大道理了,和你说下实际的。Linux和stm32 一个是软件平台一个是硬件平台,完全不一样的(记住,是平台!)。这样说吧,既然你喜欢单片机,就先学stm32,把硬件基础打牢,尤其是各种总线(usb、iic、spi...)、各种外设模块(红外、温湿、mpu6050...),然后就把注意力集中到ucosii上,也就是说学会把你的任务放到操作系统这个架构里完成,而不是简单转载 2015-11-01 19:24:29 · 472 阅读 · 0 评论 -
startup_stm32f10x_ld_vl.s中的vl是什么意思
STM32 启动文件选择- startup_stm32f10x_ld_vl.s: for STM32 Low density Value line devices- startup_stm32f10x_ld.s: for STM32 Low density devices- startup_stm32f10x_md_vl.s: for STM32 Medium dens转载 2015-11-08 13:19:12 · 2760 阅读 · 0 评论 -
基于keil mdk 标准外设库的软件开发
1.1 基于标准外设库的软件开发1.1.1 STM32标准外设库概述STM32标准外设库之前的版本也称固件函数库或简称固件库,是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。该函数库还包括每一个外设的驱动描述和应用实例,为开发者访问底层硬件提供了一个中间API,通过使用固件函数库,无需深入掌握底层硬件细节,开发者就可以轻松应用每一个外设。因此,使用固态函转载 2015-04-22 10:00:05 · 2833 阅读 · 0 评论 -
STM32 中的 assert_param 函数
我们在学STM32的时候函数assert_param出现的几率非常大,上网搜索一下,网上一般解释断言机制,做为程序开发调试阶段时使用。下面我就谈一下我对这些应用的看法,学习东西抱着知其然也要知其所以然。4 断言机制函数assert_param我们在分析库函数的时候,几乎每一个函数的原型有这个函数assert_param();下面以assert_param(IS_GPIO_ALL_PERIP转载 2015-04-22 09:58:44 · 537 阅读 · 0 评论 -
STM32 实用图片
转载 2015-02-09 12:03:32 · 688 阅读 · 0 评论 -
STM32 启动文件选择
小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控制器。转载 2015-02-09 12:02:42 · 421 阅读 · 0 评论 -
在STM32上如果不使用外部晶振,OSC_IN和OSC_OUT的接法
如果使用内部RC振荡器而不使用外部晶振,请按照下面方法处理:1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。2)对于少于100脚的产品,有2种接法: 2.1)OSC_IN和OSC_OUT分别通过10K电阻接地。此方法可提高EMC性能。 2.2)分别重映射OSC_IN和OSC_OUT至PD0和PD1,再配置PD0和PD1为推挽输出并输出'0'。此方转载 2015-02-09 12:02:01 · 1922 阅读 · 0 评论 -
stm32笔记——NVIC详细说明
stm32笔记——NVIC详细说明 (2012-03-27 14:40:08)转载▼标签: 杂谈 STM32 (Cortex-M3) 中NVIC(嵌套向量中断控制)的理解一、STM32 (Cortex-M3) 中的优先级概念 STM32(Cortex-M3)中有两个优先级的概念:抢占式优先转载 2014-12-03 14:16:31 · 955 阅读 · 0 评论 -
STM32模拟 IIC
STM32模拟 IIC (2011-06-22 23:01:34)转载▼标签: 杂谈 #ifndef __AT24C02_H__#define __AT24C02_H__#include"stm32f10x.h"void iicinit(void);void转载 2014-12-16 18:00:54 · 483 阅读 · 0 评论 -
移植
移植的基本概念: 移植是指将软件从一个平台迁移到另一个平台 * 从一个硬件平台移植到另一个硬件平台 * 从一个操作系统移植到另一个操作系统 * 从一种软件库环境移植到另一个软件库环境 软件进行移植的容易程度即可移植性 Linux硬件平台: 在Linux内核里,每一个处理器指令集对应一个独立的体系结构architecture,比如alpha, arm,i38转载 2014-12-01 16:10:47 · 525 阅读 · 0 评论 -
基于51单片机实现模拟IIC总线时序
基于51单片机实现模拟IIC总线时序 最近用到测量光线的模块BH1750FVI时需要用到IIC总线操作, 于是就又费功夫学习了下, 基本上算是了解了, 所以呢, 就用51的IO口, 模拟出了总线时序, 并能正确操纵需要用IIC总线访问地一系列模块. 本来想写篇文章简单介绍下我对IIC总线的理解的, 但, 发现没工夫, 所以, 放在以后有时候再来弄吧. 今天我还是只给出一个范例转载 2014-12-16 17:56:09 · 1045 阅读 · 0 评论 -
static和extern
static和extern 一、 c程序存储空间布局C程序一直由下列部分组成: 1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令;2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里。3)非初始化数据段(bss段)——在程序中没有初始转载 2014-12-15 15:39:41 · 326 阅读 · 0 评论 -
内联函数:static inline 和 extern inline 的含义
内联函数:static inline 和 extern inline 的含义前置简短概述引入内联函数的目的是为了解决程序中函数调用的效率问题。 函数是一种更高级的抽象。它的引入使得编程者只关心函数的功能和使用方法,而不必关心函数功能的具体实现;函数的引入可以减少程序的目标代码,实现程序代码和数据的共享。但是,函数调用也会带来降低效率的问题,因为调用函数实际上将程序执行顺序转移到转载 2014-12-15 15:37:10 · 417 阅读 · 0 评论