01 2011 档案
摘要:支持了位带操作(bit_band),有两个区中实现了位带。其中一个是SRAM 区的最低1MB 范围,第二个则是片内外设 // 区的最低1MB 范围。这两个区中的地址除了可以像普通的RAM 一样使用外,它们还都有自 // 己的“位带别名区”,位带别名区把每个比特膨胀成一个32 位的字 // // 每个
阅读全文
摘要:本人做过技术开发工作多年,从焊电路板的小工程师逐渐做到现在x項目总工程师,作为工程师有亲身的感受,对工程师的性格、心理和知识结构有非常深入的了解,现在把自己的一点感悟与大家分享,希望大家批评指正,欢迎补充完善。 有强烈的好奇心。这是成为高手的必要条件,喜欢新生事物,对问题喜欢刨根问底,以钻研为乐趣。那种得过且过,敷衍了事,仅仅把工作当作饭碗的人连熟手都成不了,更何况高手。有好奇心的人,可以为...
阅读全文
摘要:红外发射,市场上有两种波段的,一种是850,一种是940,两种的工作用途是不一样的,850的通常是用作于摄像鉴控,具有夜视功能,发射的距离远等优点.通过电流时有很微弱的红光.价格在三毛钱以上,好点的在八毛左右.940的发射管是我们见过的最多最常见的那种,一般用于各类小家电的遥控器,发射距离均在15米以下,价格在八分至两毛之间.两者的正向电压都是1.5V以下,内部结构跟普通的二极管一样,就是个PN结...
阅读全文
摘要:*** WARNING L15: MULTIPLE CALL TO SEGMENT说说几个小问题吧,一般我们在用KEIL的时候,只要编译器报- 0 Error(s) 一般我们都不去管多少个 Warning(s).了,一般这样程序基本都能运行,但是其实仔细想想,这里还是有问题的,否则编译器没事吃饱了撑得,报什么警告啊~~~今天来说说*** WARNING L15: MULTIPLE CALL TO SEGMENT这个问题!其实这个问题应该是引起注意的,有可能引起程序冲突,但是一般时候程序运行不会有问题,但是如果出来问题,那将会是很讨厌的问题.分析一下 产生这一警告的一个根源是:例如在主循环里调用
阅读全文
摘要:c/c++语言中有很多地方要用到extern,但是如果没有真正的了解它的意义,会给编程带来很大的麻烦,为了使大家少走弯路,特祥细的说明一下。 对于比较小的程序,一般只有一个c文件和一个头文件,全局变量我们通常会直接定义在c文件中,在程序之前加int i定义。如果要在头文件中定义有以下两种方法:用extern来声明:extern int i;这一句只是对变量i进行声明,在c文件的程序之前必须加上int i进行定义。extern int i=0;这一句声明和定义都做了。 对于大一点的程序,有很多c文件和头文件,这个时候全局变量就必须在头文件中声明(不需要初始化),然后在一个c文件中定义(...
阅读全文
摘要:转自:http://www.cublog.cn/u3/105675/showart_2420421.html 转自AS1250 红外遥控器芯片说明 最近在研究的在S3C6410的上的IRM3638 红外接收器件。发现其中红外编码采用PT2222编码,进一步研究发现,红外编码是有好几种编码.特的将编码格式取出来放在这里. 一.TC9028、TC9012、TC9243 编码方式 TC902...
阅读全文
摘要:转自:http://blog.ednchina.com/czlyzhj/1808149/message.aspx DMA部分我用到的相对简单,当然,可能这是新东西,我暂时还用不到它的复杂功能吧。下面用问答的形式表达我的思路。 DMA有什么用? 直接存储器存取用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU的干预,通过DMA数据可以快速地移动。这就节省了...
阅读全文
摘要:C语言: STM32的DMA演示,USART /****************************************************************************** * 本文件实现串口发送功能(通过重构putchar函数,调用printf;或者USART_SendData() * 这里是一个用串口实现大量数据传输的例子,使用了DMA模块进行内存到USART...
阅读全文
摘要:浅谈STM32的DMA模块的使用转自:http://blog.ednchina.com/jack_chang/123085/message.aspxhttp://article.ednchina.com/Other/200806050734461.htmBy Jack Chang Thu Jun 5 2008 18:30:49 E-mail:zhang-weihong@126.com QQ:179748613前言:接触MCU的编程已经有几年的历史,刚开始是从PLC(C语言的)学习与应用,后来有学习了8bits的AVR单片机,对MCU有一定的了解;最近接触了STM32的Chip,发现其优点不只是
阅读全文
摘要:版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://tigerwang202.blogbus.com/logs/36242299.html 直接存储器存取(Direct Memory Access,DMA)是计算机科学中的一种内存访问技术。它允许某些电脑内部的硬体子系统(电脑外设),可以独立地直接读写系统存储器,而不需绕道 CPU。在同等程度的CPU负担下,DMA是一...
阅读全文
摘要:12位ADC是一种逐次逼近型模拟数字数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。 ADC的输入时钟不得超过14MHZ,它是由PCLK2经分频产生。 如果被ADC转换的模拟电压低于低阀值或高于高阀值,AWD模拟看门狗状态位被设置。 ADC通常要与DMA一起使用 这里只是简单的用库配置ADC 不断扫描来实现ADC的应用。 首先配置GPIO与ADC的时钟: ADC_InitT...
阅读全文
摘要:转自:http://www.stmfans.com/bbs/viewthread.php?tid=1116&extra=page%3D1 豆皮 - STM32开发板基础教程(七) - ADC with DMA(原创) 版权所有 STMFANS 原创,转载请保留出处 http://www.stmfans.com/bbs/viewthread.php?tid=1116&extra=page%3D...
阅读全文
摘要:********************************************************************************************************/ #include "stm32f10x_lib.h" /*************************************函数声明*************************...
阅读全文
摘要:转自:http://blog.csdn.net/cuishinankobe/archive/2010/11/10/6000369.aspx SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15)。在以前,大多操作系统需要一个硬件定时器来产生操作系统需要的滴答中断,作为整个系统的时基。例如,为多个任务许以不同数目的时间片,确保没有一个任务能霸占系统;或者把每个定时器周期...
阅读全文
摘要:原地址:http://www.360doc.com/content/10/0125/22/299474_14387759.shtml 对1. 什么是位段、位带别名区? 2. 它有什么好处? 答1: 是这样的,记得MCS51吗? MCS51就是有位操作,以一位(BIT)为数据对象的操作, MCS51可以简单的将P1口的第2位独立操作: P1.2=0;P1.2=1 ; 就是这样把P1口的...
阅读全文
摘要:/** ****************************************************************************** * @文件 stm32f10x_flash.c * @作者 MCD 应用程序组 * @版本 V3.1.0 * @日期 06/19/2009 * @简述 这个文件 提供所有 FLAS...
阅读全文
摘要:转自:http://blog.chinaunix.net/space.php?uid=22889411&do=blog&id=59667 曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明。 我们将从每天都能碰到的较简单的声明入手,然后逐步加入const修饰符和typedef,还...
阅读全文
摘要:当HSI被用于作为PLL时钟的输入时,系统时钟能得到的最大频率是64MHZ。 STM3210X_RCC.H头文件,主要是对RCC相关的寄存器进行了一个重新的定义命名以及对.c文件中的函数进行申明。 可以从参考手册的6.3 RCC寄存器描述了解到。更加详细的内容 /******************** (C) COPYRIGHT 2008 STMicroelectronics ...
阅读全文
摘要:转自:http://blog.ednchina.com/e_arm/310610/message.aspx 题目有点拗口,想利用串口调试Modbus啊,GPS啊什么的,可是手头没有硬件,怎么办?其实字节KEIL MDK和VSPD(这里两个软件网上都很容易就可以下载到破解版,如果找不到可以给我联系)就可以,这样调试串口就会很方便了。看了很多的文章,写的都很简单(其实也很简单:))。给出个详细一点的...
阅读全文
摘要:阅读nvic:系统中断管理。 我的理解——管理系统内部的中断,负责打开和关闭中断。 基础应用1,中断的初始化函数,包括设置中断向量表位置,和开启所需的中断两部分。所有程序中必须的。 用法: void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure;//中断管理恢复默认参数 #ifdef VECT_TAB_RAM /...
阅读全文
摘要: 1、CRC计算公式 所有的STM32芯片都内置了一个硬件的CRC计算模块,可应用到通信程序中,这个CRC计算模块使用常见的、在以太网中使用的计算多项式: X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 +X8 + X7 + X5 + X4 + X2 + X + 1 写成16进制就是:0x04C11DB7 2、使用这个内置CRC模块操作...
阅读全文
摘要:1、STM32对内部Flash的保护措施 所有STM32的芯片都提供对Flash的保护,防止对Flash的非法访问 - 写保护和读保护。 1)、读保护即大家通常说的“加密”,是作用于整个Flash存储区域。一旦设置了Flash的读保护,内置的Flash存储区只能通过程序的正常执行才能读出,而不能通过下述任何一种方式读出: 通过调试器(JTAG或SWD); 从RAM中启动并执行的程序;...
阅读全文
摘要:1、STM32的内部温度传感器 STM32内部温度传感器与ADC的通道16相连,与ADC配 合使用实现温度测量。测量范围–40~125℃,精度 ± 1.5℃ 操作流程: 1)、设置ADC相关参数 // ADC1 configuration ----------------------------- ADC_InitStructure.ADC_Mode = ADC_Mode_...
阅读全文
摘要:1、DMA普通模式和循环模式的区别 循环模式:用于处理一个环形的缓冲区,每轮传输结束时数据传输 的配置会自动地更新为初始状态,DMA传输会连续不断地进行。 普通模式:在DMA传输结束时,DMA通道被自动关闭,进一步的 DMA请求将不被满足。 2、DMA传输需要指定的条件: 传输源:DMA控制器从传输源读出数据; 传输目标:DMA控制器将数据传输的目标; 触发信号:用于...
阅读全文
摘要:1、NVIC的优先级概念 占先式优先级 (pre-emption priority): 高占先式优先级的中断事件会打断当前的主程序/中断程序运行— —抢断式优先响应,俗称中断嵌套。 副优先级(subpriority): 在占先式优先级相同的情况下,高副优先级的中断优先被响应; 在占先式优先级相同的情况下,如果有低副优先级中断正在执行, 高副优先级的中断要等待已被响应的...
阅读全文
摘要:1)、对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。 2)、对于少于100脚的产品,有2种接法: 2.1)、OSC_IN和OSC_OUT分别通过10K电阻接地。 此方法可提高EMC性能。 2.2)、分别重映射OSC_IN和OSC_OUT至PD0和PD1,再配置PD0和PD1为推挽输出并输出'0'。 此方...
阅读全文
摘要:STM32内部自带PVD功能,用于对MCU供电电压VDD进行监控。通过电源控制寄存器中的PLS[2:0]位可以用来设定监控电压的阀值,通过对外部电压进行比较来监控电源。当条件触发,需要系统进入特别保护状态,执行紧急关闭任务:对系统的一些数据保存起来,同时对外设进行相应的保护操作。 操作流程: 1)、系统启动后启动PVD,并开启相应的中断。 PWR_PVDLevelConfig(PW...
阅读全文
摘要:STM32的PA.8引脚具有复用功能——时钟输出(MCO), 该功能能将STM32内部的时钟通过PA.8输出. 操作流程: 1)、设置PA.8为复用Push-Pull模式。 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); 2)、选择输出时钟源。 时钟的选择由时钟配置寄存器(RCC_CFGR
阅读全文
摘要:STM32产品,主系统构成部分: 1、四个驱动单元 2、四个被动单元 AHB/APB桥:两个AHB/APB桥在AHB和2个APB总线间提供同步连接。APB1操作速度限于36MHZ,APB2操作于全速。 程序存储器、数据存储器,寄存器和输入输出端口被组织在同一个4GB的线性地址空间内。 数据字节以小端格式存放在存储器中。可访问的存储器空间被分成8个主要块,每个块为512MB。其...
阅读全文
摘要:当我对着远程的大屏,给北京的IBM中国研究院几位面试官汇报完30分钟技术报告之后,心里忐忑不安,这已经是终面了……一关关拼得不容易,但却很精彩! 在之后的几天,很高兴接到了来自IBM两位高级经理的电话,分别给我介绍了他们部门情况和项目情况,表示我的报告“印象深刻”,“能力很突出”……真的是非常感谢他们能给我这个机会! 诀窍 我不是聪明过人的天才,但是我相信自己的研究能力,这来源于一个诀窍——我悟出...
阅读全文
摘要:转自:http://blog.ednchina.com/czlyzhj/1821516/message.aspx 通过研究,大体明白了BKP的功能,简述如下: 1. BKP可以用来保存数据 BKP中包括了42个16位的寄存器,共可保存84字节的内容,它们由VBAT的供电来维挂。 2. BKP内保存的数据可以被毁灭(如果有人希望恶意得到这些数据的话,令其丢失比保护数据更重要...
阅读全文
摘要:转自:http://blog.csdn.net/robin7513/archive/2010/04/06/5455555.aspx 硬件检测的工作很快完成了。接下来是开始调试一些程序了,对于调试一个新的MCU来说,最简单的也是最重要的自然是能够控制GPIO了。 为了对MCU有个直观的了解,这里给出模块框图 1、GPIO模式的相关介绍: STM32的所有GPIO都可以设置成...
阅读全文
摘要:转自:http://blog.csdn.net/robin7513/archive/2010/04/06/5455643.aspx GPIO的后面很容易想到的应该就是通用同步/异步接受发送器(USART) 了。对于比较复杂点的程序而言,用led来调试显然是有点不太科学。所以,把USART口调试好后,有助于之后其它部分的调试。(把USART当成是调试输出口来用 ) 调试USART花了我一些...
阅读全文
摘要:转自:http://20lyj08.happy.blog.163.com/blog/static/59305123201092251235360/ STM32 的库实在强大 ~!函数长的像句子...... 好了开始了: 使用查询方式的USART: 设置时钟: RCC_APB2Periph_AFIO 功能复用IO时钟 RCC_APB2Periph_GPIOA GPIOA时钟 RCC_...
阅读全文
摘要:在基础实验成功的基础上,对串口的调试方法进行实践。硬件代码顺利完成之后,对日后调试需要用到的printf重定义进行调试,固定在自己的库函数中。 b) 初始化函数定义: void USART_Configuration(void); //定义串口初始化函数 c) 初始化函数调用: void UART_Configuration(void); //串口初始化函数调用 初始化代码: vo...
阅读全文
摘要:Systick实验中,Systick用来定时。来看看程序中什么地方出现过Systick相关的语句。 main.c: /* SysTick end of count event each 1ms with input clock equal to 9MHz (HCLK/8, default) */ SysTick_SetReload(9000); /* Enable SysTick in...
阅读全文
摘要:一、 在“Debug选项卡”下设置好仿真器的类型后,下载程序时却提示“No ULINK Device found.” 解决办法: Keil MDK默认使用ULINK仿真器下载程序,在“Utilities选项卡”下把编程所使用的仿真器改为相应的类型即可。 二、 编译工程时提示如下信息: main.axf: Error: L6218E: Undefined symbol __BASEPRICON...
阅读全文
摘要:下载地址:http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/stm32f10x_stdperiph_lib.zip STM32 固件库3.4下载地址
阅读全文
摘要:在3.10库中 随处可见 #ifdef STM32F10X_CL 接着是一些函数,意思是当定义了 STM32F10X_CL时下面的函数起作用。到底STM32F10X_CL是什么?什么时候定义它呢?原来STM32F10X_CL代表的是使用了 STM32互联系列微处理器也就是STM32F105和STM32F107系列处理器。
阅读全文
摘要:/******************************************************************************* 固件函数库通过检查库函书的输入来实现运行时间错误侦测。 通过使用宏assert_param来实现运行时间检测。 所有要求输入参数的函数都使用这个宏。它可以检查输入 参数是否在允许的范围之内。 注: 运行时间检查,即宏assert...
阅读全文
摘要:发光二极管无论什么颜色正负极都是固定的。 直插的发光二极管:脚长的是正极短的是负极,也可以仔细观察管子内部的电极,较小的是正极,大的类似于碗状的是负极。 贴片二极管:俯视,一边带彩色线的是负极,另一边是正极。 也可以用万用表的欧姆表量。对于表盘式万用表,调到“欧姆x1”档,二极管发光的的时候,红表笔连接的是SMD LED的正端,黑表笔连接的是SMD LED的负端。 由于LED开启门限1.5-...
阅读全文
摘要:我在STM32的学习中发现,大部分的STM32示例程序都是基于IAR开发环境的,但我认为使用Keil MDK开发环境更加方便,可以利用RVMDK强大的外设仿真功能加速STM32的开发。我在以前的Blog文章里介绍过如何在RVMDK中建立STM32 工程,以及如何使用RVMDK的软件仿真功能,下面我将详细说明怎样将已有的IAR工程移植到RVMDK。 不管是IAR还是RVMDK,编程时使...
阅读全文
摘要:STM32 入门教程 系统时钟 SysTick (一) 背景介绍 在传统的嵌入式系统软件按中通常实现 Delay(N) 函数的方法为: for(i = 0; i = x; i ++); x --- 对应于 对应于 N 毫秒的循环值 对于STM32系 列微处理器来说,执行一条指令只有几十个 ns,进行 for 循环时,要实现 N 毫秒的 x 值非常大,而且由于系统频率的...
阅读全文
摘要:Q:什么是SYSTick定时器? SysTick 是一个24 位的倒计数定时器,当计到0 时,将从RELOAD 寄存器中自动重装载定时初值。只要不把它在SysTick 控制及状态寄存器中的使能位清除,就永不停息。 Q:为什么要设置SysTick定时器? (1)产生操作系统的时钟节拍 SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15)。在以前,大多操作系统需要一个硬件...
阅读全文
摘要:奔跑也许就是有着追求,并不断追赶的人的常态。 1不管你是写在纸上或者其他什么地方,反正记下来就是了。 2分类 3确定时间和地点解决这些事情。 4解决这些事情 5回头看看我们的成果 平时我们常常持念在心的那些烦心事 GTD的五个步骤: 1 Clearing --清空杂事 2 clarifying --弄清杂事的属性, 3 orgaizing ---组织管理 4 reflecting ---反馈 5...
阅读全文
摘要:原地址:http://www.openedv.com/posts/list/21.htm 这一节,我们将向大家介绍如何使用STM32的外部输入中断。通过第1、2节的学习,我们掌握了STM32的IO口最基本的操作。这节我们将介绍作为外部中断输入口,STM32的需要做哪些设置。本节分为如下几个部分: 3.4.1 STM32外部中断简介 3.4.2 硬件设计 3.4.3 软件设计 3.4.4 ...
阅读全文
摘要:官网上有2个: codeblocks-10.05-setup.exe codeblocks-10.05mingw-setup.exe 该下载哪个呢?两个有什么区别? 第一个没有集成编译器…… 第二个集成了mingw编译器…… 不知道区别就用codeblocks-10.05mingw-setup.exe
阅读全文
摘要:原地址:http://blog.csdn.net/marike1314/archive/2010/06/16/5673597.aspx 我们先来看一下Reference Datasheet中是如何说的: SCB-AIRCR中目前只用到4位,也就是最高能有16级中断嵌套,如果全使用的话可以达到256级 选用优先级分组(实际就是选几位用于主优先级几位用于辅优先级) 注意,我们在一个工程中只能用...
阅读全文
摘要:原地址:http://blog.csdn.net/marike1314/archive/2010/06/16/5673546.aspx 上一篇已经设置好时钟了,哈哈,时钟设置好不能让CPU闲着呢,让它点灯吧(编程中的hello world) 好了,大家可能接触过51单片机,但是再接触STM32后就感觉GPIO不像以前那样了,不要迷惑,为什么要一样呢,它又不是51。 那GPIO得内部结构图我觉...
阅读全文
摘要:晶振:老板,带两个秘书(电容),有时老板不在秘书说了算(内部时钟模式) 时钟PLL:老板娘,老板控制局面,但还是要听老板娘的话。 CPU:人力资源部,调动人员齐心合力 APB1,APB2时钟:部门经理,发布任务进度,启动工作 GPIO:体力工人,说干什么就干什么,也只干什么。 TIM:小时工,按时付费 AD:市场部,收集大大小小的反馈意见 DA:采购部,给多少钱看老板意思 串口:公关部,跟上层打交...
阅读全文
摘要:原地址:http://blog.csdn.net/marike1314/archive/2010/06/16/5673522.aspx STM32 RCC复位与时钟配置,我首先忽略掉复位,首先学习时钟配置,复位以后用到再学习 STM32有多个时钟源,分别是 HSI:上电默认启动,因精度不高所以先不采用,以后如果需要再使用 HSE:外部高速时钟,系统时钟一般采用它,经过PLL倍频作为系统同时...
阅读全文
摘要:/******************** (C) COPYRIGHT 2008 STMicroelectronics ******************** * File Name : stm32f10x_type.h * Author : MCD Application Team * Version : V2.0.1 * Dat...
阅读全文
摘要:在程序中编程(IAP)可以使用微控制器支持的任一种通信接口(如IO端口,USB,CAN,UART)下革程序或数据到存储器中,IAP允许欠在程序运行时重新烧写闪存存储器中的内容。然而,IAP要求至少有一部分程序已经用ICP烧到某个闪存块中。
阅读全文
摘要:Cortex-M3存储器映像包括两个位段区。这两个位段区将别外存储器区中的每个字映射到位段存储区的一个位,在别外存储区写入一个字具有对位段区的目标位执行读-改-写操作的相同效果。 在设置一个外设前,必须调用以下一个函数来使用它的时钟: RCC_AHBPeriphClockCmd(RCC_AHBPeriph_PPPx, ENABLE); RCC_APBPeriphClockCmd(RCC...
阅读全文
摘要:STM32F10XX支持三种复位形式,分别为系统复位,上电复位,备份区域复位。 当发生以下任一事件时,产生一个系统复位: 1,NRST引脚上的低电平复位 2,窗口看门狗计数终止(WWDG复位) 3,独立看门狗计数终止(IWDG复位) 4,软件复位(SW复位) 5,低功耗管理复位 三种不同的时钟源可被用来驱动系统时钟: 1,HSI振荡器时钟 2,HSE振荡器时钟 3,...
阅读全文
摘要:实施GTD的成功要决是什么?必须有一套自己的系统,并且完全遵照这个系统来做事。那么,清理书桌需要遵循一个怎样的系统? A首先,把桌面上和抽屉里所有的东西都拿出来,对成一堆。可以把它们放在一个筐里。从此以后,所有进入你书桌的东西都必须先入筐。 B从上往下,一件件处理这一堆东西。不是让你重新排序,也不要随便错过每一片小纸条,更不要把什么东西又放回去。对所有的东西,要么扔掉,要么交给别人,要么存档,要么...
阅读全文
摘要:主系统由以下部分构成: 1.四个驱动单元: Cortex-M3内核,DCode总线和系统总线(S-Bus),通用DMA1和通用DMA2 2四个被动单元 内部SRAM,内部闪存存储器,FSMC,AHB到APB的桥,它链接所有的APB设备。 程序存储器,数据存储器,寄存器和输入输出端口被组织在同一个4GB的线性地址空间内。数据字节以小端格式存放在存储器中。 可访问的存储器空间被分成8...
阅读全文

浙公网安备 33010602011771号