STM32F103单片机学习笔记(1):用库新建工程和驱动IO口

发布时间:2023-10-19  

一、用库新建工程

1、打开软件新建工程,project->new project

图片

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口进行操作。

图片

同时我们也可以在库的上层封装一层中间层函数,再在上层进行调用。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>