stm32
一米阳光john
这个作者很懒,什么都没留下…
展开
-
PLL(Phase Locked Loop)锁相环
锁相环的基本组成 锁相环路是一种反馈控制电路,简称锁相环(PLL,Phase-Locked Loop)。锁相环的特点是:利用外部输入的参考信号控制环路内部振荡信号的频率和相位。因锁相环可以实现输出信号频率对输入信号频率的自动跟踪,所以锁相环通常用于闭环跟踪电路。锁相环在工作的过程中,当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的相位差值,即输出电压与输入电压的相位被锁住转载 2013-03-21 19:24:48 · 1113 阅读 · 0 评论 -
STM32的USART重定向实现printf函数
几个步骤完成在SMT32的串口上使用printf函数1.#include 2.添加三个小函数void uart_put(u8 dat){ while(USART_GetFlagStatus(USART1,USART_FLAG_TC) == RESET); USART_SendData(USART1,dat);}int转载 2013-06-29 22:07:26 · 654 阅读 · 0 评论 -
STM32 printf重定向
STM32串口通信中使用printf发送数据配置方法(开发环境 Keil RVMDK)标签: STM32 串口通信 printf方法 2011-06-29 23:29 在STM32串口通信程序中使用printf发送数据,非常的方便。可在刚开始使用的时候总是遇到问题,常见的是硬件访真时无法进入main主函数,其实只要简单的配置一下就可以了。 下面就说一下使用printf需要做转载 2013-06-29 22:08:47 · 569 阅读 · 0 评论 -
浅谈 STM32 硬件I2C的使用 (中断方式 无DMA 无最高优先级)
引子STM32的硬件I2C很多人都对它望而却步。因为很多电工都说,STM32 硬件 I2C有BUG、不稳定、死机等等……最后都使用GPIO模拟I2C。的确,模拟I2C好用。但是在我看来在一个72M的Cortex-M3的MCU上这样做非常不妥。一般来说I2C是一种慢速总线,就算工作在400kHz的快速模式上,I2C传送每个字节仍需要至少23us——还没有计算地址、起始信号和结束信号的发送。如转载 2013-07-26 17:02:12 · 2212 阅读 · 1 评论 -
详解STM32的PWM输出及频率和脉宽(占空比)的计算——寄存器配置六步曲
一、stm32的pwm输出引脚是使用的IO口的复用功能。二、T2~T5这4个通用定时器均可输出4路PWM——CH1~CH4。三、我们以tim3的CH1路pwm输出为例来进行图文讲解(其它类似),并在最后给出tim3的ch1和ch2两路pwm输出的c代码(已在STM32F103RBT6上测试成功,大家放心使用!)。四、给出了PWM频率和占空比的计算公式。步骤如下:转载 2013-08-04 20:39:10 · 1138 阅读 · 0 评论 -
从Cortex - M3过度到Cortex - M4(4)----Cortex-M3、4比较
1.内存保护单元MPU 与Cortex - M3的相同,MPU是一个Cortex - M4中用于内存保护的可选组件。处理器支持标准ARMv7内存保护系统结构模型。您可以使用在MPU执行 特权/访问 规则,或者独立的进程。这个MPU提供全面支持: ·保护区 ·重叠保护区域,提升区域优先级(7 =最高优先级,0 =最低优先级) ·访问权限 ·将存储器属性输出至系统2 .DS转载 2013-09-13 12:20:57 · 560 阅读 · 0 评论 -
STM32 USB Mass Storage 例程调试笔记
一、问题起因 近来有几个客户反映STM3210E的开发板的USB Mass Storage 例程有点问题,组长安排我来调试。Mass Storage例程在PC上实现两个U盘,一个是SD盘,一个是NAND Flash盘,把程序下载到开发板后,PC上能够检测到NAND Flash盘和SD盘,却提示磁盘要格式化,按照提示操作,格式化不成功,可用磁盘空间和已用磁盘空间都为0。调试前转载 2013-10-06 20:17:07 · 639 阅读 · 0 评论 -
stm32f103 usb虚拟成pc端的串口
stm32f103的usb的dp引脚上拉为高电平(由低变高)的时候,通过安装相应驱动可以把其usb口虚拟成串口。我们这里需要虚拟两个串口:一个串口是交互数据的,一个串口数字语音的。mdk官方例程中对usb的初始化相关代码已经给出了。我们要做的就是根据项目需求对通过usb接收到的数据存到缓存中并对其进行处理,还有写好发送数据的函数向pc端发送数据。下面就大概的代码做一下说明:#defin转载 2013-10-09 09:08:22 · 1562 阅读 · 0 评论 -
STM32F407学习之GPIO
一、简单介绍最近,通过百度之星拿到了一块STM32F4-DISCOVERY的开发板,这块板子基于STM32F407VGT6芯片,包括一个板载的有嵌入式调试工具接口的ST-LINK/V2,ST MEMS数字加速器,ST MEMS 数字麦克风,音频DAC集成了class D扬声器驱动器,LED灯,按钮和一个USB OTG的micro-AB连接器。这块板子的功能也比较强大,很适合学习,下面是官方转载 2013-11-15 10:59:03 · 1349 阅读 · 0 评论 -
stm32f407之了解编程环境
作者:w471176877转自:http://blog.csdn.net/w471176877/article/details/7957168三、了解编程环境 前文再续,书接上一回,前面我们建立了一个文件夹,用来存放我们的工程,有建了三个文件夹,现在,分别解析一下这三个文件夹里放的是什么东西。inc文件夹里放的是头文件,一共六个,以后我们自己的头文转载 2013-11-04 14:07:55 · 579 阅读 · 0 评论 -
STM32F407学习之初始STM32F407
STM32F407是基于高性能ARMCortex™-M4的32位RISC(精简指令集)内核,工作频率高达168 MHz。Cortex-M4核心功是能支持所有ARM单精度的单精度浮点单元(FPU)数据处理指令和数据类型、它还能实现DSP全套指令和内存保护单元(MPU),从而提高应用程序的安全性。 STM32F407采用高速嵌入式存储(多达1 MB闪存,高达192 KB的SRAM)转载 2013-11-04 14:18:54 · 1035 阅读 · 0 评论 -
stm32f407之认识硬件
一、认识硬件STM32F4-DiscoverySTM32F4-Discovery基于STM32F407VGT6,板上包括了一个ST-LINK/V2 调试工具和2 个ST MEMS、USB OTG接口等。以及大量的软件例程。官方F4网站:http://www.st.com/stm32f4-discovery1. STM32F407VGT6微控制器:32位 ARMC转载 2013-11-04 14:24:33 · 791 阅读 · 0 评论 -
stm32f4中用SD卡存储DCMI的图像
因为自己本科做的创新性实验和飞思卡尔小车都是摄像头的,研究生也做的视频处理方向。后来,想做一个小视频监制,闲麻烦,没有用那TI的DM6446,就用的手头stm32f4开发板,由于没有LCD显示屏,我只能直接把DCMI图像保存在内部RAM中,再保存到SD里,在上位机读取SD卡转换成图片,我就用VC+OPENCV。现在说说做的流程吧。摄像头是买的OV9665 。直接接的是DCMI接口。而SD卡不能转载 2013-11-05 10:24:38 · 964 阅读 · 0 评论 -
SCCB 总线和I2C总线区别(转载 )
SCCB是简化的I2C协议,SIO-l是串行时钟输入线,SIO-O是串行双向数据线,分别相当于I2C协议的SCL和SDA。SCCB的总线时序与I2C基本相同,它的响应信号ACK被称为一个传输单元的第9位,分为Don’t care和NA。Don’t care位由从机产生;NA位由主机产生,由于SCCB不支持多字节的读写,NA位必须为高电平。另外,SCCB没有重复起始的概念,因此在SCCB的读周期中,转载 2013-11-05 15:06:15 · 636 阅读 · 0 评论 -
STM32串口操作相关事项
作者:number007cool转自:http://blog.chinaunix.net/uid-21658993-id-3025218.html放了一段时间,对stm32似乎有点陌生,总结一下!(基于3.0固件库,芯片stm32f103rbt6)1、配置串口的管脚和时钟由于串口1、2是在GPIOA上:所以要是能串口GPIOA、AFIO和1或者2的串口时转载 2013-06-24 10:19:33 · 524 阅读 · 0 评论 -
stm32串口程序
困扰了我N就的串口问题终于在昨天下午解决了,那叫一个开心啊,哈哈。开心之余又有点沮丧,应为东拼西凑下来的程序,虽然跑通了,但是还有一些地方看不明白,算了,还是先记录下来,慢慢研究。 闲话少说,直接上代码吧,希望能帮到看到它的朋友,也希望您看了以后,能指点一二。 一、时钟定义: void RCC_Configuration(void){ ErrorSta转载 2013-06-23 22:39:52 · 486 阅读 · 0 评论 -
有关推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入、浮空输入、模拟输入区别
最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多:(1)GPIO_Mode_AIN 模拟输入(2)GPIO_Mode_IN_FLOATING 浮空输入(3)GPIO_Mode_IPD 下拉输入(4)GPIO_Mode_IPU 上拉输入(5)GPIO_Mode_Out_OD 开漏输出(6)GPIO_Mode_Out_PP 推挽输出(转载 2013-03-21 19:51:18 · 474 阅读 · 0 评论 -
STM32的NVIC理解 .
STM32有43个channel的settable的中断源;AIRC(Application Interrupt and Reset Register)寄存器中有用于指定优先级的4 bits。这4个bits用于分配preemption优先级和sub优先级,在STM32的固件库中定义如下#define NVIC_PriorityGroup_0 ((uint32_t)0x700转载 2013-03-21 19:54:15 · 592 阅读 · 0 评论 -
解析STM32启动过程 .
相对于ARM上一代的主流ARM7/ARM9内核架构,新一代Cortex内核架构的启动方式有了比较大的变化。ARM7/ARM9内核的控制器在复位后,CPU会从存储空间的绝对地址0x000000取出第一条指令执行复位中断服务程序的方式启动,即固定了复位后的起始地址为0x000000(PC = 0x000000)同时中断向量表的位置并不是固定的。而Cortex-M3内核则正好相反,有3种情况:1转载 2013-03-21 20:26:20 · 809 阅读 · 0 评论 -
stm32标准外设库使用详解 .
stm32标准外设库是stm32全系列芯片的外设驱动,有了它可以大大加速我们开发stm32。 首先从st公司的网站下载最新的stm32标准外设库,写本文时最新的版本是V3.5.0。 解压该zip文件,得到如下文件夹和文件STM32F10x_StdPeriph_Lib_V3.5.0\ _htmresc Libraries Project U转载 2013-03-21 20:46:31 · 584 阅读 · 0 评论 -
ucosii在stm32上的移植详解
虽然目前网上已经有不少关于ucosii在stm32上的移植版本,包括micrium也有官方移植版本。但这些版本具体是怎么移植出来的,又该怎么基于移植好的ucosii开发应用软件,网上介绍的并不多。这里介绍一下我的移植经历,希望对大家有所帮助。 我的移植基本上是从零开始的。首先想要做好移植,有两方面的内容是必须要了解。1.目标芯片;2.ucosii内核原理。 虽然我们移植的目标芯转载 2013-03-21 20:49:44 · 1298 阅读 · 1 评论 -
STM32 Systick 编程及应用 .
提到systick 不得不抱怨以下STM32 的用户手册,既然提供了systick 的功能,为啥手册里却只提了一下?后来笔者上网搜的时候,才发现,抱怨的不仅仅是我一个人。闲话不说,下面将笔者搜集的资料进行总结。 一、 systick介绍 Systick 就是一个定时器而已,只是它放在了NVIC 中,主要的目的是为了给操作系统提供一个硬件上的中断(号称滴答中断)。没有学过操作系统的转载 2013-03-21 19:52:56 · 917 阅读 · 0 评论 -
什么是ROM、RAM、DRAM、SRAM和FLASH的区别 .
文章转自网络: ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。 RAM有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存转载 2013-03-21 19:56:57 · 516 阅读 · 0 评论 -
stm32系统时钟配置函数
/**************************************************************************** * * 名称: RCC_Configuration * * 描述: 设置系统时钟 * * 返回: 无 * **********************************************************转载 2013-03-21 20:25:05 · 488 阅读 · 0 评论 -
STM32 BIT_BAND 位带别名区使用入门
支持了位带操作(bit_band),有两个区中实现了位带。其中一个是SRAM 区的最低1MB 范围,第二个则是片内外设 // 区的最低1MB 范围。这两个区中的地址除了可以像普通的RAM 一样使用外,它们还都有自 // 己的“位带别名区”,位带别名区把每个比特膨胀成一个32 位的字 // // 每个比特膨胀成一个32 位的字,就是把 1M 扩展为 32M ,转载 2013-03-22 10:37:08 · 516 阅读 · 0 评论 -
STM32的DMA演示,USART
/******************************************************************************* 本文件实现串口发送功能(通过重构putchar函数,调用printf;或者USART_SendData() * 这里是一个用串口实现大量数据传输的例子,使用了DMA模块进行内存到USART的传输 * 每当USART的发送缓转载 2013-03-22 11:12:49 · 522 阅读 · 0 评论 -
STM32 DMA学习 .
DMA部分我用到的相对简单,当然,可能这是新东西,我暂时还用不到它的复杂功能吧。下面用问答的形式表达我的思路。DMA有什么用? 直接存储器存取用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU的干预,通过DMA数据可以快速地移动。这就节省了CPU的资源来做其他操作。有多少个DMA资源? 有两个DMA控制器,DMA1有7个通道,DMA2转载 2013-03-21 19:55:56 · 3705 阅读 · 0 评论 -
STM32之USART
最近这几天一直在忙在STM32的USART实验,虽然网上有很多的实例,自己也曾完全按照书的例程一个字不少的输入电脑中,但在实际编程中总是出现太多的错误。最终利用仿真发现最终的错误,仅仅是多了一个函数,为了这一个函数,我调试了整整两天。呵呵,最终还是做出来啦以下是试验程序:/* Includes ------------------------------------------------转载 2013-03-27 21:04:19 · 631 阅读 · 0 评论 -
学习STM32(2)-IO-AFIO(复用功能IO和调试配置)
最近在学习STM32,在BZ上一篇关于的串口通信文章里有这么一段代码:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO,ENABLE);当初是参考开发的里子写的一直对GPIOD或上“RCC_APB2Periph_AFIO”这句话的意思没搞懂,通过这几天在网上查找资料和看手册,终于高清楚了,不敢独享,希望能转载 2013-06-20 10:18:35 · 641 阅读 · 0 评论 -
ARM的AREA指令的使用
AREA指令指示汇编程序汇编新的代码节或数据节。节是不可分的已命名独立代码或数据块,它们由链接器处理。有关详细信息,请参阅ELF节和AREA指令。语法 AREA sectionname{,ATtr}{,ATtr}...其中: sectionname是将要指定的节名。可以为节选择任何名称。但是,以数字开始的名称必须包含在竖杠内,否则会产生一个缺转载 2014-07-25 19:49:26 · 1056 阅读 · 0 评论