C语言和汇编实现STM32F103点亮LED

目录

  • 一、芯片准备
    • 1)芯片选取STM32F103C8T6
    • 2)点亮流水灯原理
  • 二、C语言点亮
    • 1)keil创建项目及配置
    • 2)配置环境
    • 3)魔法棒配置
    • 4)编译
    • 5)最后成功结果
  • 三、汇编点亮
  • 四、总结
  • 五、参考链接
  • 六、需要的软件

一、芯片准备

1)芯片选取STM32F103C8T6

材料:STM32最小系统核心板(STM32F103C8T6)+面包板+3只红绿黄LED 搭建电路,使用GPIOB、GPIOC、GPIOD这3个端口控制LED灯(最高时钟2Mhz),轮流闪烁,间隔时长1.34s(这里的间隔时长是实验所得)。

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

2)点亮流水灯原理

寄存器可以存储数据,指令,也可以担任一些特定的功能,stm32板子里由很多寄存器,如果想实现流水灯操作,就需要对相应的引脚进行操作,想对引脚进行操作,就需要对相应的引脚进行时钟使能配置、端口配置(高或低)寄存器配置、端口输出寄存器配置。

1.因为流水灯要操作的引脚都是在GPIO端口的,所以根据系统结构图,属于AHB总线,所以所要用的端口的复位和时间控制都受RCC控制。

C语言和汇编实现STM32F103点亮LED

3.跳到这里,就是外设时钟使能寄存器,,偏移量为0x18,而在前面一个表可以看到起始地址为0x4002 1000,偏移量为0x18,所以该寄存器的地址为0x4002 1018

C语言和汇编实现STM32F103点亮LED
高寄存器:
C语言和汇编实现STM32F103点亮LED

代码如下:

8.这里就可以控制led亮或者灭了,实现流水灯只需增加灯的数量和增加一些延时就行了。

二、C语言点亮

1)keil创建项目及配置

1.打开keil,Project->new μVision Project:

C语言和汇编实现STM32F103点亮LED

2)配置环境

1、设置工程的目标环境,本实验基于STM32F103C8T6,因此在弹出的窗口选择相应的选项,这里没有STM32F103C8T6,所以选择STM32F103C8,点击保存即可:

C语言和汇编实现STM32F103点亮LED
3、鼠标右键单击Source Group 1,具体如下图所示:
C语言和汇编实现STM32F103点亮LED
最后add,创建文件完成!

4.将代码粘贴进.c文件里:

3)魔法棒配置

1.打开魔法棒:

C语言和汇编实现STM32F103点亮LED
3.debug里,将图中改为DARMSTM.DLL和-pSTM32F103C8,OK:
C语言和汇编实现STM32F103点亮LED

来源:死妖阿

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年9月17日
下一篇 2021年9月17日

相关推荐