STM32初识---Keil5和CubeMX

这篇具有很好参考价值的文章主要介绍了STM32初识---Keil5和CubeMX。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

硬件介绍

今天开始,学习比52更复杂的STM32系列单片机:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

软件介绍 

1. Keil 5 及其 固件包

使用之前的Keil4写STM32代码其实也可以,但需要比较复杂的设置,而如果用Keil5会比较方便。

(这里在打开POJIE软件的时候总是会报错“ 无法成功完成操作 因为文件包含病毒或潜在的垃圾软件",因此参考了这篇博文解决Win11“无法成功完成操作,因为文件包含病毒或潜在的垃圾软件“_'零'Bug的博客-CSDN博客)

另外安装的路径不要有中文!

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

安装完keil5和固件包之后打开keil5的界面:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

小插曲:Keil怎样显示中文注释(简单 有图)_keil中文注释_小码1111的博客-CSDN博客

其实要Keil4一毛一样,只不过,对于32的编程不能像51那么简单,简单创建一个工程写个main就可以跑起来,STM32的模板工程

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

 在Keil5中长这样:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

 mian中一些示例程序,将他编译之后,接下来就是烧录的方法了:

烧录其实有很多种方法,包括串口,J-Link,U-Link,ST-Link等,在这里我使用的烧录工具是ST-Link:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

主要接的就是三根线,GND,SWCLKSWDIO。打开STM32最小系统的PCB图,查找SWCLKSWDIO就可以连接:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

如图,即单片机的A13和A14分别和ST-Link的SWCLKSWDIO连接:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

然后将ST-Link插入电脑的USB口之后,安装ST-Link的驱动:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

右键STM32 STlink并选择“更新驱动程序”,并在电脑中找到驱动程序:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

图标显示正常,说明安装成功!

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

 接下来回到Keil5进行下一步的配置:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机点击这个图标:

选择“Debug”,选择“ST-Link Debugger":

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

选择“Output”,勾选上“Create HEX file”:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

这就完成了设置,之后就可以进行程序的烧写

1. 点击Load,就可以把程序烧写进入STM32:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

2. 没有报错之后,点击单片机右下角最左侧的“复位按钮”:

3. 此时程序已经成功烧写,可以观察到代码使得LED灯交替闪烁:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

2. STM32CubeMX

 CubeMX可以通过界面的方式快速的生成工程文件,首先安装并打开:(其实这里推荐将固件包的位置改到除了C盘之外的其他盘,但是我就一个C盘没有分盘,所以就跳过了这一步)

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

使用STM32CubeMX生成工程文件:

1. 点击“ACCESS TO MCU SELECTOR”

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

2.  点击之后,在新生成页面的左上角输入具体的芯片型号并双击:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

然后CubeMX就会基于这个芯片生成一个新的界面:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

接下来就可以通过在这个界面的操作,自动生成对应的代码,比如我要进行一个点灯的操作

1. 同样,先通过STM32最小系统的PCB图,查找LED灯对应的电路:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

 stm32cubemx和keil5,stm32,嵌入式硬件,单片机

可见LED1,2 分别接到了B8B9并且低电平灯亮高电平灯灭

2. 在CubeMX界面找到PB8和PB9的引脚,并左键点击:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机stm32cubemx和keil5,stm32,嵌入式硬件,单片机

 这其实就是引脚的复用,此处我希望点灯,那需要这个引脚行使“GPIO_Output”的功能:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

此时,再点击左边的GPIO选项,就可以看到设置的引脚,并且CubeMX已经自动进行了一些初始化的配置了

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

 此时再点击PB8或PB9就可以进行进一步的设置:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

 例如,可以设置

输出的是高电平还是低电平

输出的模式是“推挽输出”还是“开漏输出

是否要拉高或者拉低

最大传输速度

用户给的标签

3. 点击左侧的“SYS”选项,在“Debug”中选择“Serial Wire” (串口)

 stm32cubemx和keil5,stm32,嵌入式硬件,单片机

 如此一来,就可以进行一些重复的修改。

4. 点击上侧偏右的“Project Manager”大选项进行设置:

注意,项目的路径不能有中文!!这里我在C盘创建了一个新的‘ mjm_CubeMX_proj 文件夹用于保存Cube的项目文件:(Toolchain/IDE别忘了设置成MDK-ARM,这样在项目生成之后会自动调用Keil)

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

5. 同样在“Project Manager”大选项下,左侧的“Code Generator”中这样设置:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

6. 最后,点击右上角的“GENERATE CODE” :

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

7. 生成完成之后,点击中间的“Open Project”:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

此时就会自动调用Keil5打开:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

8. 注意,先进行编译:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

9. 按照STM32的烧写步骤,先点击LOAD,再点击单片机的复位:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

可见LED1,2对应的D3,D5两盏灯常亮,说明CubeMX生成的代码没有问题!

既然代码没问题,那么现在可以回过头来看一下Cube到底生成了啥代码:

主要观察main函数:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

发现就是在初始化,如果选中并右键点击这些调用的初始化函数,就可以跳转到这些函数定义的地方:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

 stm32cubemx和keil5,stm32,嵌入式硬件,单片机

 其中下图这条语句就是亮灯的关键:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

通过再次跳转这个函数查找定义之后就可以知道,这是一个写数据的函数,上图中是往GPIO口的8和9口写“0”,而经过刚刚的分析,LED灯低电平亮灯,所以这句话可以点灯。

那么既然知道了这个函数的作用,那就可以把这句话稍微修改然后复制到main函数的while 1循环中:

 while (1)
  {
    /* USER CODE END WHILE */
		HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_RESET); //8口对应的LED亮
		HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9, GPIO_PIN_SET); //9口对应的LED灭
		HAL_Delay(1000);//HAL_Delay函数以毫秒为单位,这里delay 1 秒
		
		HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_SET); //8口对应的LED灭
		HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9, GPIO_PIN_RESET); //9口对应的LED亮
		HAL_Delay(1000);//HAL_Delay函数以毫秒为单位,这里delay 1 秒
		
    /* USER CODE BEGIN 3 */
  }

将代码烧录:

stm32cubemx和keil5,stm32,嵌入式硬件,单片机

这就是最简单的,通过Cube代码进行二次开发,实现跑马灯的尝试。

同时,通过这个示例也可以看到CubeMX不是万能的,Cube只能生成初始化的代码,至于具体项目中main函数中具体的实现,还是要自己敲的!文章来源地址https://www.toymoban.com/news/detail-738013.html

到了这里,关于STM32初识---Keil5和CubeMX的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Clion + Keil5 写stm32

    最近在学 stm32,使用 Kei5 写代码十分难受,代码提示差,看源码复杂,甚至括号匹配都没有。就想着 JetBrains 家的东西能不能用,就找的了稚晖君的《配置CLion用于STM32开发【优雅の嵌入式开发】》,配置之后又想用 stm32 的原生库不想用HAL库,因为跟着江协科技学起来方便。折

    2024年02月05日
    浏览(66)
  • Keil5 开发 STM32 工程创建

    打开Keil5软件,点Project菜单的的下来选项New uVision Project…,然后选择工程文件夹放置的目录,新建项目目录,如:LED闪烁 点击OK后,会弹出配置运行时环境的选项框,关闭即可,该方法使用手动配置。 完成后,如下图: 打开项目目录,分别创建3个文件夹:Library, Start, User,

    2024年02月16日
    浏览(89)
  • (STM32基础)STM32用keil5开发前准备

    1)Keil5安装MDK-ARM版本后,需要安装对应芯片器件库,否则新建工程无芯片可选项。  查看设备管理器  stlink 是否驱动正常,如果是感叹号则需要装驱动  2、插入STLINK后,在keil安装目录下找到安装驱动程序,安装STLINK驱动。 3、插入usb转串口模块后,安装驱动程序(资料文件

    2024年02月03日
    浏览(65)
  • keil5成功安装stm32芯片包

    keil安装stm32芯片包 1.按图点击pack installer 2.点击file-然后点击import 3.点击框中stm32芯片包即可 4.返回出现下面的信息则说明安装成功 PS:如果一直显示安装不上,检查芯片包的完整性

    2024年02月13日
    浏览(42)
  • 【STM32】Keil5中生成bin文件

    一、打开魔术棒  二、点击“User”,勾选After Build的Run#1 三、 添加fromelf文件的路径(若fromelf文件路径未添加到环境变量,请在这里添加详细的路径。例如: D:keil5ARMARMCCbinfromelf.exe  --bin  --output ..OBJIAP.bin ..OBJIAP.axf)  四、一定要注意格式!!! ① ..OBJIAP.bin  其中“

    2024年02月05日
    浏览(73)
  • keil5 查看stm32 寄存器的值

    1 查看芯片内部寄存器的值,首先是在仿真状态下,首先仿真,程序运行。 2 点击菜单栏的 View - System viewer ,右侧便会出现芯片的所有寄存器(如果没有,需要添加),点击要查看的寄存器,便会出现在侧边栏上 可以查看值,也可以直接设置寄存器的值。 3 如果没有出现,如下

    2024年01月24日
    浏览(49)
  • keil5软件仿真stm32设置 和 调试技巧

    不想用板子的时候或没有板子的时候,软件仿真更方便调试快速验证; KEIL两大功能:1.编译器功能;2.调试器功能 1.选择 Use simulaor 代表要使用软件模拟仿真 2.“dialog DLL”的内容是 DARMSTM.DLL ,表示使用STM系列 3.把“dialog DLL”的内容换成 TARMSTM.DLL , 4.parameter”的内容是 -pSTM

    2024年02月13日
    浏览(51)
  • Keil5编译环境搭建流程----STM32和GD32

    以下蓝色字体是对应文章的链接,单击便可以查看详细信息! 文章链接: Keil5-MDK下载和安装教程 资源链接: Keil5_MDK安装包链接----点击下载 文章链接: stm32芯片包下载和安装教程 GD32芯片包下载和安装教程 资源链接: Keil5-STM32芯片包链接----点击下载 Keil5-GD32芯片包链接---

    2024年02月05日
    浏览(59)
  • STM32F103标准库开发:Keil5新建STM32工程

    首先需要搭建Keil5编译环境,才可以新建STM32工程。 Keil5编译环境搭建流程----STM32和GD32 新建一个文件夹 template 在文件夹template里面新建四个文件 (1) CMSIS : 存放内核驱动程序和启动引导文件 (2) FWLIB :存放库函数文件 (3) Project :存放工程文件 (4) User : 存放用户程

    2023年04月08日
    浏览(69)
  • keil5使用c++编写stm32控制程序

    想着搞个新奇的玩意玩一玩来着,想用c++编写代码来控制stm32,结果在keil5中,把踩给我踩闷了,这里简单记录一下。注意一定要按照如下流程进行操作,一步都不要跟丢了。 所需要的一些文件放在百度网盘了。 先把最新的库函数和CMSIS安装好。 我这里为了方便就直接安装在

    2023年04月25日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包