摘要: SRAM调试不用重复擦鞋flash,但是使用过程中也发现一些问题。例如时钟的设置只在第一次进入debug时是正确的,之后Reset再运行就不对了,看图:另外,关于SRAM的一个设置的解释:所以SRAM调试的时候,这两个勾不能够勾上。不明白的是,SRAM调试时,第一次DEBUG时,那个正确的时钟究竟是在什么时候设置的,我在system_stm32f10x.c设置时钟那里设置中断,但是好像没进去,没有触发中断。看来得再找找资料。 阅读全文
posted @ 2012-09-14 16:14 果壳中的宇宙 阅读(498) 评论(0) 推荐(0) 编辑
摘要: 几个问题:1、状态寄存器(USART_SR)中的TC(Transmission complete)何时置位?它和TXE(Transmit data register empty,发送数据寄存器空)有何区别?可以先看看下面的图:根据上面的图,TC置位的条件就是在上一个字节发完之后,数据寄存器仍为空(TXE=1)。USART_DR中的数据,只要移位寄存器把上一字节发完,马上就可以移入移位寄存器,而USART_DR可以装入新的数据。2、波特率(Baud)的设置从手册知道,stm32的串口可以设置分数波特率,可以从APB时钟得到精确的波特率。查看标准库(v3.5)的设置波特率的部分函数,这种设置的方法 阅读全文
posted @ 2012-09-14 08:51 果壳中的宇宙 阅读(3861) 评论(0) 推荐(0) 编辑
摘要: 1、DMA的中断标志需要软件手动清除,即使你启用了中断,也不会硬件清除的,可以:DMA_ClearITPendingBit(DMA_IT_HT);//清楚传输过半中断标志DMA_ClearITPendingBit(DMA_IT_TC);2、觉得的这个传输过半中断很好用,可实现类似双缓存功能,即把内存区设置为要传输的字节数(例如串口传输)的两倍,DMA填满一半了,启用(串口)传输,DMA完成了,再传DMA内存区的后一半。 阅读全文
posted @ 2012-09-13 16:58 果壳中的宇宙 阅读(915) 评论(2) 推荐(1) 编辑
摘要: 由于要采集电压、电流以计算功率、阻抗等信息,STM32的同步规则模式很适合于这种情景。使用时有几点需要注意的:1、选择正确的模式:ADC_Mode_RegSimult,即DUALMOD[3:0] = 0110,ADC2在双模式中,这些位为保留位2、开启ADC的DMA,在双ADC模式里,为了在主数据寄存器上读取从转换数据,必须使能DMA位,即使不使用DMA传输规则通道数据。只有ADC1和ADC3能产生DMA请求。所以只需设置ADC1的DMA:ADC_DMACmd(ADC1, ENABLE);3、ADC2的转换数据存在ADC1_DR的高半字;4、不要在2个ADC上转换相同的通道((两个ADC在同. 阅读全文
posted @ 2012-09-13 16:12 果壳中的宇宙 阅读(6820) 评论(1) 推荐(0) 编辑
摘要: ;******************** (C) COPYRIGHT 2010 STMicroelectronics ********************;* File Name : startup_stm32f10x_hd.s;* Author : MCD Application Team;* Version : V3.4.0;* Date : 10/15/2010;* Description : STM32F10x High Density Devices vector tabl... 阅读全文
posted @ 2012-09-12 21:07 果壳中的宇宙 阅读(1778) 评论(1) 推荐(0) 编辑
摘要: 要使用STM32,需要各种文档,其中有(以STM32F103RBT6为例):st官方资源地址:http://www.st.com/internet/mcu/product/164487.jsp1、datasheet:http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00161566.pdf2、REFERENCE MANUALS:http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/REFE 阅读全文
posted @ 2012-09-12 20:53 果壳中的宇宙 阅读(17325) 评论(7) 推荐(3) 编辑
摘要: ctrl+/:选中多行之后,按此组合键可以添加“//”这种风格的注释,如果你想使用的快捷键的注释是/**/的话,那么你的快捷键是ctrl+shift+/ctrl+shift+F:自动对齐其他的Ctrl+shift+L需要的时候再看看好了 阅读全文
posted @ 2012-09-12 11:55 果壳中的宇宙 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 据说Flash的擦写次数是有限的,所以在调试的时候擦来擦去不好,看到boot0、boot1可以配置从SRam启动,就查了相关资料,试了一下,ok了。记录一下,免得以后又忘了。跟flash调试部分相同的就不再描述了,重点在于SRam调试的设置部分,大部分以图片形式。Dbg_RAM.ini(D:\Keil\ARM\Boards\Keil\MCBSTM32\Blinky下面有一个,其实MCBSTM32目录下的都一样的,只要有)的内容:/*---------------------------------------------------------------------------- * Na. 阅读全文
posted @ 2012-09-11 21:41 果壳中的宇宙 阅读(6030) 评论(1) 推荐(0) 编辑
摘要: 试着申请首页,看看这类内容在blogcn的关注程度,呵呵system_stm32f10x.cSystemInit():在"startup_stm32f10x_xx.s"文件中被调用,功能是设置系统时钟(包括时钟源,PLL系数,AHB/APBx的预分频系数还有flash的设定),这个函数会在系统复位之后首先被执行。默认的一些设置:允许HSE(外部时钟),FLASH(允许预取缓冲区,设置2个等待周期),PLL系数为9,开启PLL并选择PLL输出作为时钟源(SYSCLK),后续设置SYSCLK = HCLK = APB2 = 72MHz,APB1 = HCLK/2 = 36MHz 阅读全文
posted @ 2012-09-08 21:14 果壳中的宇宙 阅读(2724) 评论(1) 推荐(0) 编辑
摘要: 在项目中使用stm32标准外设库(STM32F10x Standard Peripherals Library)的时候,我们会在项目的选项中预定义两个宏定义:USE_STDPERIPH_DRIVER, STM32F10X_MD,如下图:这两个的作用是什么呢?1、 USE_STDPERIPH_DRIVER : to use or not the peripheral’s drivers in application code (i.e. code will be based on direct access to peripheral’s registers rather than drive. 阅读全文
posted @ 2012-09-06 12:04 果壳中的宇宙 阅读(13977) 评论(1) 推荐(0) 编辑