IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> stm32g431rbt6 流水灯 国信长天蓝桥杯嵌入式 HAL库 串口配置 入门 -> 正文阅读

[嵌入式]stm32g431rbt6 流水灯 国信长天蓝桥杯嵌入式 HAL库 串口配置 入门

?初学G431这块板子的时候,用的是STM32cubeMX 和keil-MDK ,在百度上搜到的全是标准库的代码,但是cubeMX用的是HAL库 代码很不一样,而且对于引脚的初始化,标准库的方式需要手动进行配置,但如果使用cubeMX的话,所有初始化配置都由代码转变成可视化图形。

使用这两个软件进行开发

?G431的板子上自带了DAP转串口,只要接上电脑就可以使用(win10);

?在写流水灯代码之前 我们要下载G431的固件包 这些网上教程其实已经非常详细了。

下面说说几个要注意的地方,

?一定一定要学会查产品手册,因为我们想要控制LED灯,就必须知道控制LED的引脚是哪几个

可以看到板子上的八个LED灯被引脚PC8-PC15控制,下一步就可以打开cubeMX进行配置了

?打开cubeMX,按步骤操作

选择相应芯片

?依次选择PC8-PC15引脚为GPIO_OUTPUT(对应LD1-LD8)

设置sys为sw模式,这里不懂跟着做就ok

?设置项目名称以及调整开发环境为MDK-ARM,完成后点击GENERATE CODE创建工程文件

?在stm32cube内的设置在main.c内已经初始化完毕,双击打开

这里面已经写好了所有GPIO初始化代码,我们只需要写上用户自己的代码即可

用户个人代码一定要在这两行注释之间进行编写,否则再次通过stm32cube修改初始化配置后,个人代码将被覆盖删除

?

用户代码如下

使用HAL_GPIO_WritePin()函数对引脚的输出电平进行控制,分析产品手册中电路可知,低电平时LED点亮,高电平时LED熄灭

使用HAL_Delay()进行延时 ?具体语法可以查看stm32g4xx.gpio.c文件查看。

?用户代码在末尾有

?

?

?

这里需要调用两个函数 HAL_GPIO_WritePin()和 HAL_Delay()

HAL_GPIO_WritePin()的作用是改变引脚输出的电平。

HAL_Delay()的作用是延时 单位是毫秒;


代码编写完成后,点击bulid按钮进行编译,如程序编写无错误,编译完成后即可烧录至电路板中运行

?这里讲一下debug的配置

点击魔术棒后 选择debug??

?在下拉菜单中选择DAP

?然后点击旁边的settings按钮,可以看到我们的板子,选择flash download

?勾上这个,这样程序一下载就可以自己跑,不用手动按复位键

?设置好这些就可以直接下载程序了。



附上流水灯代码(写在while(1)里面):

HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8,0);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_9,1);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_10,1);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_11,1);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_12,1);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,1);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_14,1);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,1);
HAL_Delay(1000);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8,1);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_9,0);
HAL_Delay(1000);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_9,1);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_10,0);
HAL_Delay(1000);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_10,1);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_11,0);
HAL_Delay(1000);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_11,1);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_12,0);
HAL_Delay(1000);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_12,1);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,0);
HAL_Delay(1000);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,1);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_14,0);
HAL_Delay(1000);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_14,1);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,0);
HAL_Delay(1000);
?

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-07-17 12:06:30  更:2021-07-17 12:07:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/7 17:31:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码