记录HAL库+Cube MX的学习过程,不定期更新……
一、Create a new project
如图,新建工程之后找到自己的芯片型号,双击进入配置界面。
二、Configuration
我们知道,点亮LED的原理就是让其两端有电压差,笔者用的芯片原理图如下,当PA8为低电平时,LED0就能被点亮。
因为我们想让PA8引脚输出为低电平以点亮LED,左移将PA8引脚设为GPIO_Output,设置完成后引脚自动变绿,说明引脚的配置已经完成。
在System view界面中,可以看到System Core地洞有四个选项,分别是DMA(数据传送相关)、GPIO(引脚配置相关)、NVIC(中断相关)、RCC(时钟相关),对应左侧的System Core分类,而其它的选项如Timers只有在配置之后才会出现。
GPIO_Pull up/Pull down选项中,说的是想让引脚上拉还是下拉,上拉的意思是将不确定的信号通过一个电阻钳位在高电平,用于低电平的检测;而下拉的意思是将不确定的信号通过一个电阻钳位在低电平,用于高电平的检测。在这里我们希望引脚检测的是低电平,所以选择pull up上拉。上面还有一个选项GPIO output level,是引脚电平最开始状态的设定,比如选择low引脚开始就是低电平,LED0就会被点亮,只点亮一个LED小灯体现不出它的作用。
二、Generate Code
对工程进行一些简单的设置之后就可以直接生成代码了
三、Coding in MDK
只需要在while()里写一句代码即可:
HAL_GPIO_WritePin(GPIOX, GPIO_PIN_y, GPIO_PIN_RESET); //将PXy引脚状态改为低电平
RESET是引脚状态,SET是置为引脚,引脚被赋值为高电平,RESET就是低电平。
当然也可以点到这个函数的定义,可以清楚地看到这个函数的作用。
四、Final Effect
可以看到,LED0对应的引脚D6已经被点亮了。
五、Expansion
可以利用SET语句配合HAL库的HAL_Delay();函数实现LED灯的闪烁,时间单位是ms,就不在此演示(好吧,主要是我不知道怎么传动图……)