1.所需要的器件与文件
一片STM32F103C8T6,一个ST-LINK烧录器,一个USB-TTL的串口,以及电脑等开发工具
所需文件的下载链接(本文的所有所需文件均在这里):
1.
2.
全部文件如下图所示:
2.初始化操作
首先安装CubeMX
安装好后如下所示(这里的CubeMX似乎需要登录账号后才能正常使用,因此安装好后可能还是需要去他的官网上注册一个账号来登录)
开始初始化操作,选择对应的硬件板
选中C8T6(这里可以点击左边的五角星将它收藏起来)
GPIO选择引脚PC13,设置为GPIO_Output,并设置内部上拉
配置RCC,选择内部的高速晶振时钟,另一个设置为Disable
sys设置如下图所示(这里一定不能忽略,否则你的stm32将只能烧录一次程序):
Analog与Timer暂时没有用到,先不管,设置串口,这里先只开一个串口usart1,设置如下图。串口中断啥的先不管
在上方选到时钟树界面,配置时钟树如下图所示:
再下来选到Project Manager界面,设置如下图所示
勾选如下选项(否则他会将所有的代码添加到main函数内),之后点击右上角的GENERATE CODE即可
生成代码后点击open project就能看到生成的初始化代码文件
3.安装keil,stm32的配置环境,以及vscode
点击安装keil,同时记住自己的安装路径(后面安装环境会用)。这里注意,如果你之前安装过keil,如果可以使用的话那可以不管,但如果无法正常烧录程序,建议全部卸载干净后(包括以前安装的环境包),再重新安装我提供的这个版本。因为只有少数几个版本的keil才支持市场上的大部分烧录器,这个525版本也是我多次使用都没问题的版本。
记住这里的安装路径
点击安装stm32的2个环境包,注意设置安装路径与keil保持一致
注意这里的安装路径是否与前面的一致
接下来还要安装ST-Link的驱动,上下分别是64位与32位的驱动安装包,根据自己的选择安装
接上连线,并接入电脑
点开设备管理器,观察到有方框内的结果后,应该就是驱动安装成功了
此时点开生成的My_Demo程序
这里要勾上一个小勾勾(否则后面串口通信时会出错)
再找到debug,先比对一下你的设置是否跟我这里的一致,没问题的话,就点击这里的setting
选中reset and run,这样每次烧录单片机就是自动执行新的程序
点击左上角的这4个按钮,尝试一下检查,编译,烧录是否正常,这里应该都是没有问题的(这里我自己修改过字体)
这里为了方便之后的编译,我们可以尝试使用vscode这个编译器
安装vscode
安装Keil Assistant这个插件,并点击设置
定位到自己的keil路径
接下来就可以用vscode来编译stm32了
按照下图的操作进行文件的打开(注意左边是第四行)
左边的这两个按键分别是编译与烧录
尝试一下点灯,在主程序里面添加这个一行,因为PC13这个引脚上的灯是低有效,之前开引脚时我们专门设置了上垃,现在我们把它置低(注意你的所有自己的程序只能在 /* USER CODE BEGIN */与 /* USER CODE END */之类的中间添加,否则你再使用一次CubeMX的话,他会把你新加的代码全部扬了)
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);
}
/* USER CODE END 3 */
再次编译烧录,红色电源灯旁边的小灯就会亮了
修改主程序如下所示,这样这个小灯就会成为生命指示灯,闪烁周期为2s,就可以以此观察主程序是否在正常运转
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);
HAL_Delay(1000);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);
HAL_Delay(1000);
}
/* USER CODE END 3 */
串口通信的开启,以及串口的空闲中断DMA设置,留在下一节再介绍。
有任何不足或者遗漏的地方,还望多多指正,谢谢