小熊派开发笔记-点亮LED灯(基于STM32CubeMX)

本文介绍了如何使用STM32CubeMX v6.3.0和HAL库v1.7.0在Keil5-MDK中创建STM32L431RC的开发环境,并实现LED灯的闪烁。首先,详细阐述了从下载JRE、STM32CubeMX到配置工程的步骤,包括选择外部高速时钟、配置GPIO引脚和时钟树。接着,展示了在Keil5中打开工程、编写基本的LED控制代码并进行编译的过程。最后,讲解了设置下载选项以通过ST-Link下载程序。实验结果显示LED灯按预期闪烁。

环境

  • JRE(Java Runtime Environment)
  • STM32CubeMX v6.3.0
  • HAL 库 L4 v1.7.0
  • Keil5-MDK

环境搭建参考:STM32CubeMX学习记录–安装配置与使用

如果不想去官网下,也可以从我的百度云分享里下载 STM32CubeMX 和 HAL 库

链接:https://pan.baidu.com/s/10MKGKPNQrIxZnuMZvVKqkg
提取码:zjor

创建工程

打开 STM32CubeMX,选择新建一个工程,如下图

新建工程

在输入框中输入 stm32l431rc,选中,然后双击选择中间 LQFP64 的这款,如下图

选择芯片

配置时钟源,这里选择外部高速时钟,如下图

配置时钟源

配置 GPIO 引脚,在原理图上查看 LED 灯的连接情况如下

LED

所以在 STM32CubeMX 中选择配置 PC13 引脚,如下图

配置PC13引脚

配置时钟树,选择 HSE,如下图

配置时钟树

配置工程,如下图

配置工程

最后选择右上角的 GENERATE CODE,即可完成工程的创建

在 Keil5-MDK 中编写代码

STM32CubeMX 生成的代码目录如下

代码目录

进入 MDK-ARM 目录,打开工程,如下图

打开工程

在 main.c 中编写如下代码

  while (1)
  {
    /* USER CODE END WHILE */
	  
	HAL_Delay(500);
	HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);

    /* USER CODE BEGIN 3 */
  }

然后编译整个工程

编译整个工程

最后进行下载设置。点击菜单栏的 Options for Target,如下图

Options for Target

选择 Debug,进行 ST-Link 配置,如下图

进行 ST-Link 配置

选择 reset and fun,如下图

reset and fun

点击确定,OK

最后点击下载,如下图

下载

实验结果

实验结果

### STM32 小熊开发实践与华为云集成 #### 一、硬件准备与初始化 当烧录完成后,开发板会自动复位并启动程序,在LCD屏幕上会出现欢迎信息:“Welcome to IoTCluB! BearPi IoT Develop Board Powerd by Huawei LiteOS! Please wait for system init!”[^1]。 #### 二、嵌入式软件设计 对于STM32F103ZET6的固件开发工作是在Keil环境下完成的。这部分主要负责实现传感器的数据收集、处理以及通过Wi-Fi模块与其他系统的交互等功能[^2]。为了确保应用程序能够顺利编译链接,最终生成的目标文件应当放置于`LiteOS_Lab_STM32\targets\STM32L431_BearPi\GCC\appbuild`路径下[^3]。 #### 三、云端服务对接 本项目选择了华为云作为后台服务器提供商。利用其提供的API接口可以轻松地将本地采集到的信息上传至云端数据库中保存;同时也可以接收来自云端下发的各种指令来调整现场设备的工作状态。具体来说就是把经过初步加工后的传感数值发送给华为云IoT平台,并订阅特定主题的消息队列以便及时响应远程操作请求。 ```python import huaweicloud_iot as iot def connect_to_huawei_cloud(): client = iot.Client( product_key='your_product_key', device_secret='your_device_secret' ) try: client.connect() print('Connected successfully') while True: data = collect_sensor_data() # 收集传感器数据函数 message = { 'id': int(time.time()), 'params': {'temperature': str(data['temp']), 'humidity':str(data['humi'])} } response = client.publish('/sys/{}/{}/thing/event/property/post'.format(product_key,device_name),message) time.sleep(5) except Exception as e: print(e) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Apple_Coco

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值