登录/注册

stm32f103程序

stm32f103程序

更多

以下是一个基于STM32F103的简单LED闪烁程序示例,使用标准外设库(Standard Peripheral Library)开发,代码已添加中文注释:

#include "stm32f10x.h"                  // 包含STM32F10x系列头文件

/**
  * @brief  初始化LED引脚 (PC13, 开发板内置LED)
  * @param  无
  * @retval 无
  */
void LED_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;             // 定义GPIO初始化结构体

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); // 使能GPIOC时钟

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;        // 选择PC13引脚
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  // 推挽输出模式
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 速度50MHz
    GPIO_Init(GPIOC, &GPIO_InitStructure);            // 初始化GPIO

    GPIO_SetBits(GPIOC, GPIO_Pin_13);                 // 初始置高(熄灭LED)
}

/**
  * @brief  主函数
  * @param  无
  * @retval 无
  */
int main(void)
{
    SystemInit();               // 系统时钟初始化(默认使用内部8MHz HSI)
    LED_Init();                 // 初始化LED引脚

    while(1)                    // 主循环
    {
        GPIO_ResetBits(GPIOC, GPIO_Pin_13);  // PC13输出低电平(点亮LED)
        for(int i=0; i<0xFFFFF; i++);        // 简单延时

        GPIO_SetBits(GPIOC, GPIO_Pin_13);    // PC13输出高电平(熄灭LED)
        for(int i=0; i<0xFFFFF; i++);        // 简单延时
    }
}

// 可选的系统异常处理(最小化实现)
void assert_failed(uint8_t* file, uint32_t line) { while(1); }  // 库函数断言失败处理

关键说明:

  1. 硬件连接:假设LED连接在PC13(常见开发板如"蓝色药丸"的核心板)

    • LED正极 → PC13
    • LED负极 → GND(需串联限流电阻)
  2. 时钟配置

    • 默认使用内部8MHz时钟(HSI)
    • 如需外部晶振(HSE),需修改SystemInit()并在RCC配置中使能
  3. 延时函数

    • 示例使用简单for循环延时(非精确)
    • 实际项目建议使用定时器或SysTick实现精确延时
  4. 开发环境

进阶修改:

// 精确延时示例(使用SysTick)
void Delay_ms(uint32_t ms) {
    SysTick->LOAD = 72000 - 1;      // 72MHz下1ms计数
    SysTick->VAL = 0;               // 清空计数器
    SysTick->CTRL = SysTick_CTRL_ENABLE_Msk;
    for(int i=0; i<ms; i++) {
        while(!(SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk));
    }
    SysTick->CTRL = 0;              // 关闭SysTick
}

常见问题排查:

  1. LED不亮:
    • 检查硬件连接(PC13电平:低电平点亮)
    • 确认开发板LED是否接在PC13(部分板卡使用PB12等)
  2. 程序不运行:
    • 检查BOOT0/BOOT1引脚状态(通常BOOT0=0)
    • 确认复位电路正常
    • 检查下载器配置(SWD接口:SWDIO+SWCLK)

如需其他功能(如UART、ADC、PWM等)或使用HAL库,请提供具体需求!

STM32F103VET6

1970-01-01 08:00:00 至 1970-01-01 08:00:00

ARM系列STM32F103芯片的解密方法

本文介绍ARM系列STM32F103芯片的解密方法,其内核是Cortex-M3,内存从16K-512K都有。

2024-02-28 11:20:34

stm32f103 flash模拟eeprom

STM32F103是意法半导体(STMicroelectronics)推出的一款32位单片机系列,该系列芯片具有高性能和丰富的外设接口,广泛应用于工业控制、消费电子、汽车电子等领域。其中

2024-01-09 11:21:36

基于STM32F103的DAC8411驱动程序

基于STM32F103的DAC8411驱动程序,亲测可用,欢迎大家一起交流

资料下载 faddist 2022-08-28 11:21:31

STM32F103芯片FFT程序

STM32F103芯片使用DSP库进行FFT运算的资料与程序。

资料下载 米一样 2022-06-07 16:30:21

基于STM32f103的输入捕获测频率和占空比

基于STM32f103的输入捕获测频率和占空比

资料下载 shyshyshy 2021-08-02 10:10:24

基于STM32f103的FFT频率测试程序下载

基于STM32f103的FFT频率测试程序下载

资料下载 shyshyshy 2021-08-02 10:07:20

STM32F103 CAN模板程序

STM32F103 CAN模板程序

资料下载 luo 2020-11-09 11:08:07

ARM系列STM32F103芯片的解密方法

破解STM32F103芯片的方法

2023-09-19 09:03:40

基于STM32F103单片机设计

情况,基于STM32F103单片机设计一个数字电压表仿真设计。该设计应满足的功能要求为: 1、以STM32单片机为控制核心设计数字电压表;  2、可以测量0~3.3V输入电压值;  3、液晶屏LCD1602

2023-09-10 09:53:04

ch32v103stm32f103的区别

ch32v103与stm32f103的区别  Ch32v103与STM32f103

2023-08-22 15:49:00

STM32F103 GPIO内部电路图讲解

STM32F103 GPIO内部电路图讲解

2023-02-01 16:32:14

基于STM32F103单片机的矩阵按键设计

本实验使用STM32F103单片机,主题代码通用的。

2022-12-09 17:18:46

芯片短缺如何用HK32F103换掉STM32F103

本篇笔记主要记录因为芯片短缺,使用HK32F103换掉了STM32F103的过程和注意事项。 准备工作 准备之前的STM32F103工程。 测试

2021-11-01 14:14:48

stm32f030和stm32f103功能差异

stm32f030和stm32f103功能差异主要表现在哪?

2021-07-22 09:35:47

7天热门专题 换一换
相关标签