STM32F103C8T6基础开发教程(HAL库)—LED灯1S周期闪烁

STM32F103C8T6基础开发教程目录

  1. STM32F103C8T6基础开发教程(HAL库)—开发环境配置
  2. STM32F103C8T6基础开发教程(HAL库)—Keil添加注释的快捷键
  3. STM32F103C8T6基础开发教程(HAL库)—点亮第一颗LED灯
  4. STM32F103C8T6基础开发教程(HAL库)—LED灯1S周期闪烁
  5. STM32F103C8T6基础开发教程(HAL库)—LED灯呼吸闪烁
  6. STM32F103C8T6基础开发教程(HAL库)—等级划分LED灯亮度
  7. STM32F103C8T6基础开发教程(HAL库)—按键点亮LED灯
  8. STM32F103C8T6基础开发教程(HAL库)—定时器的使用
  9. STM32F103C8T6基础开发教程(HAL库)—串口发送与接收
  10. STM32F103C8T6基础开发教程(HAL库)—点亮OLED屏幕
  11. STM32F103C8T6基础开发教程(HAL库)—传感器使用
  12. STM32F103C8T6基础开发教程(HAL库)—读写内部FALSH
  13. STM32F103C8T6基础开发教程(HAL库)—LORA点对点通信

STM32F103C8T6基础开发教程(HAL库)—LED灯1S周期闪烁

本节内容

  • LED灯1S周期闪烁

STM32F103C8T6开发板笔者选用笔者团体自行设计的最小系统开发板,以后的章节教程均采用TWRS103B-V1.3作为教学开发板,为了大家更好的快速入门,建议购买支持一下笔者,当然,如果自已手上也有其他STM32F103C68T也可以参考笔者教程进行学习,功能都是一样的!

TWRS103B-V1.3最小系统开发板与传统STM32F103C8T6最小系统开发板区别

TWRSTM32F103C8T6最小系统开发板传统STM32C8T6最小系统开发板
支持USB下载不支持USB下载,需要下载器
PB5自带WS2812可编程RGB彩灯PC13自带可编程普通LED灯
引出PD0、PD1没有引出PD0、PD1
在这里插入图片描述在这里插入图片描述

本节内容要用到的材料

在这里插入图片描述

欢迎进入蒙学长小铺进行采购:淘宝店传送门
本文末尾处提供本节源码下载(免费下载)

1.LED灯1S周期闪烁

1)STM32CubeMX配置

上节已叙述了CubeMX生成工程,编译并烧录HEX文件,本节将不再过多的赘述。

设置PB9为Ouput

在这里插入图片描述

2)Keli5编写代码

上节已叙述了Keli5编写代码过程,编译并烧录HEX文件,本节将不再过多的赘述。

(1)在上节的HAL_GPIO_WritePin函数下面找到HAL_GPIO_WritePin函数,并复制其函数,在while(1)里调用

在这里插入图片描述

(2)在stm32f1xx_hal.c文件的370行代码找到HAL_Delay函数,并复制其函数,在while(1)里调用

在这里插入图片描述

(3)调用如下,第95行,HAL_GPIO_WritePin为电平翻转,其函数有两个参数,第一个参数为要输出的引脚端口,第二个参数为要输出的引脚,第96行,为延时函数,参数为多少,则延时多少毫秒

在这里插入图片描述

(4)编译下载

实验效果

在这里插入图片描述

LED进行1秒周期闪烁,实验完成

  • LED灯1S周期闪烁

本节主要代码

/**
 * Main application entry point.
 */
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)
  {
		HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);	//电平翻转,第一个参数为GPIO端口,第二个参数为GPIO引脚
		HAL_Delay(1000);	//延时1秒,此参数为多少则为多少毫秒,1000MS=1S
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

本节需掌握函数

HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);	//电平翻转,第一个参数为GPIO端口,第二个参数为GPIO引脚
HAL_Delay(1000);	//延时1秒,此参数为多少则为多少毫秒,1000MS=1S

本节资源

百度网盘: 本节源码
提取码:RSXC

  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您可以使用STM32CubeMX来配置STM32F103C8T6的OLED驱动代码。首先,您需要在STM32CubeMX中创建一个新的工程,并选择STM32F103C8T6作为目标芯片。然后,您可以打开I2C接口并生成代码。接下来,您需要对生成的代码进行一处修改,将i2c.c文件中的"GPIO_InitStruct.Pull = GPIO_NOPULL;"替换为"GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;"。这样就可以成功配置STM32F103C8T6的OLED驱动代码了。\[2\]如果您需要更详细的教程,您可以参考正点原子和小蜜蜂笔记在哔哩哔哩上的相关视频教程。\[3\] #### 引用[.reference_title] - *1* *2* [基于STM32CubeMX的stm32f103c6t6液晶0.96OLED显示字母数字汉字图片显示](https://blog.csdn.net/veteran412/article/details/127540347)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [基于HAL库STM32F103C8T6+0.96寸四线OLED+IIC总线协议+STM32CubeMX(附百度网盘下载链接)](https://blog.csdn.net/weixin_45498562/article/details/124591964)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱学习的蒙学长

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

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

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

打赏作者

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

抵扣说明:

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

余额充值