好了,上一章我们主要讲解了一下STM32CubeMx如何创建工程。这一章我们主要是讲解使用该软件去配置初始化GPIO。
一、准备工作
1、使用我们第一章配置好工程文件。如图
2、准备你需要编程硬件对应的原理图或者PCB,将你需要点亮的灯对应到IO口上去。如图
可知我们需要点亮GPIO PB8对应的LED。
3、准备好硬件。
二、具体操作
1、打开STM32CubeMx工程软件配置所需要的GPIO。在Pinout栏目下如图所示
将PB8配置为Gpio_Ouput模式,意味着PB8这个引脚是作为输出使用。如果设置成Gpio_Input则为输入模式。
2、在Configuration栏目下配置该IO口的功能。
点击Systems下的GPIO进入配置界面。如图所示
①点击我们配置PB8口,下面弹出来五个栏目。
②设置GPIO优先级。
③设置GPIO输出模式(开漏/推挽)。
④设置GPIO上下拉模式(这里默认是下拉模式)。
⑤设置GPIO速度。
⑥设置当前PB8 GPIO的宏定义。
⑦点击OK设置完成。
3、生成工程
点击Project菜单栏选择Generate code,工程生成完毕。
4、验证工程
打开编译工程,在while(1)里面添加LED闪烁程序。代码如下
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration----------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_Delay(1000);
HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin);
}
/* USER CODE END 3 */
}
这样可以实现一个简单的GPIO输出控制。
如果之前设置的为输入模式这里面代码和输出就有区别
输入模式我们需要读取GPIO状态,使用的HAL库函数为HAL_GPIO_ReadPin(LED1_GPIO_Port, LED1_Pin);
如有什么不懂联系加QQ群:1063618791欢迎大家学习交流!