这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 《何富和》的智能车的学习开发记录 已更新:LED的点亮

共9条 1/1 1 跳转至

《何富和》的智能车的学习开发记录 已更新:LED的点亮

工程师
2015-05-23 14:42:33     打赏

开篇话:整个活动5个月的时间,上次的四轴DIY错过了,这次可以通过这个机会去学习STM32单片机,本人对STM32单片机完全零基础,通过活动在学习过程的枯燥中也不乏其中的乐趣,在这个进程贴中我将会总结我的学习过程。一步一个脚印地和大家一起学习


一楼贴链接。方便坛友也方便自己阅览:    点击大字体可进入链接        小字体是链接的小介绍


进程1:开箱组装 (附带组装过程)


进程二:意外的进程 (维修STM32的过程,还没玩得尽兴就烧芯片了,悲催~~~~)


进程三:使用ST-LINK写入程序 (内部有MDK5、ST-LINK、STM32F1.PACK的文件下载以及下载程序教程


进程四:使用软件烧写HEX文件 (介绍使用FLASH LOADER DEMO 烧写HEX文件


进程五:点亮LED小灯 (介绍了如何新建工程,内部有ST3.5.0的库文件,以及点亮L1小灯的程序




工程师
2015-05-23 20:54:25     打赏
2楼

卖家的严谨作风和负责人的态度很令人佩服!


尽管教程里边有教咋们怎么组装了,该写的还是得写出来,诱惑诱惑围观的坛友们


嗮嗮包裹,卖家手写的单子,




内部包装很厚实,卖家在包装很用心。



送来的PCB基本上是成品板了,除了OLED的排针需要焊接之外,都没有什么好焊接的,电机虽然是二手的,但从质地上看,是很不错的电机,电池1300MAH,25C的放电能力,这个不是太懂,不加多评论,但知道是好货。



板子是SMT焊接,质量没话说,但后来,。。。。冻疮事变。




下面是装机的过程:



首先先将轮胎装上,轮胎装上很稳固




安装双通螺柱,这个好装,



放上电池,只是放上,哈哈



然后盖上主板,扭上螺丝,注意这里由于电池需要压紧所以需要点智慧,首先电池不能完全的平放在3D打印的机架上面,把一端(我是弄得电池后端)放下去,不要和前面那一部分等高,然后扭上主板的螺丝,先扭电池高度低一点的螺丝。这样就很好扭了。




然后焊接OLED的排针,短脚的焊接在OLED板上,



将焊接好的5PIN排针直插在座位上,扭上螺丝。




然后接后面的电池接口,这里由于元件紧凑,所以有些难插,先将红色线向外拨,黑色线在里边,再用点力就可以插进去了。


9


后面将电机的排线接好。



将电机线接好,打上开关,由于卖家已经下载好程序在内部,上电就可以测试小车了,红色灯是蓝牙的配对,蓝色灯是小车的状态灯,按一下左上角的开关,小车会自动平衡,当小车的倾斜角度(垂直于地面)高于+-40°时,小车会停机,具体的当推动小车时会自动找到平衡,一般推一下他会自动回到原地。


视频在上传中,请稍后。


工程师
2015-05-24 11:12:08     打赏
3楼

好景不长,前天的5点半左右收到快递的,然后一拿到快递我就组装好试车了,9点钟我上个厕所回来就坏掉了,原因是我隔壁家的熊孩子太调皮。然后弄了整个一天,在昨天的下午5点左右弄好了,那熊孩子差点没打死他,坏了就坏了,坏了就修,



这是车子还好之前的遗照,开始并不知道故障在哪里,开电的反应就是:什么反应都没有,经过测量电路中3.3v电压被拉低至0.5V左右,且1117稳压芯片处于高发热状态,这样问题就出来了,3.3v电路有短路故障,具体原因不清楚,于是上讨论群里边问,PASSONI和让四轴飞说是STM32坏的可能性大,所以就把STM32给拆了下来,上电,蓝牙状态灯(红灯)亮,这表示电源部分已经好了,STM32确实是烧了,昨天就去电子城买了两块STM32F103V8T6的单片机,顺便留一块备用,


将其焊上,由于对32单片机没有太多的认识,所以在下载程序上也出了岔子,上整个下载过程花了2个多钟,在网上寻找教程。其过程很“有趣”



将程序输入进单片机里面后,程序出现絮乱,开机,显示屏需要等待15S之久,且电机反应不灵敏,电机数值高达5000+的数值,自己也找不出问题所在,于是找PASSONI探讨,后来怀疑是单片机的时序错乱,晶振的问题时,我扳开OLED去观察晶振周围看是否有焊接问题时,发现电容C4对地短接了,挑开那段薄薄的锡层(连了一点点锡),重新启动小车,小车故障排除,后面的这次故障属于自己的焊接失误!对于这种错误是不应该发生的,在这里警戒自己,也希望网友们能吸取我的教训。不犯这种低级错误。再次谢谢PASSONI。

然后就到了今天的发帖了。现阶段的任务就是先看手册,学教程吧


工程师
2015-05-24 13:20:30     打赏
4楼

  总结一下自己在写入程序时遇到的问题,在编程我用的是MDK5,程序可直接软件写入,具体如下:


首先安装KEIL5  。该软件比较普及了,我就附上链接,大家自行下载  :点击下载KEIL5


KEIL5的安装和以前一样,在破解上有些不同


将KEIL5安装完以后,打开KEIL5



点击光标位置,会弹出一个对话框



复制箭头所指位置的文字后,以管理员的打开方式打开KEYGEN,该文件已经在ZIP文件里边了



  



将复制的字符,粘贴到如下位置



我的是已经破解好了的。所以不用再破解,



然后准备下载程序用的ST-LINK,将ST-LINK插入电脑,没有安装驱动的同学看这里   :  点击下载ST-LINK驱动


安装过程一直点下一步到最后就好了,检测驱动是否安装正确

检测驱动是否安装正确




将ST-LINK作为SWD输出,接法为:GND--GND     I0---I0   CK---CK


在下载程序的时候,要把电源开关打上,使STM32单片机有工作电源,


将卖家所付送的源代码放在硬盘的根目录下。然后打开KEIL5



打开自己放在根目录的文件,在这里我用卡尔曼滤波器的程序作为示范,是PASSONI建议的



点击打开。



图中的第二步接下图,程序中要注意芯片型号的选择,有些有误



这里的设置就是这样,有错误的话麻烦指出





点击完ADD之后,再点击确定,在这里很多同学的KEIL里边会没有STM32F1开头的PACK文件,在这里我附上链接:

点击下载STM32F1.PACK


下载完后可以按照提示安装,也可以如下安装:  将图片拖出可放大



点击第三步,找到刚刚下载的STM32F1。PACK的文件进行安装,安装页面的右下角会有进度条,提示完成便可


接下来就是重要的一步了,


具体的就是这样,下载后小车自动运行程序,基本流程是这样,在下载过程中自己也遇到写问题,虽然解决了,不过不敢就下定论的说哪里不行,但最基本的这个下载,我是成功了。大家按这个方法也是行的,现在在下载HEX文件上遇到问题了,不知道怎么去下载。用STVP下载也不成功,网上例程也比较少。


进程三的程序下载暂时先结~~   休息休息


工程师
2015-05-25 12:19:03     打赏
5楼
no的话说明没插上st_link,或者选择的问题

工程师
2015-05-25 19:19:19     打赏
6楼

开发板上有两种下载程序的方法,一种是通过ST-LINK下载,另一种是通过串口下载器下载,注意:串口下载器下载不是ST-link,我之前也是把这个搞反了,没想通,但他确实就只是俩回事,版主PASSONI已经整理了MCUISP软件的下载方法,这里我介绍一下FLASH loader demo软件的下载方法,PASSONI版主的下载方法在这里:


点击进入MCUISP软件的使用



用MCUISP首先你要有一个USB转TTL电平的下载器  然后安装其驱动。如果是网上买的话一般都会附送安装的驱动。没有的话可以用驱动精灵安装,


安装好驱动,检查设备管理器



驱动安装好后下载FLASH下载器:


点击下载FLASH LOADER DEMO



接线:


3.接线

接线:目标板      USB转TTL

GND           GND

PA9            RXD

PA10          TXD



具体接法是:串口线的RXD接目标板的TXD        PA10

TXD接目标板的RXD         PA9


GND接GND




连好线之后,将小车右上角的拨码开关打至OFF,将STM32复位(就是把主控板关电再开一次),然后打开软件,上面这两步非常关键!!!!



该文件是zip文件,下载后解压,按照提示一步步安装FLASH,然后打开,进入这样的界面:



如果连接没有问题,且主控板有复位的话,那么软件将会转入下一个界面,如果不成功,那么请注意检查串口驱动是否安装成功,检查连接线是否真确!,检测主控板是否有复位,在将拨码开关打至右边且复位的情况下,开机时,OLED显示屏是不会亮的,主控板右边的蓝色灯也是不亮的,程序不处于执行状态。





直接按NEXT进入下一步





选择一下FLASH,然后下一步




这已经是最后一步了,不出问题的话,HEX文件就被烧写进STM32单片机里了。




烧写完毕~~~结  






工程师
2015-05-27 16:30:38     打赏
7楼
这几天在看STM32的教程和手册,有所收获时再来和大家分享,毕竟活动里还是有和我一样的初学者嘛

工程师
2015-05-30 22:49:25     打赏
8楼
这两天感冒发烧~~39°多,哭死,明天可以更新帖子了,点亮一个小灯,哈哈

工程师
2015-05-31 16:53:04     打赏
9楼

通过前几天的学习,了解了M3内核的一些基础知识以及工程模版等一些基本问题,顺手点就把小小的过程给编辑了下来,好自己回顾,有错误的地方还望大家指出,谢谢



首先新建工程,新建工程的目录尽量放在硬盘的根目录上


选择单片机型号



然后更改树形目录,


进入后



接下来将工程模版中的文件添加到树目录中,点击下载工程模版


关于工程模版的制作就不编辑了,大家的差别可能在文件名字上有点区别,但都是大同小异。


另外需要说明的是STM32F10X的库文件需要下载ST3.5.0的源码。点击下载ST3.5.0源码


以我的树目录为例

sys的目录下应该要有:

core_cm3.c                   (M3内核)

startup_stm32f10x_cm.s         (中等密度型FLASH)

system_stm32f10x.c (时钟)


SRC的目录下应该要有:



(外设)

stm32f10x_adc.c


stm32f10x_bkp.c


stm32f10x_can.c


stm32f10x_cec.c


stm32f10x_crc.c


stm32f10x_dac.c


stm32f10x_dbgmcu.c


stm32f10x_dma.c


stm32f10x_exti.c


stm32f10x_flash.c


stm32f10x_fsmc.c


stm32f10x_gpio.c


stm32f10x_i2c.c


stm32f10x_iwdg.c


stm32f10x_pwr.c


stm32f10x_rcc.c


stm32f10x_rtc.c


stm32f10x_sdio.c


stm32f10x_spi.c


stm32f10x_tim.c


stm32f10x_usart.c


stm32f10x_wwdg.c


user目录下应该要有:


stm32f10x_it.c            (中断)

main.c                (该文件由自己新建)



然后还没完,




在Define的项目栏上输入STM32F10X_MD,USE_STDPERIPH_DRIVER

中间由逗号隔开,然后点击进入第二步。


然后就可以编写程序了,


#include "stm32f10x.h"


int main(void)
{	
	   GPIO_InitTypeDef my_qpioa;
	   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); 
	   my_qpioa.GPIO_Pin=GPIO_Pin_8;
	   my_qpioa.GPIO_Mode=GPIO_Mode_Out_PP;
	   my_qpioa.GPIO_Speed=GPIO_Speed_50MHz;
	   GPIO_Init(GPIOB,&my_qpioa);
	   GPIO_ResetBits(GPIOB,GPIO_Pin_8);
	   while(1);
}



上面是点亮小灯的程序,


L1小灯接的是PB8口



①:打开GPIOB的时钟

②:设置输出端口PIN8;

③:设置输出为推挽输出;

④:设置输出频率为50MHZ;

⑤:初始化GPIOB和二到四设置的输出模式。

⑥:设置PB8的输出,GPIOB,pin口为8,Reset为输出低电平,输入SET则为高电平,




如图,主控板上的蓝色灯一直亮,有些简单哈,但也是进步。


由于我是初学者,难免会弄错些东西,在帖子上有不完整的地方还请大家指出,谢谢!



灯点亮完毕~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~




共9条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]