【百问网智能家居---基于单片机最小系统STM32F103C8T6_MINI的入门学习】

这篇博客记录了作者自学STM32单片机的过程,从最小硬件系统分析到单片机内部架构理解,再到通过汇编和C语言操作寄存器及使用库开发。通过四个实例详细讲解了如何操作开发板上的LED灯,包括标准库和HAL库的使用,并介绍了如何使用STM32CubeMX创建工程模板。
摘要由CSDN通过智能技术生成

本人工作之余自学,该博客是为了记录学习过程,以及一些心得。内容如有出错,欢迎大家纠正,谢谢。

学习思路

最小硬件系统

1、 在意法半导体官网,下载数据手册、参考手册和电路原理图;
2、 根据原理图分析硬件,先分析最小系统;虽然STM32有内置时钟源,但是习惯上还是看成最小系统的一部分。下载和启动选择电路根据需求设定。
3、编写程序。
在这里插入图片描述
在这里插入图片描述

单片机内部架构

内核(Cortex-M3)和Debug是由ARM公司设计,其他的都是由半导体芯片厂商根据自身的需求设计,而我们日常的开发主要就是外设的设计。
在这里插入图片描述

常见外设

外设通过外设寄存器,才能控制。
在这里插入图片描述

存储结构

地址范围从0x0000 0000~0XFFFF FFFF,一共4GB,即32位CPU能访问的地址范围。
其中:0x0800 0000~0x0800 FFFF :存放下载的代码;
0x0200 0000~0x3FFF FFFF :内存—代码运行中产生的临时变量;
0x0400 0000~0x5FFF FFFF :外设寄存器;
0x0E00 0000~0XE00F FFFF :内部外设寄存器地址(中断、系统时钟);
在这里插入图片描述

实例一、操作开发板上的用户LED灯

1、 由原理图可知,User LED接在主控芯片引脚PA1串口;
2、 由外设寄存器存储结构图可知端口A(Port A),地址范围是从0x4001 0800~0x4001 0c00,共4个字节大小的地址范围。其中GPIOA有七个寄存器,每个寄存器都是32位。
3、 根据参考手册可知,其中GPIOA有七个寄存器,每个寄存器都是32位,不同寄存器有不同的功能。每个寄存器都有一个偏移地址。
在这里插入图片描述
4、 假设选取偏移地址为0x0C,控制引脚端口输出值(高低电平)的寄存器。由参考手册,可知0~15是可以使用的一共16位,每一位对应端口的一个引脚(GPIO 1就是PA1),而16~31位是预留。
在这里插入图片描述
5、 通过修改寄存器的值,就能控制单片机对应的外设,从而控制外设所连接的模块。

单片机的开发方法

1、 使用汇编操作寄存器—编写汇编代码操作寄存器

实例一:开发板LED灯,间隔1S闪烁

	PRESERVE8
	THUMB

; Vector Table Mapped to Address 0 at Reset
	AREA    RESET, DATA, READONLY

__Vectors       DCD     0
	DCD     Reset_Handler              ; Reset Handler

	AREA    |.text|, CODE, READONLY
                
; Reset handler
Reset_Handler   PROC
				
	; 使能GPIOA 
	LDR R0, =(0x40021000 + 0x18)  ; RCC_APB2ENR
	LDR R1, [R0]
	ORR R1, R1, #(1<<2)
	STR R1, [R0]

	;设置GPIOA_1为输出引脚
	LDR R0, =(0x40010800 + 0)  ; GPIOA_CRL
	LDR R1, [R0]
	ORR R1, R1, #(1<<4)
	STR R1, [R0]

MainLoop
	; 设置GPIOA_1为输出高电平
	LDR R0, 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
stm32f103c8t6_cmsis-dap_swo-master是一个软件项目的名称。其中,stm32f103c8t6是一款基于ARM Cortex-M3内核的单片机型号,它具有丰富的外设和强大的计算性能。cmsis-dap是一种与开发工具链无关的调试接口标准,它可以通过USB接口与主机进行通信,提供调试、编程和数据传输的功能。swo是Serial Wire Output的缩写,它是一种调试技术,可以通过SWO端口将调试信息输出到主机,实现实时跟踪和调试。 stm32f103c8t6_cmsis-dap_swo-master是一个为该单片机和调试技术开发的软件项目。该项目可能包含一些库文件、驱动程序和示例代码,用于支持stm32f103c8t6单片机的开发和调试工作。通过使用cmsis-dap接口和swo调试技术,开发人员可以更方便地进行程序的调试、测试和性能分析。 该项目可能提供如下功能:支持通过USB接口与stm32f103c8t6单片机进行调试和编程;提供一些常用的库函数和驱动程序,简化开发人员的工作;实现通过swo端口将调试信息实时输出到主机,方便进行程序的跟踪和调试。 对于开发人员来说,他们可以参考该项目提供的代码和文档,学习如何使用cmsis-dap接口和swo技术进行单片机的调试和开发。同时,他们也可以根据需要对该项目进行定制和修改,以满足自己的具体需求。 总的来说,stm32f103c8t6_cmsis-dap_swo-master是一个用于支持stm32f103c8t6单片机开发和调试的软件项目,它利用了cmsis-dap接口和swo调试技术,提供了方便、高效的开发环境和调试工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Cara-xl

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

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

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

打赏作者

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

抵扣说明:

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

余额充值