STM32开发点滴

上北邮研究生以来,恍恍惚惚已经过了一年,随着师兄师姐们陆续离开实验室去工作岗位,这下半年开始顿感压力很大,主要还是因为自己太水了,算法不精,语言不精,论文也没发,连身体都没锻炼好。所以这学期开始得要好好干点对得起自己的事了。就顺便记录一下即将交工的STM32的项目,也算是对自己的激励。

以前没怎么做过板子,就写点小程序,所以还是比较费劲的,但是写出来也不怕被笑话。刚开始看视频,看文档学习,然后试着写点类似HelloWorld的小程序。

用Keil开发的板子,一般都是用C,第一招学到的是定义头文件:

#ifndef __A_H

#define __A_H

...

#endif

这样可防止头文件的重复包含。

里面的_O,_IO一般都是定义valatile变量的,所谓的valatile变量就是要求编译器不要对其进行优化,而是每次都直接去读取变量值。所以可以用在一些定时上之类的。

当然,项目一般都少不了中断、显示器、文件系统等。期间也遇到过不少问题。

先说中断,在STM32的定时器中,对于多个定时器(TIMx)当需要同时配置的时候,NVIC_PriorityGroupConfig(NVIC_PriorityGroup_x)仅仅需要配置一次,当时不知道,用了TIM2、TIM3、TIM5都分别配置了,最终导致下载到板子里,显示屏老是启动,后来才发现是程序没跑起来。对了,如果加上按键中断的话,也是一样,一个程序中只能配置一次。

一般显示器的初始化都有外部初始化和内部初始化,默认一般使用内部,当显示器不亮的时候,可以试试外部供电。

说到程序下载,又是一摩尔问题,JTAG和Ulink换了好几次,现在用的是JTAG,但是我们板子用了SPI引脚,当时不知道,最后研究所里的一个师傅告诉我们当复用SPI时候,应该将JTAG使能,这里需要注意的是,使能后下载要使用SW下载,当时我们没有使能,导致时钟信号一直受干扰,妈蛋的,还是自己水平太菜啊。使能方法: GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE)

特别要注意的是:只能使能JTAG,否则连SW都一起使能了就无法下载程序了,我当时就一起失能了,结果那块芯片坏了,网上也有很多将芯片冲刷的方法,大家可以参考一下,因为我们芯片还算便宜,所以就直接换了一个。

文件系统一般都是每个工程必要的,记得当时用的是一个小日本开发的文件系统,这样就省去了直接操作SD卡的麻烦,只需要配置一下接口,就可以使用文件系统里的函数了。做的还不错,唯一要提醒大家的就是:文档最关键,用函数什么的多去参考参考API,设置完参数,就OK了,这样会省很多事。

还有些调功能代码的就不一一列举了,大神就别见笑了。

当然,项目开发中还有很多点滴,会遇到很多问题,特别是做硬件方面,还有很长的路要走,个人其实不是很喜好做硬件,因为要弄驱动、板子、调程序,确实比较繁琐,做软件差不多就是调bug了。但是在实验室没有办法,有什么项目就得做什么项目,和老师同学处好关系,发好论文,以后找个好工作,回成都陪女朋友,也就安心了也。

此篇博客并没有什么真正的技术含量,纯属鼓励自己罢了,现在在实验室在做裁剪安卓源码在开发板上实现功能的项目,等做完了再发偏心得吧,加油!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值