【stm32】12月26日学习笔记--------

【stm32】12月26日学习笔记

 

 

 

 

需要:正点原子stm32mini开发板

      Usb-b型下载线

      Mini-usb下载线

      J-link下载器

      母对母杜邦线10

      正点原子光盘资料

 

 

Cortex-M3 采用目前主流 ARM V7-M 架构,相比曾风靡一时的 ARMV4T 架构拥有更加强
劲的性能,更高的代码密度,更高的性价比 

 

STM32 寄存器开发和固件库开发的区别。寄存器开发跟传统的 51 AVR
单片机开发类似,直接操作底层寄存器。开发人员需要掌握相关寄存器的作用,这对于直接从51,AVR 单片机转型而来的开发人员来说,他们更加熟悉底层原理,所以偏向寄存器开发,因为
这样他们的代码更加高速有效,内存利用率更高。但是 STM32 寄存器纷繁复杂,不便于快速
开发项目,所以 ST 推出了一整套固件库,将底层寄存器开发全部封装成库函数,这样使得开
发人员摆脱直接操作寄存器的烦恼,直接操作库函数开发自己的程序,项目开发更加快速,但
是内存利用率稍低。 

一般的应用 2 LED 足够了,在调试代码的时候,使用LED 来指示程序状态,是非常不错的一个辅助调试方法 。ALIENTEK 开发板几乎每个实例都使 用了 LED 来指示程序的运行状态。 

 

编号

实验名字

编号

实验名字

1

跑马灯实验

20

SPI 实验

2

按键输入实验

21

触摸屏实验(支持电容/电阻屏)

3

串口实验

22

红外遥控实验

4

外部中断实验

23

DS18B20 数字温度传感器实验

5

独立看门狗实验

24

无线通信实验

6

窗口看门狗实验

25

PS2 鼠标实验

7

定时器中断实验

26

FLASH 模拟 EEPROM 实验

8

PWM 输出实验

27

内存管理实验

9

输入捕获实验

28

SD 卡实验

10

OLED 实验

29

FATFS 实验

11

TFTLCD 实验

30

汉字显示实验(支持 12/16/24 字体大小)

12

USMART 调试组件实验

31

图片显示实验

13

RTC 实验

32

串口 IAP 实验

14

待机唤醒实验

33

触控 USB 鼠标实验

15

ADC 实验

34

USB 读卡器实验

16

内部温度传感器实验

35

UCOSII 实验 1-任务调度

17

DAC 实验

36

UCOSII 实验 2-信号量和邮箱

18

DMA 实验

37

UCOSII 实验 3-消息队列、信号量集和软件定时器

19

IIC 实验

38

综合实验

 

 

 

1,一款实用的开发板 

2. 两本参考资料, 即《STM32 参考手册》和《Cortex-M3 权威指南》 

3,掌握方法,勤学慎思。 

STM32 的学习和普通单片机一样,基本方法就是:
a) 掌握时钟树图(见《STM32 中文参考手册_V10 版》图 8)。
    任何单片机,必定是靠时钟驱动的,时钟就是单片机的动力, STM32 也不例外,通过时钟树,我们可以知道,各种外设的时钟是怎么来的?有什么限制?从而理清思路,方便理解。 

b)所谓熟能生巧,先要熟,才能巧。如何熟悉?这就要靠大家自己动手,多多练习了,光看/
说,是没什么太多用的,很多人问我, STM32 这么多寄存器,如何记得啊?回答是:不需要全
部记住。我至今也就只记得 STM32 IO 口控制这几个寄存器,因为有规律可循,好记。其他
的一概不记得。 学习 STM32,不是应试教育,不需要考试,不需要你倒背如流。你只需要知道
这些寄存器,在哪个地方,用到的时候,可以迅速查找到,就可以了。完全是可以翻书,可以
查资料的, 可以抄袭的, 不需要死记硬背。掌握学习的方法,远比掌握学习的内容重要的多。 

 

如果遇到问题,可
以在我们的技术论坛:开源电子网: www.openedv.com 提问 

 

 

任何处理器,不管它有多么的高级,归根结底都是要对处理器的寄存器进行操作。但是固件库不是万能的,您如果想要把 STM32 学透,光读 STM32 固件库是远远不够的。你还是要了解一下 STM32 的原理,而这些原理了解了,你在进行固件库开发过程中才可能得心应手游刃有余 .

 

经常有人问到 STM32 ARM 以及 ARM7
是什么关系这样的问题,其实 ARM 是一个做芯片标准的公司,它负责的是芯片内核的架构设
计,而 TI ST 这样的公司,他们并不做标准,他们是芯片公司,他们是根据 ARM 公司提供的
芯片内核标准设计自己的芯片。 

 

 

Libraries 文件夹下面有 CMSIS STM32F10x_StdPeriph_Driver 两个目录,这两个目录包
CMSIS
STM32F10x_StdPeriph_Driver 放的是 STM32 固件库源码文件。 

 

 

 system_stm32f10x.c 和对应的头文件 system_stm32f10x.h 文件的功能是设置系统以及总线时
钟,这个里面有一个非常重要的 SystemInit()函数,这个函数在我们系统启动的时候都会调用,
用来设置系统的整个时钟系统。
stm32f10x.h 这个文件就相当重要了,只要你做 STM32 开发, 你几乎时刻都要查看这个文
件相关的定义。这个文件打开可以看到,里面非常多的结构体以及宏定义。 这个文件里面主要
是系统寄存器定义申明以及包装内存操作,

 

我们 ALIENTEK miniSTM32 开发板采用的 103RCT6 是属于大容量产品,所以我们的启动文件
选择 startup_stm32f10x_hd.s 启动文件到底什么作用,其实我们可以打开启动文件进去看看。
启动文件主要是进行堆栈之类的初始化, 中断向量表以及中断函数定义。启动文件要引导进入
main 函数。  

 

 

对于我们写代码,如果我们只用到了其中的某个外设,我们就可以不
用添加没有用到的外设的库文件。例如我只用 GPIO,我可以只用添加 stm32f10x_gpio.c 而
其他的可以不用添加。这里我们全部添加进来是为了后面方便,不用每次添加,当然这样
的坏处是工程太大,编译起来速度慢,用户可以自行选择。 

 

 

C 语言知识博大精深,也不是我们三言两语能
讲解清楚,同时我们相信学 STM32 这种级别 MCU 的用户, C 语言基础应该都是没问题的。我们
这里主要是简单的复习一下几个 C 语言基础知识点,引导那些 C 语言基础知识不是很扎实的用
户能够快速开发 STM32 程序。同时希望这些用户能够多去复习一下 C 语言基础知识, C 语言毕
竟是单片机开发中的必备基础知识。对于 C 语言基础比较扎实的用户,这部分知识可以忽略不
看 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值