
作为一个刚跨进 STM32 坑的土木生前几篇折腾了装软件、点 LED、解芯片锁但总觉得 “对着教程抄步骤” 有点费劲 —— 直到这次试着用豆包当 “实时导师”居然顺顺当当完成了板载 LED 闪烁分享下整个过程一、实验前明确实验的目标实验所使用到的具体芯片型号单片机的原理图等等把实验描述的越详细越好让AI给我们一份新手适用的实验指导过程实验描述使用cubeide软件中的hal库把stm32f103vet6板子上面自带的led灯点亮并使其小灯1秒钟闪烁一次。另外根据原理图原理图可知led灯对应着pb0引脚。向AI提问以为豆包为例我现在需要一份实验的指导过程这个实验的指导过程要适合于刚学stm32新手小白实验的内容是使用cubeide软件中的hal库把stm32f103vet6板子上面自带的led灯点亮并使其小灯1秒钟闪烁一次。另外根据原理图原理图可知led灯对应着pb0引脚这里可以把也发送给豆包可能复杂一些的会识别错误并给出有一定问题的实验指导。请你给我一份详尽的实验指导过程。二、根据AI提供的实验指导过程进行实验个人建议是电脑屏幕分为一部分AI指导的实验流程另一部分是cubeide软件。1、新建 STM32CubeIDE 工程由于f103芯片会存在着锁芯片的问题新建好项目以后第一步先设置debug模式如下图所示。2、根据AI给的指导过程配置系统时钟3、根据AI给的指导过程配置 PB0 引脚为输出模式4、根据AI给的指导过程生成工程代码之前操作熟悉的话可以点击齿轮一样的小玩意儿这就根据之前设置的内容自动生成了代码。5、根据AI给的指导过程编写 LED 闪烁代码AI给的代码这里有给我们注释。我把代码复制过来放在了下方。/* USER CODE BEGIN WHILE */ while (1) { /* 1. 置位PB0引脚高电平如果LED是低电平点亮改为HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET); */ HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET); /* 2. 延时1秒HAL库自带的毫秒延时函数参数为延时时间ms */ HAL_Delay(1000); /* 3. 复位PB0引脚低电平 */ HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET); /* 4. 再延时1秒 */ HAL_Delay(1000); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */注意在注释这里写了如果LED是低电平点亮改为HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);一般的AI给的代码会存在着问题那这次AI给的代码是否可能会存在一定的小问题。我们先不修改AI给我们的代码我们先试着编译烧录程序。看看小灯的闪烁情况再考虑修改代码。6、根据AI给的指导过程将AI提供的代码复制到while里面小锤子编译没有问题把stm32f103vet6单片机通过st-link接入电脑烧录程序查看小灯的闪烁效果。代码烧录好了以后发现小灯开始闪烁。8、对比一下对调一下代码后的实验效果交换HAL_GPIO_WritePin中的SET和RESET。在刚刚的while那里我们对调一下代码试试。原AI给的代码修改后的代码如下/* USER CODE BEGIN WHILE */ while (1) { /* 1. 置位PB0引脚低电平LED是低电平点亮 */ HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET); /* 2. 延时1秒HAL库自带的毫秒延时函数参数为延时时间ms */ HAL_Delay(1000); /* 3. 复位PB0引脚高电平LED是高电平熄灭 */ HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET); /* 4. 再延时1秒 */ HAL_Delay(1000); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */将修改好的代码重新编译烧录进f103vet6查看实验的效果。烧录完毕以后实验效果效果也是小灯在闪烁为什么会效果一样呢可以请教一下AI。AI帮我们分析了原因led小灯闪烁的起始状态不同而已。有问题的小伙伴欢迎在评论区提出自己的意见和想法。本期的文章就暂时更新到此闲了下来会继续更新相关的视频后期文章以及对应的视频。