用STM32CubeMX在STM32NUCLEO-F411RE写一个按键控制LD2亮灭
先著名我是菜鸟一枚。。。。
我刚开始接触MX的时候也是按照好多例程做的,自己英文太烂,就没有怎么看懂官方的的文件,导致后来看到好多
感叹号还有红色的叉叉不知道怎么办,就想把这些叉叉和感叹号消除,弄了好两天才弄明白,没有太多卵用,只要知道他的意思就行呢,感叹号的意思是下面有部分功能引脚已经被占用,后面如果假如图中ADC1里的IN5就不能用了,因为已经被我用作 GPIO_INPUT;另外一种
红叉比如I2C3的固定引脚已经被占用一个或两个,说明I2C3不能用;
其次是设置时钟这一块,这一块要根据自己的程序和这个料的时钟资料说明去设置,自己是菜鸟不能误人,可以提供一个博客链接https://blog.csdn.net/ybhuangfugui/article/details/51741923大家可以去看看学习学习
其他博客里有好多从一开设置STM32CubeMX步骤,自己不做多余的话。
上一个程序吧,这个程序的功能是按键按下灯亮,再按下灯灭
MX_GPIO_Init();
/* USER CODE BEGIN 2 */
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);//设置PA5为低电平
HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13);//读取按键PC13的电平
/* USER CODE END 2 /
/ USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
if (HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13)==0)
{
HAL_Delay(10);//延时去抖
if (HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13)==0)
{
HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);
while (HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13)==0);
}
}
}
/* USER CODE END 3 */
}
程序里面有一个语句IF判断,HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5)这个是一个跳转函数,具体解释还是自己去百度吧
新手第一次写,勿喷!!!