欢迎光临散文网 会员登陆 & 注册

STM32CubeMx GPIO口输出

2021-01-25 18:17 作者:僚机Wingplane  | 我要投稿

        stm32用hal库建立工程通用且方便,用的人也越来越多了,正点原子之前也有hal库的书还有例程,但是正点原子hal库的例程是以调用hal库的形式制作的,没有直接从cube的建立工程开始做起,并且在使用的过程中有根据项目更改过库函数。网上STM32Cube的教程也大多是v4、v5版本,和v6相比很多界面和功能有所变化,所以写了这个。文中部分内容参考正点原子开发指南和网上的文章教程。

工作环境:

STM32CubeMXv6

Keil5

        如果仅仅使用GPIO口执行输入输出的操作,那么RCC时钟,晶振,时钟树和中断都是可以不用配置使用默认的,建立工程后左键点击需要打开的IO口后选择GPIO_OUTPUT或GPIO_INPUT。

        然后打开左侧的下拉框System Core,点击GPIO选项;

        点击需要配置的IO口,配置Configuration中的选项:

GPIO_OUTPUT选项

            GPIO output level:GPIO初始输出电平

            GPIO mode:GPIO模式(开漏输出或推挽输出)

            GPIO Pull-up/Pull-down:GPIO上拉/下拉电阻

            Maximum output speed:输出速率

            User Label:用户命名(选填)

GPIO_INPUT选项

            GPIO mode:GPIO模式

            GPIO Pull-up/Pull-down:GPIO上拉/下拉电阻

            User Label:用户命名(选填)

    点击Project Manager页面,输入工程名和工程位置,选择工具链和IDE为MDK-ARM,版本为5.27;

打开左侧Code Generater菜单勾选Generate peripheral initialization as a pair of'.c/.h'file per peripheral;

最后点击右上角的GENERATE CODE按钮后生成代码。

    生成代码后打开工程文件夹,用Keil5打开工程。

        编译,运行

        此时已经可以点亮小灯了。

        HAL_GPIO_WritePin()函数可以控制IO空输出高电平

        HAL_Delay()函数可以延时,单位ms

        通过在主函数的while循环内组合两者,连接小灯,可以达到小灯闪烁的结果

    此外可以通过反转电平的方式达到相同效果

       HAL_GPIO_ReadPin()函数可以读取IO口电平以进行判断

        

参考资料:

STM32F7开发指南-HAL库版本_V1.1

STM32CubeMx GPIO输入输出实验https://blog.csdn.net/qq_33728095/article/details/97148029

STM32CubeMx GPIO口输出的评论 (共 条)

分享到微博请遵守国家法律