随笔分类 - STM32学习
摘要:先学习下四轴的工作原理,那样,对以后的开发也相对来说方便多了。 四旋翼飞行器结构形式,电机1和电机3逆时针旋转的同时,电机2和电机4顺时针旋转,因此当飞行器平衡飞行时,陀螺效应和空气动力扭矩效应均被抵消。与传统的直升机相比,四旋翼飞行器有下列优势:各个旋翼对机身所施加的反扭矩与旋翼的旋转方向相反,因此当电机1和电机3逆时针旋转的同时,电机2和电机4顺时针旋转,可以平衡旋翼对机身的反扭矩。四旋翼飞行器在空间共有6个自由度(分别沿3个坐标轴作平移和旋转动作),这6个自由度的控制都可以通过调节不同电机的转速来实现。基本运动状态分别是:(1)垂直运动;(2)俯仰运动; (3)滚转运动; (4)偏航..
阅读全文
摘要:输入捕获模式可以用来测量脉冲宽度或者测量频率。STM32的定时器,除了TIM6和TIM7,其他定时器都有输入捕获功能。STM32的输入捕获,简单的说就是通过检测TIMx_CHx上的边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值(TIMx_CNT)存放到对应的通道的捕获/比较寄存(TIMx_CCRx)里面,完成一次捕获。同时还可以配置捕获时是否触发中断/DMA 等. 例如:我们用到TIM5_CH1来捕获高电平脉宽,也就是要先设置输入捕获为上升沿检测,记录发生上升沿的时候TIM5_CNT的值。然后配置捕获信号为下降沿捕获,当下降沿到来时,发生捕获,并记录此时的TIM5.
阅读全文
摘要:给等待入门的人一点点建议:入门必须阅读的相关文档1、 几个重要官方文档的功能: a) Datasheet——芯片基本数据,功能参数封装管脚定义和性能规范。 b) 固件函数库用户手册——函数库功能,库函数的定义、功能和用法。 c) 参考手册——各种功能的具体描述,使用方法,原理,相关寄存器。 d) STM32F10xxx硬件开发:使用入门——相关基础硬件设计 e) STM32F10XXX的使用限制:芯片内部未解决的硬件设计bug,开发需要注意绕开。 f) 一本简单的C语言书,相信我,不用太复杂。 2、 其他的有用文档,对初学帮助很大 a) 如何使用STM32的软件库在IAR的EWARM下进行应用
阅读全文
摘要:STM32 I/O的耐压问题STM32 I/O的耐压问题 STM32并不是如手册所言,绝大部都是耐5V电压的,具体的要参考数据手册——我就是轻信了网络上话,犯错误了。 STM32f103c8的I/O耐压分布是这样的: 1~19 :3.3V 20~22 :5.0V 23~24 :3.3V 25~34 :5.0V 35~36 :3.3V 37~40 :5.0V 41 :3.3V 42~43 :5.0V 44 :3.3V 45~46 :5.0V 47~48 :3.3V 非5V耐压I/O,输入5V时,有很多种方法。简单的可以通过分压。也可以通过串电阻——因为有40K左右的上拉/下拉电阻,如果串20k电
阅读全文
摘要:在直流减速电机控制中,最常用的方法就是通过PWM来控制直流电机的转速。在控制小车走直线的过程中,需要两者的转速一置(如果要走得很直,还需要在短时间内保证两者的行程大致相当,这可以用PID算法来控制)。因此,在检测到两者转速不一样时,需要动态调整其中一个或两个轮子的PWM的点空比(简单点的就以一个轮为基准,调整另外一个轮子即可;如果以一个固定的标准的话,需要调整两个轮子的PWM占空比)。 1 程序第一步:设置GPIO,略(输出PWM的管脚用Mode_AF_PP即可) 2 3 程序第二步:设置定时器,(保证产生两路PWM即可,我用的是TIM4) 4 5 void TIM4_Configurat..
阅读全文
摘要: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
阅读全文
摘要: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
阅读全文
摘要: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).问题解决了,主要是我把变量缝在头文件里面了,放在
阅读全文
摘要:高级控制定时器(TIM1 和TIM8) TIM1和TIM8定时器的功能包括: ● 16位向上、向下、向上/ 下自动装载计数器 ● 16位可编程( 可以实时修改)预分频器,计数器时钟频率的分频系数为1~65535 之间的任意数值 ● 多达4个独立通道: ─ 输入捕获 ─ 输出比较 ─ PWM生成(边缘或中间对齐模式) ─ 单脉冲模式输出 ● 死区时间可编程的互补输出 ● 使用外部信号控制定时器和定时器互联的同步电路 ● 允许在指定数目的计数器周期之后更新定时器寄存器的重复计数器 ● 刹车输入信号可以将定时器输出信号置于复位状态或者一个已知状态 ● 如下事件发生时产生中断/DMA : ─ 更新:.
阅读全文
摘要:外部中断控制: 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...
阅读全文
摘要:串口记录: 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
阅读全文
摘要:高速时钟提供给芯片主体的主时钟.低速时钟只是提供给芯片中的RTC(实时时钟)及独立看门狗使用。内部时钟是在芯片内部RC振荡器产生的,起振较快,所以时钟在芯片刚上电的时候,默认使用内部高速时钟。而外部时钟信号是由外部的晶振输入的,在精度和稳定性上都有很大优势,所以上电之后我们再通过软件配置,转而采用外部时钟信号.STM32有以下4个时钟源: 高速外部时钟(HSE):以外部晶振作时钟源,晶振频率可取范围为4~16MHz,我们一般采用8MHz的晶振。 高速内部时钟(HSI): 由内部RC振荡器产生,频率为8MHz,但不稳定。低速外部时钟(LSE):以外部晶振作时钟源,主要提供给实时时钟模块,所以..
阅读全文
摘要:1、安装MDK环境,下载程序的第三方软件mcuisp。 BOOT0开关拨到VCC、自动搜索串口、开始编程按钮,如果程序下载成功后则会打印出下面红色框中的信息、程序下载成功之后,需要将BOOT0开关拨到GND,然后按下我们的复位按键就可以看到实验想象了(也可以通过如下设置)。 开始编程按钮时,还会出现mcuisp一直处于连接的状态,导致程序下载不了,如下截图所示。解决的方法是只需我们按一下开发板中的复位按键即可。 2.在线调试器、JLINK 驱动安装与MDK环境搭建。 3.如何新建工程模板。新建工程,选择芯片型号、接下来的窗口问我们是否需要拷贝STM32的启动代码到工程文件中,这份启动代码在M.
阅读全文
摘要:上月,意法半导体(ST)与德州仪器(TI)相继宣布推出基于ARM Cortex-M4的MCU。在这之前,恩智浦(NXP)与飞思卡尔(Freescale)也曾宣布过M4产品的推出。对于后两家厂商的产品,笔者仅见文字,所获信息有限,不便过多评论。这里根据从ST与TI两发布会获得的信息稍作分析。Cortex-M4:比Cortex-M3多了DSP功能去年2月,ARM公司发布Cortex-M4处理器。关于Cortex-M4与Cortex-M3的区别,ST公司梁平先生说得很直白:M4不是用来取代M3的,它只是多了浮点运算功能。如果你不需要浮点DSP,M3就足够了。梁平说,Cortex-M4的DSP性能比1
阅读全文
摘要:关于DSP和普通51 AVR还有STM32的区别 DSP是为运算而生的芯片,他最强大的地方就在与它的数**算性能,那是由它的指令集支持的。那些拿DSP和STM32比较的,省省吧,如果你两者都熟悉你就知道根本没啥好比的, 如果我需要很多高级的接口,比如以太网和USB,那么我自然选STM32,如果我需要实现一些算法,那肯定会选DSP。如果你对运算速度不敏感,反正72M的速度已经比原先单片机快很多了,那当然是看你熟悉哪个,哪个价格比较好,支持比较好。 从51 AVR到DSP最大的障碍 1、应该是编译环境吧,TI的DSP都用的是CCS,CCS界面和原先IAR区别不是一般的大,比如程序导入,比如观察变.
阅读全文

浙公网安备 33010602011771号