
stm32
文章平均质量分 57
iceiilin
这个作者很懒,什么都没留下…
展开
-
open-drain and pull-push
http://blog.myspace.cn/e/401987906.htm推挽与开漏 漏极直接输出,不接上拉电阻。如果对于场效应管印象不深,理解为普通三级管好理解:就是集电极开路。 参考资料:A:先来说说集电极开路输出的结构。集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路(左边的三极管为反相之用,使输入为“0”时,输出也为“0”)。对于图1,当左端的输入为“0”时,前面的三极管截止(即集电极C跟发射极E之间相当于断开),所以5V电源通过1K电阻加到右边的三极管上,右转载 2010-11-30 13:58:00 · 2027 阅读 · 0 评论 -
STM32 RTC小结
RTC可以用来设置实时时钟,并产生秒中断或闹钟中断。在芯片有电源供电的情况下,系统掉电后仍能保持时钟计时。RTC设置需要涉及对电源(PWR)、备份区域(BKP)和RCC部分寄存器的改写。RTC所需的晶振在RCC部分的寄存器中选择。在芯片时钟系统中对RTC的时钟提供如下图所示。RTC时钟可以从LSI, LSE和HSE分频中选择。这些需要对RCC寄存器的一些位进行设置。RTC的预分频器、计数器和闹钟寄存器在备份区域中,以保证系统掉电后,在电池供电时仍能计数,如下图所示。在电源部分,系统复位后,将禁止向备份区域写原创 2011-03-10 15:05:00 · 17207 阅读 · 1 评论 -
STM32 USART中断小程序
尽管网上的例程一堆堆,但还是花了好几天时间才跑通了一个USART通过中断方式实现的小程序。相当无比地郁闷啊。记录一下遇到的问题:1. 配置RCC的时机在主程序中通过查询方式收发数据时,结果并不稳定。对比了ST提供的例程中的设置,将RCC配置提到了所有配置的最前面后,功能实现。结论:应先配置RCC,再初始化其他外设。2. RAM下调试遇到的问题在上述查询方式的基础上,增加对NVIC的配置,USART的中断设置,以及ISR中的处理过程,放到RAM下调试,无法进入ISR。有以下两个测试结果:1)在主程序while原创 2011-01-19 17:02:00 · 5596 阅读 · 0 评论 -
RVMDK建立STM32工程
网上搜到很多这样的帖子,但只说到建立起一个工程,没说到怎么做出一个可以软件仿真调试的小程序;或者给了段程序代码,没说到怎么配置其他的库。我自己在RVMDK里编译的时候总是报各种各样的链接错误,摸不着头脑。摸索了一阵搞定了,步骤记录如下。1. 在工程文件夹下添加"src", "lib", "obj", "list"子文件夹.2. [project]----[new uVision project]---选择STM32F107VC---[ok]----[yes]3. [Setup file extensions原创 2010-11-23 11:05:00 · 2097 阅读 · 0 评论 -
解决:keil报错invalid redeclaration of type name "s32"
keil 4.00。在ST官网上下的固件包,用STM32F10x_StdPeriph_Lib_V3.4.0/Project/STM32F10x_StdPeriph_Template里的工程,编译正确。以下尝试了两种新建工程的方法,均失败:1。 将固件包里的例程和相应的CMSIS、StdPeriph_Driver拷到工程下,修改target options里的C/C++ include paths项为“../;../Src/App;../Src/CMSIS;../Src/Lib”,编译报错“D:/Keil/A原创 2010-12-27 14:04:00 · 38277 阅读 · 18 评论 -
MDK中One ELF Section per Function选项功能探究
http://blog.chinaunix.net/u3/102275/showart_2020818.html本文主要探讨的是MDK开发工具中One ELF Section per Function选项对于代码优化的作用及其实现的机制。这里以EK-STM32F开发板的LCDDemo实验例程为例进行说明:1)在MDK的Project -> Options for Target -> Target选项卡下,在Code Generation 中选中Use MicroLIB,选择使用微库。如图1所示:图 1在Us转载 2010-12-22 13:55:00 · 17617 阅读 · 0 评论 -
STM32 RCC基本原理和配置流程
<br />总是在其他外设的说明里看到HCLK,PCLK类似的字眼,但没有一个清晰的逻辑概念。对系统时钟不了解的情况下,前两天试了下sysTick,情况并不理想,更不要说RTC和TIM了。于是开始看RCC。<br />逻辑框图<br />芯片运行所需的时钟源分为四种,HSE (High Speed External),HSI,LSE,LSI (Low Speed Internal)。系统时钟频率可以通过软件进行控制,设置分频倍频值和该计算的时钟源;对于芯片各外设和总线来说,都有自己运行所需要的时钟,要根据用原创 2010-12-21 17:03:00 · 18586 阅读 · 3 评论 -
STM32控制三轴加速度传感器实现分析(3) end
中断设定某方向的加速度阈值,当传感器测量值超过该阈值时,传感器输出中断信号。信号通过IO扩展芯片的中断管脚与MCU的GPIO相连,进而能在传感器超过阈值时,系统进入ISR。程序初始化时需要进行的与中断有关的设定如下,设定都是通过对寄存器的改写实现的:MEMS:设定输出给IO扩展芯片管脚的中断的高/低电平有效设定中断为非锁存模式。(锁存模式即中断信号需要在读取某个寄存器后才能清除)设定中断的方向和阈值。IO扩展芯片:设定输出给MCU IO口的中断的高/低电平有效,及level/pulse方式使能全局中断功能使原创 2010-12-16 16:32:00 · 4893 阅读 · 0 评论 -
EXTI和NVIC初探
NVICNested vectored interrupt controller。嵌套向量中断控制器。它是STM32 core peripherals的其中之一,其余为system timer, system control block和memory protect unit。从NVIC的vector table中看出,NVIC type按照优先级从高到低的顺序,可以分为Reset, NonMaskable Interrupt(NMI), Hard Fault, Memory management faul原创 2010-12-16 15:41:00 · 11315 阅读 · 1 评论 -
I2C时序学习笔记
<br />仔细看了下reference manual,需要区分两个名词:<br />输入时钟频率 peripheral input clock frequency。分为at least 2MHz in Standard mode & 4MHz in Fast mode。需要在I2C_CR2寄存器中写入。<br />通讯速度 communication speed。分为standard speed (up to 100kHz) & fast speed (up to 400kHz)。需要使用CR2中写入的频原创 2010-12-15 21:16:00 · 8419 阅读 · 0 评论 -
STM32控制三轴加速度传感器实现分析(2)
MEMS控制原理在程序动作前,需要初始化系统中断向量表(使用NVIC_SetVectorTable函数),配置系统时钟、使能各外设时钟(SystemInit,RCC_APB2PeriphClockCmd,RCC_APB1PeriphClockCmd)。1。GPIOPB6,PB7分别作为SCL和SDA。查找STM32芯片手册的AFIO部分,将PB6,PB7作为SCL和SDA使用不需要进行重映射,因此只需初始化其模式、速度。2。I2C(1)外设时钟频率外设时钟频率fPCLK1需写入CR2寄存器的最低六位,写入值原创 2010-12-07 20:13:00 · 6029 阅读 · 0 评论 -
STM32控制三轴加速度传感器实现分析(1)
买的stm32F107VC开发板,带三轴加速度传感器LIS302DL,附带的示例代码。学习了几天,总结如下。1。逻辑结构初始化各外设(RCC,GPIO,SPI,NVIC,I2C,LCD)——检测MEMS并显示检测状态——在死循环中不断查询加速度值并描画。2。硬件原理与该程序相关的硬件连接图:MEMS连接图MEMS引出脚与MCU(左)、IO扩展(右下)连接图LCD连接图LCD引出脚与MCU(左)、IO扩展(右上)连接图从图中可以看出,MEMS使用I2C接口SCL和SDA连接MCU;LCD使用SPI3接口连接M原创 2010-12-07 16:31:00 · 9093 阅读 · 1 评论 -
STM32 RVMDK JLINK下flash和RAM调试方法
stm32f107vc开发板,uvision V4.00u,JLINK V8,J-Link ARM V4.08l。flash 下调试方法:1.打开要调试的工程,左栏工程上右击options for target。进入debug中选择jlink.2. utility中选择jlink.3. 用JLINK连接PC和开发板,打开开发板电源。进入旁边的settings,添加flash烧写方法。4。一路OK回去,rebuild,ctrl+F5进入调试,可以单步和断电。根据ST公司的reference manual 2.原创 2010-12-01 22:30:00 · 14467 阅读 · 2 评论 -
stm32 hard fault及堆栈探究
hard fault在调试RTC过程中,程序在主循环中执行两次后就进入hard fault的while(1)中断,keil显示调试窗口显示imprecise data bus error。完善RTC配置的时序也无济于事。网上查到一些hard fault的资料:2.3.2对hard fault, bus fault等有具体的解释。keil的网站上http://www.keil.com/app原创 2011-03-11 15:19:00 · 20776 阅读 · 6 评论