完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
简介
随着物联网近年来飞速的发展,嵌入式软件开发领域的发展也随之有所发展。集成开发环境Integrated Development Environment,简称IDE,在任何软件开发中都是最重要的部分之一。 在以前,用来开发嵌入式应用的IDE通常是MDK Keil、IAR。但是上述IDE都是10年前的水平,从UI界面到稳定性都令人不满。所幸的是,新的IDE终于出现了,叫做PlatformIO。 Platform是基于Visual Studio Code(vscode),利用了vscode强大的扩展extension功能,使得开发者可以在vscode中直接调用gcc、jlink、gdb等进行开发、调试。 PlatformIO只是一个集成开发环境,其本身几乎不包括任何实质性功能,但是其集成了很多了例如编译器、调试器等,主要包括以下:
主页: ![]() 设备管理页面: ![]() ![]() 安装PlatformIO 先安装vscode:https://code.visualstudio.com/ 安装好之后,点击最左侧的工具栏,找到扩展,搜索PlatformIO,点击安装即可,安装好后会让你重启vscode。 PlatformIO作为一个集成开发环境,只有其本身的安装包是托管在vscode官方上的,其他的很多东西都需要从第三方网站进行下载。所以PlatformIO安装过程比较缓慢。 作者注: 为了写这篇文章,我已经去阅读了PlatformIO的源码,从其中扣出了第三方包的下载网站是这里:http://dl.bintray.com/platformio/dl-packages/,并且看到其下载是使用python的request模块进行下载的(关键代码)。 而再google一下,发现可以设置 HTTP_PROXY 和 HTTPS_PROXY 两个环境变量,来设置下载代理。 综上所述,如果你的下载速度过慢,那么你可以直接上面的网站下载第三方包之后拷贝到C:/.platformio目录里面合适的位置中去 或者 需要速度快一点的梯子来做个代理。 (由于合适的位置我也不知道是哪里,所以推荐后者) 新建工程 安装好之后,会提示让你重启vscode,重启之后,即可进入主界面,如下图所示。 ![]()
![]() 手动去第三方网站下 或者 使用梯子代理。 ![]() 编译调试 创建好项目之后,使用快捷键 ctrl+k ctrl+o打开项目文件夹,在./src目录下新建一个main.c文件进行测试,文件内容如下: #include "stm32f1xx_hal.h" static int a = 1; // static char str[50] = "Hello PlatformIO"; void SystemClock_Config(void); int main(void) { HAL_Init(); SystemClock_Config(); while(1) { __NOP(); } } void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; /** Initializes the CPU, AHB and APB busses clocks */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; RCC_OscInitStruct.HSIState = RCC_HSI_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { } /** Initializes the CPU, AHB and APB busses clocks */ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) { } } 然后在每一步都打上一个断点,等一下进行断点调试。 ![]() ; PlatformIO Project Configuration File ; ; Build options: build flags, source filter ; Upload options: custom upload port, speed and extra flags ; Library options: dependencies, extra library storages ; Advanced options: extra scripting ; ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html [env:genericSTM32F103RC] platform = ststm32 board = genericSTM32F103RC framework = stm32cube debug_tool = jlink 最后点击左侧的这个调试按钮切换到调试窗口,点击这个绿色的箭头进行调试。 ![]()
![]() |
|
|
|
只有小组成员才能发言,加入小组>>
2826 浏览 9 评论
2540 浏览 16 评论
3090 浏览 1 评论
8144 浏览 16 评论
3624 浏览 18 评论
2767浏览 6评论
6707浏览 6评论
1531浏览 4评论
524浏览 4评论
1151浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 粤ICP备14022951号 )
GMT+8, 2023-12-1 15:30 , Processed in 0.951547 second(s), Total 77, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:粤 B2-20160233