IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 【STM32+cubemx】0002 HAL库开发:第一个程序——LED闪灯程序 -> 正文阅读

[嵌入式]【STM32+cubemx】0002 HAL库开发:第一个程序——LED闪灯程序

本节我们来开发第一个程序,LED闪灯程序。

这里先介绍一下cubemx生成的代码,它可以生成HAL库和LL库,HAL库封装得比较完善的库,用户不用过多关注底层硬件的具体设置就能完成开发,代码效率低一些;而LL库类似于直接操作寄存器,代码效率比较高,但是需要用户比较了解底层的硬件,才能较好地改写、开发。

我们这里都是使用HAL库开发,一般分两步:先在cubemx里配置芯片参数、生成底层的初始工程代码;然后在keil里打开工程文件,编写自己的应用代码,编译、下载到开发板运行。

1)cubemx生成代码

打开cubemx,点击主界面上的access to MCU select:(也可以通过菜单file->new project->MCU select进入 )。我们第一步需要选器件。

进入后,按下图,找到我们开发对应的芯片stm32f103c8t6:

双击对应的芯片后,进入如下界面,在第一个pinout & configuration选项卡中,进行处理器的资源配置:

首先配置SYS,debug选上serial wire,即选择SW调试接口;其他的不改动。

因为我们使用的简易版st-link,只能使用SW接口进行调试和下载,所以这里我们只能选择SW调试接口。

然后选择RCC时钟源,我们这个开发板上硬件是外部连接了8M的高速晶振以及32.768k的低速晶振,所以两种时钟都选择外部晶振:

然后配置GPIO,也就是我们要用到的LED的引脚,在开发板的电路图上,我们可以看到,LED连接在PC13引脚上:

所以,配置GPIO时,我们把PC13设置为输出(在右图芯片上找到PC13引脚,然后右键,选择GPIO_output),设置完成后已经占用了的引脚会变成绿色。

然后切换到时钟选项卡,如下设置时钟:

这里我们选择外部晶振8M时钟,速率乘以9倍,设置为最高主频72Mhz

然后切换到project Manager选项卡,填入工程名,建议全英文名称和路径;由于我们使用keil开发,工具链选择MDK-ARM V5;如果上一节中cubemx中的器件包安装的是默认路径的话,图中的第三处应该可以不用修改,如果安装时不在这个路径下,则需要手动修改一下路径。

在到code generator下勾选为每个外设建立.c和.h文件,这样以后方便修改,不会很混乱:

最后,点击右上角的generate code,就可以生成工程代码了。

2)keil中的编程和下载

在keil中打开生成的工程,打开文件main.c,可以看到软件生成的代码中,main函数中已经有硬件初始化的代码,有已经有了主体的程序框架:

这里说明一下在cubemx生成的工程里,用户代码最好添加在类似如下这种USER CODE BEGIN和USER CODE END之间,这样添加的代码下次使用cubemx重新配置工程的时候可以保留,否则会被删除。

我们添加延时和翻转PC13引脚的代码如下:

这部分代码写在无限循环内部,首先拉低PC13引脚(点亮LED),然后延时500ms,再拉高PC13引脚(熄灭LED),然后再延时500ms,如此循环。

代码编写完成后后,点击build编译,完成后,下方提示栏会有提示,如果错误数为0,则成功生成了目标文件(*.axf),可以进入下一步下载到硬件上验证了。

3)烧写和运行

首先查看keil中的下载器设置,在debug选项中,确认调试和下载工具选择的是st-link:

然后,点击后面的setting,切换到flash download选项卡,勾选reset and run,这一步是设置下载完成后程序自动运行:

然后,将开发板的SWD接口的四根线,对应连接到st-link的四根线,注意不要连错,开发板的电源连接到stlink的3.3v接口:

将st-link连接到计算机的usb口上,然后点击keil上的download,就可以下载到开发板了:

下载时keil下方会有进度条提升,下载完成后,可以看到板子上的LED等以1s周期闪烁(0.5s灭,0.5s亮)。

至此,我们的第一个程序成功运行起来了。

欢迎关注我的公众号,文章同步更新,可留言获取相关资料和软件:

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-10-30 12:41:30  更:2021-10-30 12:42:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:27:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码