
stm32 运动控制
文章平均质量分 88
STM32 运动控制 步进 传感器 串行通讯
xy0942
朝着前进的方向努力
展开
-
uCOS学习笔记以及编程接口
实时操作系统uCOS是一个实时操作系统(RTOS),在这里我对实时的理解是每个任务的有不同的优先级,当高优先级任务就绪时可以不用等待低优先级的任务执行完成,就可以立马调度执行,响应时间基本是固定的.任务管理主要包括任务的创建,删除,挂起和恢复时间管理主要是实现任务的延时,延时的单位可以节拍,毫秒,秒,分,小时。一般调用延时函数后,当前的任务会从运行状态变为睡眠状态.时间到后会把该任务变为就绪态.任务间通讯及同步uCOS使用信号量,邮箱,队列实现任务间的同步。邮箱相对于信号量,可以传递一个消息指原创 2020-11-09 15:59:42 · 590 阅读 · 0 评论 -
STM32 NPN与PNP检测电路
简介工业用的传感器一般有NPN PNP两种类型 :NPN传感器:黑色信号线的连接是与0V的蓝色线断开或连接的。PNP传感器:黑信号线的连接是与与24V的棕色线断开或连接的。单片机检测传感器的状态改变一般需要增加一个光耦隔离电路,用于防止外界干扰会损坏单片机。NPN传感器检测电路当X1感应时,X1与蓝色的0V相连,光耦导通,IN1就和GND连通,单片机呈现低电平当X1感应时,X1与蓝色的0V不相连,光耦不导通,IN1就和GND不连通,单片机呈现高电平PNP检测电路当X1感应时,X1与棕色原创 2020-09-01 14:34:26 · 7647 阅读 · 0 评论 -
STM32 步进电机T型加速
一般PLC 运动控制卡都有实现电机的T形 S形加速算法,我们只需要设置起始最小速度(Pulse/S),最终最大速度(Pulse/s),加速时间(ms)即可,这样使用起来很方便河直观。但有些控制场合不是使用PLC或运动控制卡,而是我们自己做的STM32控制时,这些加速算法就需我们自己来实现了。步进电机加速一般有S型加速和T型加速,T型由于电机的运动状态包含匀加速 匀速 匀减速三种状态,运动轨迹看起来像个等腰梯形,所以叫T形加速.加速数据生成以下生成的数据,是以定时器频率为12M为基准:/******原创 2020-08-31 11:33:33 · 5027 阅读 · 2 评论 -
使用宏定义优化switch case
简介使用STM32做运动控制,程序中需要大量使用switch case来控制机械设备的一步步的设备运动.写程序有时会忘记写break,会导致程序的异常执行,查找程序bug也需要花费大量的时间,所以这也是switch case的致命的缺点。再就是程序大量使用switch case break,经常出现两行的case和break,程序逻辑代码可能只有一行代码,这样就有点主次不分明,程序逻辑会淹没在switch case中.switch case结构特点和优化switch case以switch开始,中间包原创 2020-08-26 10:15:19 · 4326 阅读 · 6 评论 -
STM32单片机程序dll实现
目的:使用dll减少代码编译,版本维护等等原创 2020-08-25 13:23:40 · 4567 阅读 · 0 评论 -
stm32 DMA步进电机控制
简介 单片机控制步进电机一般采用定时器比较中断的方式控制步进电机的速度,但是采用这种方法有一个缺点,电机的运行速度比较快的时候,单片机频繁进入中断。刚好stm32的定时器的DMA不占用cpu资源,可以克服这个缺点。步进电机控制原理 给步进电机发一个脉冲(一个高电平,一个低电平),步进电机走一个步距角。步进电机的控制的基本需求:运行速度。运行速度取决于电机发脉冲的频率,这个频率与定时器有关。原创 2017-07-28 15:44:40 · 6831 阅读 · 0 评论 -
两种方法实现stm32的8个串口通信
100引脚的stm32f103vet6只有5个内置的串口控制器,那么如何实现8个串口通信呢?方法1:用普通的io模拟串口通信。这里除了IO端口外,还需要一个定时器来控制发送和接收的波特率。定时器的定时单位一般为1位数据的发送时间。假设波特率为vRate,那么定时时间为1/vRate;但是如果波特率比较大的话(250000bps),定时时间一般要<(1/VRate),以为一些其他额外指令的执行时间,不原创 2015-09-27 20:57:08 · 7662 阅读 · 0 评论 -
步进电机S曲线的生成
步进电机的速度从0变为一个比较大的速度,需要一个加速过程,否则会产生振动或是电机的堵转。电机加速通常有T型曲线和S型曲线两种方式。S型曲线相对于T型曲线,S型曲线的速度不会突变。S型曲线的原始公式如下: y=K/(1+Exp(a-b*x))(K>0,b>0) Exp是指数函数,由这个公式可以看出y会随着x的增大,逼近K。把这个公式应用到电机控制之中,K看成最大的速度Vmax,x看成时间t的变原创 2017-04-24 16:02:18 · 26814 阅读 · 11 评论 -
MG323 AT指令之网络通信
简介 华为的MG323模块,内置了TCP,UDP协议,单片机只需要使用串口就可以实现网络通信。在实现通信功能之前,需要一台外网服务器测试。这台服务器,你可以到阿里云租,也可以使用花生壳软件自己搭建,还可以使用使用美国授时校准的服务器。使用授时的服务器,最经济,不需要写服务端的程序.可以到http://tf.nist.gov/tf-cgi/servers.cgi网站查询可用的服务器的IP地址,授时使原创 2017-04-26 16:56:18 · 1899 阅读 · 0 评论 -
中位值平均滤波法
最近用stm32单片机检测外部8路电压。STM32内部包含12位的ADC,一次检测一路AD最快只要1us。为了防止偶尔外部对AD采样的干扰,单片机对采集数据进行中值平均滤波。中值平均滤波就是在采集的N个数据中去掉一个最大值和一个最小值,然后对剩下的数据求平均值。所以这个算法**不需要对数据排序**,关键是计算最大值,最小值,和。算法实现如下:unsigned short AD_Filter(un原创 2015-05-31 00:29:36 · 14539 阅读 · 3 评论 -
指针之美
简介众所周知,C语言的精髓是指针,汇编的间接寻址,C#的委托都可以看成是指针,包括C++的继承,多态的底层实现,也都是基于指针的,因此我们可以把指针可以看成一种编程思想吧,从汇编到C,再到C++,Java,C#,我们看出计算机编程语言的一条演进的线索-指针,为什么会这样发展呢,大型软件系统,对于指针的使用要求很高,搞不好就会出现指针越界,空指针的错误,有些公司,还明文规定禁止使用指针。但是有些地方,原创 2017-04-25 10:07:16 · 648 阅读 · 0 评论