随笔分类 -  stm32

stm32的flash编程
摘要:有时需要存储一些数据,在复位后仍然不会丢失,这可能就会用到片上flash,stm32的片上flash结构见stm32的存储器与复位。对flash的编程逻辑上是比较简单的,《flash编程手册》上写的很清楚,3.5固件库给出的例程为:FLASH_UnlockBank1();FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);FLASHStatus=FLASH_ErasePage(0x0803F800);//擦除整页FLASHStatus=FLASH_ProgramHalfWord(0x0803F800, 阅读全文

posted @ 2012-09-24 17:16 lxjsailor 阅读(984) 评论(0) 推荐(0)

stm32模拟iic——引脚配置、代码
摘要:我的工程里要用到iic总线扩展rom,stm32是有硬件iic的,但是,网上有很多人说这个硬件iic有漏洞,甚至于有bug。http://bbs.21ic.com/icview-184741-1-1.htmlhttp://blog.gkong.com/more.asp?name=zjcsharp&id=112878。《例说stm32》的表述是:“非常复杂,不太好用”。那么我判断这个硬件iic可能确实有不足,因此选择直接用软件模拟出iic。在做的过程中,遇到几个问题,记录下来。1、引脚的模式与配置iic的两个引脚SDA与SCL都要求既能输出又能输入。这对stm32来说问题不大,由参考手册 阅读全文

posted @ 2012-08-26 09:45 lxjsailor 阅读(16350) 评论(0) 推荐(2)

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 阅读(472) 评论(0) 推荐(0)

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

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

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 阅读(960) 评论(1) 推荐(0)

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 阅读(1169) 评论(0) 推荐(0)

导航