STMCU小助手
发布时间:2021-1-7 16:55
|
STM32f103单片机 (一)——新建工程+IO总结 翻看自己以前读书的时候写的博客,发现我还是挺认真的: 但是很多东西不用就忘了,以前学习STM32都是用对着正点原子或者野火的视频学习,但是我发现自己下载的库好像并不是以前的那个库,以前各种配置好像很简单,估计野火或者正点原子重新封装了,但是它最底层的库也就是我自己下载的那个库,因为我们要用417,我目前只有103的开发板,我也没有真正动手做过STM32的项目,所以我就自己又从底层开始熟悉一下,这样也不至于到时候项目开始的时候也不至于不知所措。不管怎么样,把它用用起来吧! 这几天,分别驱动了IO、串口、外部中断、定时器、dma和彩屏,后期我也把自己的总结记录下来,先总结下怎么用库建工程和驱动IO口。 一、用库新建工程 1、打开软件新建工程,project->newproject
2、在工程中分别新建文件夹: Libraries用来装库函数,把库函数的包复制到这个的文件夹中; User用来装主函数和与注册中断的函数,main.c和system_stm32f10x.c放在这里面; Startup用来装启动文件,startup_stm32f10x_hd.s放在里面; CMSIS用来装系统文件,core_cm3.c放在里面; 3、点击,在工程下分别按照如下添加组和文件
4、点击选择C/C++,添加头文件目录,我都把他们添加进来
5、接着再选择linker Debug设置下载方式
这里要注意一下,单片机在每次下载程序之后需要点击复位按键才能够运行,这是因为选中J-LINK/J-TRACE Cortex之后,点击后面的Setting,再选择Flash Download之后没有在Reset and Run前面点那个勾,点了之后就可以下载程序之后程序就可以运行了。
这样整个工程就可以进行下载和写程序了。 二、驱动这一块单片机 1、时钟 驱动这个单片机之前,我们都知道单片机的时钟就像人的心脏一样,没有时钟,单片机不能够工作,所以对于拿到这个单片机开始,我们就需要对时钟进行设置。 通过下图可以看出,单片机一共有5个时钟源,HSI RC(内部的高速时钟,由内部的RC振荡电路产生)、HSE OSC(外部的高速时钟,由外部的晶振产生)、LSE OSC(外部的低速时钟,由外部的晶振产生)、LSI RC(内部的低速时钟,由内部的RC振荡电路产生)以及PLL(根据图由HSI时钟或者HSE时钟产生)。在我们驱动这个单片机的时候首先要看看我们单片机的时候,首先要确保外设的时钟就绪。根据下面的图,我们发现绝大部分的外设与系统时钟有关,系统时钟又与HSI或者PLL间接与HSE有关,而,RTC时钟与HSE或者LSE有关,看门狗只与LSI有关。
所以在下面大部门的驱动中,必须要的代码。这个与时钟有关的库在stm32f10x_rcc.h里面,根据我们的时钟数,一步一步的就可以将时钟设置好。
2、IO的驱动 设置好系统时钟之后,用什么外设就可以根据时钟树开始设置外设的时钟,同时,通过相应的库将外设进行驱动,IO口驱动的流程图如下:
上面的那幅图只是大体的写了时钟的来源,没有具体描写用到的外设分别用哪个时钟总线控制,在datasheet中的时钟树可以具体看出各种外设用了什么。
很清楚的可以看到IO口由APB2控制,这样通过读IO口的库函数,我们就可以写出驱动IO口初始化函数。
这样初始化就完成了,我们可以根据库中stm32f10x_gpio.c文件对引脚进行操作,具体的应用可以参考库函数使用指南对IO口进行操作。
同时我们也可以在库的上层封装一层中间层函数,再在上层进行调用。 三、这几天的状态 其实今天有好多想总结的,这几天驱动了IO、串口、液晶、DMA、定时器、外部中断以及液晶,我自己用这种方法现在基本上对于STM32单片机的外设不害怕驱动了,可是我要回寝室去了,明天吧。 最后来说说我自己最近的状态吧,今天是来学校的75天,和某人经历了1个月的和平共处,这个月和老师一起讨论方案和确认方案很忙,10月份到11月上旬,因为要搬实验室各种事情,项目上没有开始,加上父母觉得年纪大了该结婚了,但是两人谁都想去主宰别人,互不退让,谁都想让谁去低头,真是剪不断理还乱,可能是太闲了吧!这种感受这辈子再也不想再去经历了。如果再给我一次机会,我会给彼此更大的自由空间,同时给自己也更多的自由空间,而不是因为结婚了让对方各种消费观价值观去跟着改变,如果这个人真的是你想的那样吵架也是浪费力气,互相尊重和体谅吧!每个人都需要去努力,做最好的自己,别人不愿意做的,不要去勉强别人。 本来来读书,比较巧合,又从电子信息转到了测绘学院又是巧合,在我的脑海中一时还停留在自己做硬件的思维,就是想不清他们的逻辑关系,更奇怪的是听的讲座和我之前的硬件开发没有什么关系,讲数字地球遥感之类的比较多,开始我还觉得听莫名其妙的。不过在我努力地去寻找方向的趋势下,一有讲座就去听,终于了解了测绘遥感的意义,用一个给我们分享的老师的那就话就是,觉得自己的专业好牛。目前我自己理解的测绘就是,用各种手段关注这个地球甚至整个宇宙,包括卫星,在这其中发现和解决各种事情,比如疫情期间通过卫星拍摄的画面,武汉的各种经济社会的变化都可以通过这些进行反应;再比如:通过各种卫星对山体滑坡、自然灾害进行分析以及预警,南极的冰川厚度反应全球的种种,让我们及时采取措施。顿时间觉得自己也可以好好地去做一些事,这期间,也需要培养掌握方式方法获得快速学习到应用的能力,同时也需要舍弃一些杂事保证自己的时间投入,我想应该后期我应该也会慢慢的走上正轨了,今天就记录到这里,加油! 文章出处: 菜鸟硬件工程师小廖的成长日记 |
| 谢谢分享,跟着大神学习 |
微信公众号
手机版