今天开始做一个STM32CubeIDE的第一个项目,首先需要说明的:
- STM32CubeIDE是一个免费的软件
开始第一个项目
在文件菜单中选择NEW -> STM32 Project
这里注意,我又使用WIndows下载了STM32CubeIDE,因为MAC总在要下载工具的地方停止。
可以在Part Number栏直接输入自己的MCU型号。我想在项目中添加从某宝卖得STM32F103C8T6,添加和编译等都没有碰到问题,在ST-LINK这一关出现了问题,总是说校验没有通过,但这个ST-LINK已经在Keil MDK中使用,any way,好在前几天从网上购买了STM32的正品NUCLEO-F103RB, 在这里派上了用场。在最上面的Board Selector中选择这个板子。
板子选择好了,没有在时钟选择上遇到麻烦,进入了工作画面。在这里,出现下面的选项时,我没有选择Yes
可以看到,这个画面和过去看到的STM32CubeMX很相似:
添加代码
在主程序中添加简单的代码,增加一个delay_us和一个delay_ms程序,在主循环中添加下面的程序:
while (1)
{
delay_ms(500);
GPIOB->ODR=0; //全部输出0
GPIOA->ODR=0;
GPIOC->ODR=0;
GPIOD->ODR=0;
delay_ms(100);
GPIOB->ODR=0xffffffff; //全部输出1
GPIOA->ODR=0xffffffff;
GPIOC->ODR=0xffffffff;
GPIOD->ODR=0xffffffff;
}
然后编译,运行,可以看到板子上的灯在闪亮了。一个程序就此完成了。Keil如何是好。下面要做的是从网上去采购一个正版的ST-LINK。
需要多说几句,用NUCLEO-103RB可以编辑外部应用,就是可以使用ST-LINK给其他的板子编程,我选择了这个选项,为STM32F103C8T6编译没有问题,但下载程序还是说校验没有通过,可使用KEIL MDK却可以下载程序。还是不清除是为啥。不知道中国STM32是不是有技术支持没有。
还是多说两句吧,这个STM32CubeIDE的确比较好用,但是不是对于中国的ST-Linker-V2的产品可能还是不能很好的支持。使用某宝的ST-Link-V2产品:
编译时总是出错,显示:
Starting Server with the following options:
Persistent Mode : Disabled
Logging Level : 1
Listen Port Number : 61234
Status Refresh Delay : 15s
Verbose Mode : Disabled
SWD Debug : Enabled
Vendor = 0x55
Error in initializing ST-LINK device.
Reason: ST-LINK: Could not verify ST device! Abort connection.
无法编译下载。好像也没有可以生成HEX文件的地方。继续为大家找原因。有知道的朋友请告知。
今天在网上看到有网友发的用一个命令来实现elf文件转换成hex后缀的程序,程序名:
arm-none-eabi-objcopy.exe,程序大小为:765 kB。执行这个文件可以生成hex的文件,然后用STM32 ST-LINK Utility下载程序可以操作了。这样就可以用STM32CubeIDE为STM32系列的MCU编程了。