2012年7月15日

stm32f1的存储器与复位

摘要: 一、存储器映射 1、统一编址,程序存储器、数据存储器、外设寄存器组织在一个4GB的地址空间。2、小端格式 3、映像(stm32f107,256KB产品) 可以看到,所谓的256KB闪存,是指主存储,片上FLASH如下图所示: 介绍了片上的资源后,来看他们的地址映像。芯片将4GB的空间,划分为8个512MB的块(block),这些块有些是整块不用的,芯片对地址的安排可以参考数据手册,memory mapping章节中的那个图。只有block1、2、3、7是使用的。 地址中block7是核内的外设对应的地址,block2是其他外设对应的地址。block1的低地址64KB是片上SRAM,block0 阅读全文

posted @ 2012-07-15 16:08 lxjsailor 阅读(430) 评论(0) 推荐(0) 编辑

2012年7月14日

STM32f1的中断系统

摘要: stm32是一款基于cortex m3的单片机,其对中断的控制在核内部,因此stm32对中断处理与cortex m3区别不大一、几个概念 异常与中断:《权威指南》译者给出的定义为:“所有能打断正常执行流的事件都称为异常”、“异常与中断的区别在于,那240个中断对CM3核来说是‘突发事件’,也就是说该请求信号来自CM3核的外面,对CM3核来说是‘异步’的;而异常则是因CM3核的活动产生的,在执行指令或访问存储器时产生的,对CM3核是‘同步’的”。我认为他第一句和第二句矛盾。对这个问题有两个理解:第一种就是第一句的理解。第二种理解为:编号(权威手册表述)0~15的为异常,16~255的‘外部中断’ 阅读全文

posted @ 2012-07-14 22:55 lxjsailor 阅读(331) 评论(0) 推荐(0) 编辑

2012年7月9日

stm32f1的IO,推挽与开漏

摘要: stm32的引脚有两种用途:GPIO(generalpurposeio)和AFIO(alternatefunctionio)对于一些引脚(视芯片而定),这两种用途都没有,如在64脚产品中,OSC_IN/OSC_OUT与作为GPIO端口的PD0/PD1共用一样的引脚,而在100、144引脚产品中,这四个功能各有引脚与之对应,不互相冲突,所以OSC_IN/OSC_OUT既不作GPIO也不作AFIO,当然,这样的引脚不是讨论重点。1、引脚的配置不论是作GPIO还是做AFIO,都要对引脚进行配置。在固件库函数中,用GPIO_Init()函数对引脚进行配置,并不是说这个函数带了“GPIO”字样就是要当做 阅读全文

posted @ 2012-07-09 12:39 lxjsailor 阅读(902) 评论(1) 推荐(0) 编辑

2012年7月6日

stm32f1时钟分析

摘要: STM32片上时钟分析一、前言1、本文主要讨论系统时钟以至外设时钟之间的源流关系。介绍stm32的片上时钟系统,描述系统时钟初始化函数SystemInit()对时钟的控制(从HSE到SYSCLK,第二节)与配置(SYSCLK到外设,第三节)。2、103与107所用时钟系统略有不同,但系统时钟(SYSCLK)都是72MHz。3、f107应当使用25MHz晶振。若采用8MHz的晶振,搭配3.0.0版固件库,则将f107当做f103使用,不能驱动通信线产品所有功能(以太网)。4、以太网的时钟可以参考f107数据手册,附录A2.5、RTC时钟源来自32.768kHZ晶振。二、系统时钟SYSCLK本节关 阅读全文

posted @ 2012-07-06 11:30 lxjsailor 阅读(1099) 评论(0) 推荐(0) 编辑

2012年4月9日

const与volatile

摘要: 一个例子说明constconst and volatileconst与指针一起使用的情况分析及总结: const int nValue; //nValue是const int const nValue; // nValue是const const char *pContent; //*pContent是const, pContent可变 const (char *) pContent;//pContent是const,*pContent可变 char* const pContent; //pContent是const,*pContent可变 char const * pCont... 阅读全文

posted @ 2012-04-09 22:12 lxjsailor 阅读(319) 评论(0) 推荐(0) 编辑

导航