完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
文档作者
Flanker 文档内容简要说明 记录学习cubeMX和platformIO开发stm32的过程(引用会标注引用链接) 文档修订记录 创建文档,加入pio,cubemx安装——Flanker 迁移至CSDN并继续编辑 丰富pio,cubemx安装,加入cubemx配置点亮led灯工程——Flanker 完整描述cube配合keil以及pio的方法,以及pio中upload出现的问题的解决方法——Flanker 正文 CubeMX安装 CubeMx 是一个 由 ST 推出的芯片图形化配置工具,为了使开发者尽可能地可以不再关心底层,允许用户使用图形化向导生成C初始化代码。使用 CubuMx 时需要先安装好 JAVA 环境,需要安装 JRE 即可。 JRE下载:java官方的太太太太慢了,这个是CSDN找的 官方STM32-CubeMx地址 安装好CubeMX后打开进入。 在embeded software packages可以从cubemx中直接选择。选择F1系列最新的即可 PlatformIO的安装 首先在PIO中新建一个工程先按照这篇文章所说新建一个项目,例如Nano_test,打开对应工程的目录: OK,记住这个位置,我们去配置cubemx 使用CubeMX生成PlatformIO可用代码 使用CubeMX生成工程 新建项目。通过搜索功能查找开发板的芯片 在左侧边栏中找到system core 点击SYS,将Debug的选项改成串口线 点击RCC,将HSE的选项改成晶振 进入clock configuration,直接修改HCLK数值,更改为最高72(MHz),然后会弹出窗口,点击确定会自动配置时钟。配置完后如下图 返回Pinout&configuration,配置芯片的引脚。因为本人使用的是正点原子的F103RBT的nano开发板,通过查找官方手册可以找到DS0的LED对应的是PC0引脚。点击PC0引脚,选择GPIO_Output 点击左侧GPIO,在中间configuration栏中点击PC0,将GPIO Pull-up/Pull-dowm选项开城Pull-down。(这是因为根据电路图,电位拉低led才会被点亮) 来到project manager,在code generator中勾选“生成外设初始化——”选项 回到project选项,添加项目名称,将“工具链/IDE”选项更改成STM32CubeIDE(如果想上车keil,这里要改成MDK,并且按照自己的keil版本选择生成版本) 这时我们就在对应文件夹获得了.ioc文件 其实……如果懒得搞PIO,直接keil也成 Switch(IDE) case keil 如果是keil,直接找到.uvprojx打开即可 在main.c中找到while(1), 在注释提示可以添加自己代码的地方添加: HAL_GPIO_WritePin(GPIOC,GPIO_PIN_0,GPIO_PIN_RESET); HAL_Delay(1000); HAL_GPIO_WritePin(GPIOC,GPIO_PIN_0,GPIO_PIN_SET); HAL_Delay(1000); 选择选项 在debug栏下选择使用stlink 继续点击旁边的setting,然后再flash download中勾选“reset and run” 一路ok保存设置,然后连接板子,build+download一波,然后led就闪烁了 case PIO 在cubemx中配置完一个工程后,将已有.ioc文件复制到pio工程的目录下(上文讲pio的时候提到过),双击打开cube,点击右上角的generate code,完成后: 这个时候再进入vscode,项目中已经有了刚刚生成的文件。打开platformio.ini,并添加代码: [env:genericSTM32F103RB] platform = ststm32 board = genericSTM32F103RB framework = stm32cube debug_tool = stlink upload_protocol = stlink [platformio] include_dir=Inc src_dir=Src 添加亮灯的代码: HAL_GPIO_WritePin(GPIOC,GPIO_PIN_0,GPIO_PIN_RESET); HAL_Delay(1000); HAL_GPIO_WritePin(GPIOC,GPIO_PIN_0,GPIO_PIN_SET); HAL_Delay(1000); 这个时候点击打勾build 成功后准备upload,那个右箭头 但是upload需要安装一些下载可能很慢的东西,比如我卡在tool-stm32duino的安装上 自己下载tool-stm32duino,然后把解压的文件夹拷贝到C:Users$你的用户名$.platformiopackages下 然后就可以正常烧录了 看,它亮了 我好了 |
|
|
|
只有小组成员才能发言,加入小组>>
3310 浏览 9 评论
2991 浏览 16 评论
3492 浏览 1 评论
9055 浏览 16 评论
4086 浏览 18 评论
1174浏览 3评论
603浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
596浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2333浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1894浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 18:33 , Processed in 1.069273 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号