近期拿到了一块基于STM32F103CBT6的板子,CTwingSKIT_BC28。准备通过学习使用这块板子,同时系统学习一下STM32微处理器。下面总结一下本次实验的关键点。
STM32开发环境的搭建
1. 安装keil5 IDE
从网上下载keil5、注册机。安装keil5后,使用注册机进行破解。
2. 下载STM32F1的支持包
安装破解完成keil5后,在界面找到pack installer
3. 在Pack installer中找到F1支持包下载
如果速度比较慢,可以选择离线下载,具体在STM32官网的pack下载网址中。
4. 检查ST-Link是否正常工作
将板子与电脑连接,打开设备管理器,找到端口,找到ST-link,看设备正常工作。若显示警告符号,需要下载STLINK驱动。 驱动安装好后,开发环境搭建完成。
实验:点亮LED
1.使用STM32CubeMX新建工程。
STM32CubeMX是ST意法半导体的主动原创工具,它可以减轻开发的时间和费用。其集成了一个全面的软件平台,支持STM32每一个系列的MCU开发。这个平台包括 STM32Cube HAL(一个 STM32 的抽象层集成软件,确保STM32 系列最大的移植性)。再加上兼容的一套中间件(RTOS、USB、TCP/IP 和图形),所有内嵌软件组件附带了全套例程。 STM32CubeMX的安装 STM32CubeMX的使用
2.用Keil5打开新建的工程
生成的项目文件夹中,MDK-ARM文件中.uvprojx后缀的文件就是keil5项目文件,打开它即可打开工程。
3.编写代码
点亮LED灯只需要使用HAL_GPIO_WritePin()函数。该函数可以令GPIO的pin输出高电平或低电平。然而,究竟是输出高电平还是低电平能点亮LED灯,需要查看原理图才能知道。 上图是STM32F1的原理图,可以看到PB2,PB10,PB11,PB12,PB13, PB14与LED1和LED2的红、蓝、绿灯模块相连,查看相应模块图。 上述原理图说明,当MCU对应IO口置为低位的时,二极管导通。因此,当IO口为低位时,LED灯点亮。 在main.c文件中,在main函数的 while(1)函数中,写下如下代码:
HAL_GPIO_WritePin(LED1_RED_GPIO_Port,LED1_RED_Pin,GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED1_GREEN_GPIO_Port,LED1_GREEN_Pin,GPIO_PIN_SET);
HAL_GPIO_WritePin(LED1_BLUE_GPIO_Port,LED1_BLUE_Pin,GPIO_PIN_SET);
HAL_GPIO_WritePin(LED2_RED_GPIO_Port,LED2_RED_Pin,GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED2_GREEN_GPIO_Port,LED2_GREEN_Pin,GPIO_PIN_SET);
HAL_GPIO_WritePin(LED2_BLUE_GPIO_Port,LED2_BLUE_Pin,GPIO_PIN_SET);
4.烧录代码
点击图标对Option for Target 的Dubug选项进行修改。(图上选的是ST-LINK)
点击Settings->Flash Download勾选 Reset and Run选项。这样程序下载后自动启动运行,不用再按一下复位或者重新上电才能运行。
5. 实验效果
|