摘要: STM32——C语言数据类型在编程过程中,不同的CPU,其数据类型的意义各不相同,所以一定要注意相应变量数据类型的定义和转换,否则在计算中可能会出现不确定的错误。(一)C语言中的种类数据整型:int short long实型:float doubleSTM32中的数据类型非常的多,常用的变量,文件中的定义如下: /* exact-width signed integer types */typedef signed char int8_t;typedef signed short int int16_t;typedef signed int int32_t;typedef signed __i 阅读全文
posted @ 2013-01-01 20:58 奔流聚海 阅读(18911) 评论(0) 推荐(1) 编辑
摘要: STM32产生PWM是非常的方便的,要需要简单的设置定时器,即刻产生!(1)使能定时器时钟:RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);(2)定义相应的GPIO:/* PA2,3,4,5,6输出->Key_Up,Key_Down,Key_Left,Key_Right,Key_Ctrl */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6;GPIO_InitStructure.GPIO_Mode = GPIO_M 阅读全文
posted @ 2013-01-01 18:46 奔流聚海 阅读(14042) 评论(0) 推荐(0) 编辑
摘要: USER\main.c(7): warning: #223-D: function "IIC_BusrtWrite" declared implicitly这个是因为程序模块化的时候,你在一个.C里面调用了另一个.C的函数而没有进行外部声明。你将这个声明的这个函数前面加上extern应该就好了!或者是函数声明时函数名称不一致导致。..\obj\Temputure_mesure.axf: Error: L6200E: Symbol temp multiply defined (by wenshidu.o and main.o).问题解决了,主要是我把变量缝在头文件里面了,放在 阅读全文
posted @ 2012-12-31 10:57 奔流聚海 阅读(1315) 评论(0) 推荐(0) 编辑
摘要: 高级控制定时器(TIM1 和TIM8) TIM1和TIM8定时器的功能包括: ● 16位向上、向下、向上/ 下自动装载计数器 ● 16位可编程( 可以实时修改)预分频器,计数器时钟频率的分频系数为1~65535 之间的任意数值 ● 多达4个独立通道: ─ 输入捕获 ─ 输出比较 ─ PWM生成(边缘或中间对齐模式) ─ 单脉冲模式输出 ● 死区时间可编程的互补输出 ● 使用外部信号控制定时器和定时器互联的同步电路 ● 允许在指定数目的计数器周期之后更新定时器寄存器的重复计数器 ● 刹车输入信号可以将定时器输出信号置于复位状态或者一个已知状态 ● 如下事件发生时产生中断/DMA : ─ 更新:. 阅读全文
posted @ 2012-12-29 21:41 奔流聚海 阅读(11033) 评论(0) 推荐(1) 编辑
摘要: 在一些电路设计中看到两个电解电容反相串联,两元件容量要相等,耐压相同,在交流电路中可以减小漏电流,用一个无极性电容就行,可以得到大容量的无极性电容。大容量无极性电容较贵。电解电容容量大且便宜,但有极性,两个反向串联。则是无极性的。那只能应用在很低的电压场合(最多1-2V),电压稍高,在电容处于反方向使用的那半波,漏电较大,积累的效应会使电解电容器发热,最终引起电容器爆炸。 <基于单片机的脉搏测量仪设计> 阅读全文
posted @ 2012-12-29 12:29 奔流聚海 阅读(4796) 评论(0) 推荐(0) 编辑
摘要: #define FUNTION_LED 0 宏要大写void RCC_Configuration(void) 函数关键字要大写,驼峰法 阅读全文
posted @ 2012-12-28 23:05 奔流聚海 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 弱上拉,最简单的讲法就是:比较弱的上拉。一般用在和外围器件的通讯上,比如IIC总线等,但不能用于需要驱动能力的上拉应用中。弱上拉,推挽,开漏是3种输出方式.当设置为弱上拉输出方式,此时各个I/O口与VDD之间约有100K电阻.如输出逻辑电平为1,则输出端有接近VDD的电平出现;如输出为0,则弱上拉电路自动关闭.当输出端处于模拟量输入状态时,弱上拉电路也会自动关闭.当设置为漏及开路,应外接上拉电阻(10K),使I/O口输出为1时,有3.5V以上的高电平输出当设置为推挽输出,至少可驱动20多个LS TTL门电路.可直接驱动外设接口,无须外加驱动总线的芯片(如74LS244,74LS245等),其总 阅读全文
posted @ 2012-12-28 18:51 奔流聚海 阅读(2330) 评论(0) 推荐(0) 编辑
摘要: 外部中断控制: STM32的每个IO 都可以作为外部中断的中断输入口,这点也是STM32的强大之处。STM32F103的中断控制器支持19个外部中断/事件请求。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。STM32F103 的19个外部中断为: 线0~15:对应外部IO 口的输入中断。 线16:连接到PVD输出。 线17:连接到RTC闹钟事件。 线18:连接到USB唤醒事件。 STM32供IO 口使用的中断线只有16个,但是STM32的IO 口却远远不止16个,STM32就这样设计,GPIO的管教GPIOx.0~GPIOx.15(x=A,B,C... 阅读全文
posted @ 2012-12-28 18:22 奔流聚海 阅读(1731) 评论(0) 推荐(0) 编辑
摘要: 预处理就是在进行编译的第一遍词法扫描和语法分析之前所作的工作。说白了,就是对源文件进行编译前,先对预处理部分进行处理,然后对处理后的代码进行编译。这样做的好处是,经过处理后的代码,将会变的很精短。关于预处理命令中的文件包含(#i nclude),宏定义(#define),书上已经有了详细的说明,在这里就不详述了。这里主要是对条件编译(#ifdef,#else,#endif,#if等)进行说明。以下分3种情况:1:情况1:#ifdef _XXXX...程序段1...#else...程序段2...#endif这表明如果标识符_XXXX已被#define命令定义过则对程序段1进行编译;否则对程序段2 阅读全文
posted @ 2012-12-27 10:21 奔流聚海 阅读(1271) 评论(0) 推荐(0) 编辑
摘要: 串口记录: STM32有好几个串口。比如说STM32F103ZET6有5个串口,串口1的引脚对应的IO为PA9,PA10.PA9,PA10默认功能是GPIO,所以当PA9,PA10引脚作为串口1的TX,RX引脚使用的时候,那就是端口复用。 复用端口初始化有几个步骤: 1) GPIO端口时钟使能。要使用到端口复用,当然要使能端口的时钟了。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); 2) 复用的外设时钟使能。比如你要将端口PA9,PA10复用为串口,所以要使能串口时钟。 RCC_APB2PeriphClockCmd(RCC_APB2 阅读全文
posted @ 2012-12-25 20:36 奔流聚海 阅读(3541) 评论(0) 推荐(1) 编辑