打印
[STM32F0]

0基础学习STM32。

[复制链接]
1856|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jzxlit|  楼主 | 2015-4-6 12:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
0基础,纯是学好,经过几天努力,直流电动驱动,步进电机驱动。

一、找设备,经朋友介绍在淘宝买了一真STM32F030F4的板子和ULINK2,都不知道是干什么的。
ULINK2送的光盘里带一个软件,Keil4,上网一看是开发环境,于是就安装了,按照配置ULINK2连上了。
但ULINK到STM32F030F4的边线不会了,照上淘宝上的图片,自己接,还真接对了,Keil4 里ULINK2看到了设备。

二、第一个代码下载,打开 STM32F030F4带的软件代码 ,LED测试,编译出错,找了半天是INCLUDE问题,引了几个INC进来,编译终于通过了。可是怎么也下载不了。于是就是option里热气折腾,凭直觉 “programming algorithm”里设备不对,add的列表里又没有STM32F030F4,怎么办?继续折腾,发现DEVICE里有其它设备,缺少STM32F030F4。再折腾,在Pack Installer里找着了,真没想到还能在线安装。终于代码下载到板子上了,当LED闪烁时,心里还是有点小激动的。

三、驱动电机,继续淘宝,找了一个双直流电机驱动板,简单学了一个引角,VCC是电源,GND是地线,先把STM32板上的5V和GND接到驱动板了,驱动灯亮了,把电机接到驱动板的MOTO接口上。看驱动板的电路图,看不懂,有四个引角,说是输入高电平、低电平可以调正反转,百度看了一下,不太明白。看ST板子了,有PA0到PAn,说是GPIO,继续百度,大概了解了。看了LED里的代码,参照LED给4个引角的GPIO做了初始货, 发现LED用的是“GPIO_ResetBits, GPIO_SetBits”这两函数,查资料:设置所先定端口为高/低位。于是就用这两个试了一下,很神奇,真的转了起来,继续写了些,while(1)里 正转、返转、延时、两个电动同时转。。。
沙发
jzxlit|  楼主 | 2015-4-6 13:00 | 只看该作者
于是淘宝上淘了些东西,面包板,杜邦线,步进电机,液晶屏,超声测距,温度传感器等一块东西。

驱动步进电机
先找简单的来吧,有了驱动直流电机的经验的觉得步进电机应该很好弄了,驱动板带的是51的代码,更不懂了,一头雾水,驱动板上有四根线,不知道从哪开始。查询资料,找代码,没有能用的。
张于在一个毕业设计上看到了一段描述 ,什么 AD、PWM,一路看不懂,最后找到了一个半步驱动的图 “A-AB-B-BC-C-CD-D-DA”,发挥想象,把ABCD当成四个引角于是继续“GPIO_ResetBits, GPIO_SetBits”操作这四个引角,只是振动一下,还是不转。继续找资料发现可以调速用Delay,于是就在代码里加一个循环后加上了Delay(100),发现可以连续振动,为什么不转,热气折腾折腾,发现电机是在动,只是很慢,于是delay(1);又激动了一下,步进是机转了起来。继续折腾, “A-AB-B-BC-C-CD-D-DA”,返着来就是返转。继续折腾,想让它前走10秒,后退10秒,可以不成功,代码进到第一个前进的while(1)里就不出来了,怎么办,有没有类似线程的东西?好象没有,可以用定时器来实现,找了半天发现下载的同步电机ST代码 里有定时器触发的中断,折腾半天,可以触发了,但是速度太快,不会设置“TIM_TimeBaseInitTypeDef”的参数。继续找,发现定时器可以触发 “SysTick_Handler”,并且可以设置时间间隔。于是改了下代码,定时触发“下一步”,“下一步”里判断是前进还是后退、停止。于是电动再次转起来了,并且可以main:while(1){forward();delay(10000);back()dealy(10000);stop();delay(5000);}。到此总算是能正常转了,又了解了一下定时器和中断。
还有很多不了解的。
目的想给闺女弄个特殊的玩具,别人没有的,比如一个摇控器可以控制N个设备。
我有知道ST的路还很长。纯是自己的爱好。

使用特权

评论回复
板凳
sevenjul| | 2015-4-6 13:48 | 只看该作者
也打算学习,呵。

使用特权

评论回复
地板
小浣熊| | 2015-4-6 21:06 | 只看该作者
看看,适合初学者学习了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

6

帖子

0

粉丝