STM32F103点亮LED流水灯

目录

  • STM32F103C8T6简介
  • 寄存器简介
  • 流水灯原理简述
  • C语言实现
  • 汇编实现
  • 总结
  • 参考

STM32F103C8T6简介

STM32F103C8T6是一款基于ARM Cortex-M 内核STM32系列的32位的微控制器,程序存储器容量是64KB,需要电压2V~3.6V,工作温度为-40°C ~ 85°C。

寄存器简介

寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。寄存器分为基本寄存器和移位寄存器两大类。基本寄存器只能并行送入数据,也只能并行输出。

流水灯原理简述

通过对GPIO端口的初始化配置设置引脚的模式、速率,进而对寄存器的存储数据进行修改。对于确定引脚的值需要写一个16位二进制数。

C语言实现

打开keil,在 project --> new μvision project。选择STM32F103C8:
STM32F103点亮LED流水灯_第1张图片
选择对应环境:
STM32F103点亮LED流水灯_第2张图片
之后勾选Creat Hex File,并在debug中配置与之前仿真调试对应的配置。
STM32F103点亮LED流水灯_第3张图片
之后写入自己的C语言代码:
STM32F103点亮LED流水灯_第4张图片
之后build并运行,会得到hex文件。
在配置好环境后打开FlyMcu,搜索串口并将bps调整至25600,在程序文件中选择对应生成的hex文件,并进行 读器件信息,最后 开始编程
STM32F103点亮LED流水灯_第5张图片
运行可以看到:

汇编实现

新建项目,过程大致与C语言相同,但是在环境勾选时注意不勾选Starup:
STM32F103点亮LED流水灯_第6张图片
之后录入自己的汇编语言:
STM32F103点亮LED流水灯_第7张图片
可以得到运行结果(有些接触不稳,故用手扶住):

总结

整个实验的过程比较多,有时灯闪不能实现可能是引脚接触不良导致。对于FlyMcu与面包板的连接需要多的尝试,可能是环境配置问题,也可能是hex文件等问题。

参考

STM32----GPIO初始化步骤

你可能感兴趣的:(stm32,c语言)