(STM32基础)STM32点灯程序

这篇具有很好参考价值的文章主要介绍了(STM32基础)STM32点灯程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、寄存器赋值点灯

1、通过参考手册找到RCC时钟使能APB2端口  使能IOPC端口时钟

配置为:0x00000010

stm32点灯程序详解,stm32,单片机,嵌入式硬件,c语言

 2、配置PC13端口模式

stm32点灯程序详解,stm32,单片机,嵌入式硬件,c语言

 CNF 配置为通用推挽输出模式

MODE 配置为输出模式 最大速度50MHz   

所以配置为: 0x00300000

3、配置端口输出寄存器

stm32点灯程序详解,stm32,单片机,嵌入式硬件,c语言

 PC13口给0亮  1 灭   所以给0x00000000亮   0x00002000灭

程序如下:

#include "stm32f10x.h"                  // Device header

int main(void)
{
    RCC->APB2ENR = 0x00000010;
    GPIOC->CRH = 0x00300000;
    GPIOC->ODR = 0X00000000;
    
    while(1)
    {
    
    } 
}

二、库函数点灯

1)点灯前配置函数库

1、库函数源文件 和  头文件  copy到工程文件目录下,misc是内核库函数,其他为内核外的外设库函数

stm32点灯程序详解,stm32,单片机,嵌入式硬件,c语言

 stm32点灯程序详解,stm32,单片机,嵌入式硬件,c语言

 2、在Keil中创建Library组   并添加Library文件夹下的所有文件进去,但是目前的所有文件还没法使用,需要再添加一个文件

stm32点灯程序详解,stm32,单片机,嵌入式硬件,c语言

 3、打开固件库

stm32点灯程序详解,stm32,单片机,嵌入式硬件,c语言

 conf文件用来配置库函数和头文件关系的,另外还有一个参数检查的函数定义,是所有库函数都需要的。

it文件里面存放的是中断(interrupt)函数

三个文件复制粘贴到工程的user目录下

最后需要创建一个宏定义,打开头文件

stm32点灯程序详解,stm32,单片机,嵌入式硬件,c语言

在里面找到条件编译这一项

stm32点灯程序详解,stm32,单片机,嵌入式硬件,c语言

 意思是如果定义:USE_STDPERIPH_DRIVER(标准外设驱动) 使用这个字符串

则 conf头文件生效

复制

USE_STDPERIPH_DRIVER

打开 并粘贴

stm32点灯程序详解,stm32,单片机,嵌入式硬件,c语言

 并 添加头文件目录stm32点灯程序详解,stm32,单片机,嵌入式硬件,c语言

修改组排序

stm32点灯程序详解,stm32,单片机,嵌入式硬件,c语言

到此库函数配置完成

2)库函数点灯

1、配置APB2外设时钟状态;通过函数库的rcc控制函数,右键查看其定义可以知道,函数的形参可以如下stm32点灯程序详解,stm32,单片机,嵌入式硬件,c语言

2、配置端口模式,调用GPIO_Init函数,此函数用结构体函数GPIO_InitTypeDef 配置。

右键查看该结构体的所包含的参数

stm32点灯程序详解,stm32,单片机,嵌入式硬件,c语言

 3、右键相关结构体内变量名,ctrl+f 查找当前变量可设置的参数枚举函数stm32点灯程序详解,stm32,单片机,嵌入式硬件,c语言

stm32点灯程序详解,stm32,单片机,嵌入式硬件,c语言

 并设置配置端口输出模式的结构体相关的三个参数。

4、配置端口输出数据  用  GPIO_SetBits(GPIOC, GPIO_Pin_13);   这表示端口输出1  , ResetBits函数则为输出 0 。

stm32点灯程序详解,stm32,单片机,嵌入式硬件,c语言

到此,恭喜点亮STM32的PC13端口led灯,成功的开始。加油!

补充重点知识点:

1、新建工程的架构

stm32点灯程序详解,stm32,单片机,嵌入式硬件,c语言

stm32点灯程序详解,stm32,单片机,嵌入式硬件,c语言

1、STM32上电时或按下复位键,程序进入复位中断函数,复位中断函数主要调用sys和main函数。main函数后一定是一个死循环,主函数不结束。

2、systeminit函数作用是设置微控制器的启动,初始化嵌入式闪存接口,锁相环,更新系统内核的时钟变量,所以在main函数之前单片机已经执行了一系列操作。

3、启动文件还定义了其他中断,这些中断达到条件自动执行。

4、ST公司的提供的库函数和库函数配置,conf文件用来配置头文件包含关系,库函数通过直接调用函数来间接配置寄存器,这种库函数开发方式更加简洁,高效。

5、外设寄存器描述、内核寄存器描述里面描述的都是寄存器和寄存器每一位的名字、地址信息。文章来源地址https://www.toymoban.com/news/detail-721318.html

到了这里,关于(STM32基础)STM32点灯程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【STM32】基础知识 第一课 单片机简介

    单片机 (Single-Chip Microcomputer) 单品微型计算机, 是一种集成电路芯片. 电脑 vs 单片机: 电脑 单片机 CPU CPU 内存 SRAM 硬盘 Flash 主板 外设 SRAM 静态随机读取器 (Static Random-Access Memory): SRAM 是随机存储器的一种, 属于静态数据, 这类存储器要是维持电源, 里面存储的信息就可以恒常维持

    2024年02月11日
    浏览(99)
  • 【stm32单片机基础】红外NEC协议解码

    红外通信协议是一种基于红外线的传输技术,广泛使用的家电遥控器几乎都是采用的红外线传输技术,由于红外线为不可见光,对环境影响很小,红外线遥控不会影响其他家用电器,也不会影响临近的无线电设备。红外遥控的编码方式目前广泛使用的是: PWM(脉冲宽度调制)的

    2024年02月01日
    浏览(40)
  • 单片机 STM32启动文件详解(汇编语言解析)

    以前讲了固件库,从ST官网下载的固件库里面,有许多的启动文件(汇编语言写的.s文件) 启动文件 说明 startup_stm32f10x_ld.s Low Density 小容量 startup_stm32f10x_md.s Medium Density 中容量 startup_stm32f10x_hd.s High Density 高容量 startup_stm32f10x_xl.s Extra Large Density 超大容量 startup_stm32f10x_cl.s Con

    2023年04月25日
    浏览(63)
  • 单片机STM32看门狗详解(嵌入式学习)

    单片机STM32的看门狗(Watchdog)是一种硬件定时器,用于监控系统的运行状态并在出现故障或死锁时采取措施以恢复正常操作。看门狗的主要功能是定期检查系统是否正常运行,并在系统出现问题时触发复位操作。 STM32系列单片机通常配备了内置的看门狗定时器(通常称为独立

    2024年02月13日
    浏览(63)
  • 【单片机】STM32单片机,RTC实时时钟,STM32F103C8T6,程序,万年历,数字时钟

    我以STM32F103C8T6为例,但STM32F103的RTC是通用的,STM32F103C8T6有一个原理图: https://qq742971636.blog.csdn.net/article/details/131288390 用纽扣电池给VBAT供电(要共地),即可实现掉电后依旧走时的能力。 主要特性(来源于STM32中文参考手册V10.pdf): 记得加标准库文件: 串口接收:

    2024年02月11日
    浏览(56)
  • 【单片机】STM32单片机的各个定时器的定时中断程序,标准库

    高级定时器和普通定时器的区别(https://zhuanlan.zhihu.com/p/557896041): TIM1是高级定时器,使用的时钟总线是RCC_APB2Periph_TIM1,和普通定时器不一样。 timer.c timer.h 调用 timer.c timer.h 调用 timer.c timer.h 调用 timer.c timer.h 调用 timer.c timer.h 调用

    2024年02月11日
    浏览(53)
  • 嵌入式STM32 单片机 GPIO 的工作原理详解

    STM32的 GPIO 介绍 GPIO 是通用输入/输出端口的简称,是 STM32 可控制的引脚。GPIO 的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。 以 STM32F103ZET6 芯片为例子,该芯片共有 144 脚芯片,包括7个通用目的的输入/输出口(GPIO)组,分别为

    2024年02月20日
    浏览(50)
  • CH340进行STM32单片机程序烧录

    目录 代码: 接法: 结束: 刚写完32点灯程序,接下来打算用CH340进行烧录 一个main.c实现点灯,即PA2出低电位 放个仿真图  接下来就是烧录了 用的是CH340进行烧录 CH340usb转ttl CH340 STM32 TXD RXD RXD TXD 3V3 3V3 GND GND 注意这里TXD和RXD是反接的 然后打开flymcu进行配置 port看设备管理器选

    2024年02月05日
    浏览(50)
  • 单片机(STM32,GD32,NXP等)中BootLoader的严谨实现详解

    Bootloader( 引导加载程序 )的主要任务是引导加载并运行应用程序,我们的软件升级逻辑也一般在BootLoader中实现。本文将详细介绍BootLoader在单片机中的实现,包括 STM32、GD32、NXP Kinetis 等等的所有单片机,因为无论是什么样的芯片,它实现的逻辑都是一样的。 注意,本篇文章主

    2024年02月02日
    浏览(60)
  • 基于STM32单片机的密码锁(Proteus仿真、程序)

    由STM32F103单片机最小系统+ 4*4矩阵键盘+LCD1602液晶显示+蜂鸣器+继电器模块 1、采用STM32F103为主控芯片 2、通过4*4矩阵键盘实现密码输入、功能键等排列如下 1     2    3     删除 4     5    6     修改密码 7     8    9     重新输入 返回  0   确认   紧急开锁键 3、每按下一次

    2024年02月07日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包