嵌入式开发–CubeMX使用入门教程

CubeMX简介

传统的单片机开发时,需要针对片上外设做各种初始化的工作,相当麻烦。
CubeMX是ST公司出品的一款图形化代码生成工具,通过图形化界面,可以非常直观的配置好各种片上外设,时钟,中断,DMA等等各种设备的参数,然后CubeMX可以直接生成初始化代码,使得开发人员可以将更多的精力放在核心代码的开发上。
生成的代码选择性适配IAR,KEIL,以及ST自家的STM32CubeIDE(免费)

初始界面

打开软件后就是这个界面

最左边是之前打开过的工程,中间是生成新项目的方式,右边是软件安装选项。
按箭头说明一下:
1:通过选择一款MCU来生成工程,一般用这个。
2:通过选择一款ST的开发板来生成工程,对于手里有ST开发板,想要学习开发板例程的,可以选择这个。
3:通过实例来生成工程,这个实例就是开发板已经实现的例程的名字,比如我想学习SPI接口,那么就可以通过这个打开,然后再选择ST开发板,和第2项是一回事。
4:检查更新
5:安装和删除软件包。每一款单片机都是需要安装对应的支持包才行的,可以从这里安装,删除或更新软件包。

生成工程

下面我们生成一个计算CRC的工程,用到的片子是STM32G030C8T6,配置PA9和PA10为串口。开启串口中断。外部晶振8MHz。将来用KEIL做软件开发。
点击箭头1,来到MCU型号选择界面

在1处输入STM32G030C8T6,前面的STM32也可以不输入。随着我们的输入,右边窗口会逐渐缩小选择范围,如下图,注意键盘要在英文输入状态,中文状态是不行的

箭头2所指的这个芯片,就是我们所要选择的。
同时还给出了参考单价,芯片封装,FLASH和RAM容量,IO口数量和最高频率等信息,以方便我们选型
确定好芯片以后,双击它,就来到下一个界面。

功能配置界面

它包含4个选项卡,下面我们来一一介绍。

1 引脚和配置

这个界面最常用,左边是配置MCU内核,片上外设,中间件的。
右边可以配置IO口,和引脚复用功能
下面我们点开System Core,并点击SYS,并在新出现的窗口中勾选第1项Serial Wire,的意思是启用SWD调试接口,即可以通过仿真器下载和调试程序。

点击Connectivity,点击USART1,Mode选择Asynchronous,意思是异步串口。其他保持默认。下面的窗口中,通讯速度按需要设置,默认是115200bps,数据位8,奇偶校验无,1个停止位

此时可以看到窗口右边,相关引脚已经变为绿色。可以看到PA9为TX引脚,PA10为RX引脚。
如果PA9必须做别的功能使用,那还有备用引脚可以选择,方法是按住Ctrl,再鼠标左键长按PA9,此时备用引脚会开始闪烁,本芯片的备用引脚只有一个:PB6
左键点击PB6,选择USART1_TX即可将该引脚变为TX功能

配置中断

点击红箭头所指的NVIC Settings

在方框内勾选,即可开启串口中断

开启CRC模块

CRC功能在Computing中配置,但是如果不知道呢,该怎么快速找到呢?
在箭头所指处输入CRC,并回车,注意一定要在英文输入状态,左下就会出现展开CRC所属的Computing的配置项

在下方箭头处勾选,以激活CRC模块

下面的参数按需要设置。
可以设置长度,多项式,初始值,输入是否反转,输出是否反转等。
设置好以后,直接将要计算的数组发给CRC计算单元也就是使用HAL_CRC_Calculate()这个函数,返回值就是我们要计算的CRC值,方便快捷。
有硬件可用就不需要写函数,速度还快,还省空间。

时钟配置

在RCC中选择HSE为外部时钟,即Crystal,意思是外部晶振,下面这两个脚就是晶振引脚,会变绿。

点击下图红箭头,进行时钟配置

选择下图的时钟路线

在箭头处输入64,回车,意思是使用64M的主频,相关的倍频分频参数软件会自动帮我们计算好。

生成代码

在1处输入项目名称
在2处选择工程路径
在3处选择将来要开发的软件,我用Keil所以选择MDK
在Code Generator选项中按下图设置

最后,点击右上角的GENERATE CODE,生成工程,

弹出下面的界面,就表示工程生成好了,点击Open Project就可以打开工程,开始开发了。

嵌入式开发--CubeMX使用入门教程相关推荐

  1. flex+android+教程,android开发flex4.5入门教程.pdf

    android开发flex4.5入门教程 中国矿业大学教务部 教务通知(2013 )第33 号 关于做好各级"大学生创新训练计划" 项目中期检查和结题验收的通知 各学院: 为加强我 ...

  2. truffle (ETH以太坊智能合约集成开发工具) 入门教程

    truffle (ETH以太坊智能合约集成开发工具) 入门教程 前言 在你了解区块链开发之前,你有必要了解区块链的一些基础知识,什么是DApp,DApp与传统app的区别, 什么是以太坊,以太坊中的智 ...

  3. python全栈工程师 pdf_python全栈工程师项目开发实例实战入门教程百度云

    python全栈工程师项目开发实例实战入门教程百度云 课程目录: 开学典礼 pycharm的基本使用 Python基本语法 数值类型数据及运算 字符串的基本操作 字符串的常用方法 列表的基本使用 列表 ...

  4. 【前端实例代码】Html5+css3创建新拟态新拟物风格(Neumorphism)音乐播放器+注册登录页表单图标网页效果~前端开发网页设计基础入门教程~超简单~

    b站视频演示效果: [前端实例代码]Html5+css3创建新拟态新拟物风格(Neumorphism)音乐播放器+注册登录页表单图标网页效果!前端开发网页设计基础入门教程!超简单~ 效果图: 完整代码 ...

  5. USB2DEMON烧录DBAU1200开发板flash入门教程

    //======================================================================== //TITLE: //    USB2DEMON烧 ...

  6. 【前端实例代码】Html5+css3+JavaScript创建在线播放架子鼓电子鼓演奏网页效果!前端开发网页设计基础入门教程!超简单~

    b站视频演示效果: [前端实例代码]Html5+css3+JavaScript创建在线播放架子鼓电子鼓演奏网页效果!前端开发网页设计基础入门教程!超简单~ 效果图: 完整代码: <!DOCTYP ...

  7. 【前端实例代码】Html5+css3创建拟物风格昏昏欲睡的云朵动画网页效果~前端开发网页设计基础入门教程~适合初学者~超简单~

    b站视频演示效果: [前端实例代码]Html5+css3创建拟物风格昏昏欲睡的云朵动画网页效果!前端开发网页设计基础入门教程!适合初学者~超简单~ 效果图: 完整代码: <!DOCTYPE ht ...

  8. 2021最新HarmonyOS鸿蒙系统应用开发之基础入门教程到实战—持续更新(第三节:鸿蒙的技术特征)

    第三节:鸿蒙的技术特征 每篇内容都有视频讲解,可直接点击观看+关注,持续更新中 2021最新HarmonyOS鸿蒙系统应用开发之基础入门教程到实战-持续更新(第二节:鸿蒙OS系统分布式操作) 硬件互助 ...

  9. 要web开发精品教程吗?免费一百期连讲的那种-逐浪CMS前端开发100期入门教程全面开放

    要web开发精品教程吗?免费无广告一百期连讲的那种-逐浪CMS前端开发100期入门教程全面开放 大师主讲 经验难得 由逐浪CMS首席架构师发哥老师,亲自主理讲解. 历时一年精心打造, 汇聚了互联网诞生 ...

最新文章

  1. 树莓派第三代跨越发展,采用64位处理器内建WiFi及蓝牙
  2. 1.8 Java字节流和字符流的区别,如何区分输入流和输出流?
  3. 禁止修改varchar到int|[运维规范]
  4. paradox 修改字段长度_400字的作文就只能写400字?刘强东:这不是笑话
  5. 上班族不知不觉发财的十大秘诀
  6. 函数名/函数地址/函数指针
  7. 【数字逻辑设计】卡诺图
  8. 《天天数学》连载30:一月三十日
  9. C语言实验报告册-20163a,c语言实验报告册-20163a.doc
  10. mysql5.7 no password_MySQL5.7.20报错Access denied for user 'root'@'localhost' (using password: NO)
  11. linq To DataTable
  12. cocos2d怎么设置屏幕朝向?横屏 or 竖屏设置
  13. 使用宝塔控制面板建站时出现网页出现404错误怎么办?
  14. 关于加密与解密、签名与验签
  15. bat怎么发起网络请求_接口测试实战| GETPOST 请求区别详解
  16. 六自由度机械臂仿真设计|包括UR5|Puma|victor5|运动学正逆解介绍|MATLAB机器人工具箱|Adams仿真
  17. 30m土地利用数据集获取大全/植被类型分布/NDVI数据/NPP数据/径流量数据/降雨量气温气象数据/蒸散量数据/太阳辐射数据
  18. 【漏洞学习——SSRF】七牛某站SSRF可探测内网
  19. 100个Python实战项目(七)实现摩斯密码翻译器
  20. 【EXLIBRIS】#小词旮旯# 003 Comrade

热门文章

  1. (三)RabbitMQ集群(Ⅰ)
  2. Java什么是对象?
  3. 【游戏编程扯淡精粹】游戏编程设计模式
  4. 李彦宏谈百度与Google的区别
  5. linux能否批量重命名,linux批量重命名方法
  6. 《HelloGitHub》第 66 期
  7. pandas 时间属性函数
  8. use mysql 1044 42000_mysql错误ERROR 1044 (42000): Access denied for user
  9. 【工作感悟】路自在前,冷暖自知
  10. 手机桌面隐藏大师_隐藏大师app下载-隐藏大师安卓版下载-ROM之家