单片机(simple chip microcomputer)概论、51单片机、MCS-51单片机、STM32、ARM

catalogue

1. 单片机概论
2. 51单片机
3. MCS-51单片机
4. QX-MINI51开发板(STC89C52芯片)
5. STM32单片机
6. stm32f103zet6开发板实验

 

1. 单片机概论

0x1: 仿真器

单片机应用系统的软硬件调试需要专门的开发工具,称为"单片机开发系统"或"仿真机"。常用的开发方式是把开发系统(例如PC)中的CPU和RAM暂时出借给用户系统,利用开发系统对用户系统的软硬件进行调试(又称仿真),然后将调试好的程序固化到用户系统的单片机内或固化到EPROM中,恢复用户系统中的CPU和RAM。对独立的用户系统进行试运行,若满足设计要求,则开发完成

0x2: JTAG仿真

一些新型的SOC单片机都具有在线仿真功能,这些单片机都配置了JTAG接口(Joint Test Action Group 联合测试行动小组)是一种国际标准测试协议,主要用于芯片内部测试

0x3: 电脑仿真: Keli

自从有了单片机也就有了开发系统,随着单片机的发展开发系统也在不断发展。 keil是一种先进的单片机集成开发系统。它代表着汇编语言单片机开发系统的最新发展,首创多项便利技术,将开发的编程/仿真/调试/写入/加密等所有过程一气呵成,中间不须任何编译或汇编

1. 可以仿真63K程序空间,接近64K的16位地址空间
2. 可以仿真64Kxdata空间,全部64K的16位地址空间
3. 可以真实仿真全部32条IO脚
4. 完全兼容keilC51 UV2调试环境,可以通过UV2环境进行单步、断点、全速等操作
5. 可以使用C51语言或者ASM汇编语言进行调试
6. 可以非常方便地进行所有变量观察,包括鼠标取值观察即鼠标放在某变量上就会立即显示出它此的值
7. 可选使用用户晶振,支持0 ~ 40MHZ晶振频率
8. 片上带有768字节的xdata,您可以在仿真时选通使用他们,进行xdata的仿真
9. 可以仿真双DPTR指针
10. 可以仿真去除ALE信号输出
11. 自适应300-38400bps的所有波特率通讯
12. 体积非常细小,非常方便插入到用户板中。插入时紧贴用户板,没有连接电缆,这样可以有效地减少运行中的干扰,避免仿真时出现莫名其妙的故障
13. 仿真插针采用优质镀金插针,可以有效地防止日久生锈,选择优质圆角IC插座,保护仿真插针,同时不会损坏目标板上的插座
14. 仿真时监控和用户代码分离,不可能产生不能仿真的软故障
15. RS-232接口采用MAX202集成电路,串行通讯稳定可靠

 

2. 51单片机

51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力
可以这么说,51单片机是一个大类的代号,或者说是一个工业标准,有很多类型的单片机都叫51单片机
0x1: 主要产品

1. Intel(英特尔)
    1) 80C31
    2) 80C51
    3) 87C51
    4) 80C32
    5) 80C52
    6) 87C52等
2. ATMEL(艾德梅尔)
    1) 89C51
    2) 89C52
    3) 89C2051
    4) 89S51(RC)
    5) 89S52(RC)等
3. Philips(飞利浦)
4. 华邦
5. Dallas(拉达斯)
6. Siemens(西门子)
7. STC(国产宏晶)单片机
    1) 89c51
    2) 89c52
    3) 89c516
    4) 90c516等

Intel 80C51

0x2: 基本功能

1. 8位CPU
2. 4kbytes程序存储器(ROM)(52为8K)
3. 128bytes的数据存储器(RAM)(52有256bytes的RAM)
4. 32条I/O口线
5. 111条指令,大部分为单字节指令
6. 21个专用寄存器
7. 2个可编程定时/计数器
8. 5个中断源,2个优先级(52有6个)
9. 一个全双工串行通信口
10. 外部数据存储器寻址空间为64kB
11. 外部程序存储器寻址空间为64kB
12. 逻辑操作位寻址功能
13. 双列直插40PinDIP封装
14. 单一+5V电源供电
15. CPU: 由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器
16. RAM: 用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据
17. ROM: 用以存放程序、一些原始数据和表格
18. I/O口: 四个8位并行I/O口,既可用作输入,也可用作输出
19. T/C: 两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式
20. 五个中断源的中断控制系统
21. 一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信
22. 片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最佳振荡频率为6M—12M

0x3: 主要特点

1. 单片机的存储器ROM和RAM是严格区分的
    1) ROM称为程序存储器,只存放程序、固定常数及数据表格
    2) RAM则为数据存储器,用作工作区及存放用户数据
2. 采用面向控制的指令系统,为满足控制的需要,单片机有更强的逻辑控制能力,特别是单片机具有很强的位处理能力
3. 单片机的I/O引脚通常是多功能的,由于单片机芯片上引脚数目有限,为了解决实际引脚数和需要的信号线的矛盾,采用了引脚功能复用的方法,引脚处于何种功能,可由指令来设置或由机器状态来区分
4. 单片机的外部扩展能力很强,在内部的各种功能不见不能满足应用需求时,均可在外部进行扩展(如扩展ROM、RAM、I/O接口、定时器/计数器、中断系统等),与许多通用的微机接口芯片兼容,给应用系统设计带来了极大的便利

Relevant Link:

http://baike.baidu.com/link?url=0uzotpgtZzsouWvmT6blpiAkdCBeFnyM-gjZsfRookcBJN9Um-Sg5txm-3aWRnRScUs-ns9hNyB-_X0NO2u5Ba
http://wenku.baidu.com/link?url=sHy3TuzS6BCAmJHbrfnwv0c-gEHo0PHgmpGsvggSPBxYvavz9jInXD8k1rNkoMGAOrk46Q49vE_Z6sNzU8eNQMsYrbjb7gzeewfvFC1CX7

 

3. MCS-51单片机

MCS51是最早也是最标准的51系列,现在所说的MCS51就是指51系列,也经常作为51系列的代名词,最早由intel公司出品,其意义在于确定了51的标准,后面的所有51都是沿用了这个标准并加以延伸。
准确的说,MCS51不是一个具体型号,而是整一个8位单片机的系列(有8031、8051(典型产品)、8751等),与之并列的是AVR,PIC等知名8位单片机

0x1: 结构特点

1. 就CPU结构而言,MCS系列单片机在数据RAM区开辟了一个寄存器工作区(内存区特定区域划分作为寄存器使用,在现代VMP上也有类似思路),该区共有4组,每组8个寄存器,共可提供32个工作寄存器。另外在RAM的高端(80H ~ FFH)还有21个特殊功能寄存器SFR,SFR使得单片机系统的功能得到很大的扩展,由于SFR的作用,使得输入输入口衍生出更多的功能,而且,利用SFR可以完成对定时器、串行口、中断逻辑的控制 

2. MCS系列单片机把程序存储器和数据存储器在空间上分开,采用不同的寻址方式
    1) 用PC指向程序存储器
    2) DPTR指向数据存储器
采用这种结构主要是为了满足工业控制的需要

3. MCS系列单片机的输入/输出接口在程序控制下具有第二功能,可由程序员灵活选择
4. MCS系列单片机内部具有全双工的串行接口,可同时进行收发,内部有两个物理上独立的接收、发送缓冲器
5. MCS系列单片机内部有专门的位处理机,具有很强的位处理能力

0x2: 内部结构

1. CPU: 单片机的核心是CPU,CPU的功能是产生控制信号,控制数据的传送,并对输入数据进行算术逻辑运算以及位操作。CPU内部包含了
    1) 运算器: 包含了
        1.1) 算术/逻辑部件ALU(Arithmetic Logic Unit): 由加法器和其他逻辑电路组成,用于完成二进制数的四则运算以及布尔代数的逻辑运算。此外通过对运算结果的判断,影响PSW的相关位
        1.2) 累加器ACC(Accumulator): 是一个8位寄存器,通过暂存器和ALU相连,它是CPU中最繁忙的寄存器。在进行算术/逻辑操作时,运算器的一个输入多为ACC的输出,而运算器的运算结果大多要送到ACC中
        1.3) 暂存器
        1.4) 程序状态字寄存器PSW(Program Status Word): 是8位的寄存器,用于作为程序运行的状态标志,它为单片机确定程序的下一步运行方向提供了依据
        1.5) BCD码运算调整电路布尔处理器
        1.6) 通用寄存器B
        1.7) 专用寄存器

    2) 控制器: 控制器是用来统一指挥和控制单片机工作的部件,它的功能是接受来自存储器中的逐条指令,进行指令译码,并通过定时和控制电路,在规定的时刻发出各种操作所需的控制信息以及CPU所需的控制信号,使得个部分协调工作,完成指令规定的各种操作,它包含
        2.1) 程序计数器PC: 16位专用寄存器,用来存放与指示下一条要执行的指令的地址,会不断自增
        2.2) 指令寄存器
        2.3) 指令译码器: 当程序指令送入指令译码器后,由译码器对该指令进行译码,把指令转换成所需的电信号,CPU根据译码器提供的电平信号(0101..01),定时产生执行该指令所需的各种控制信号使计算机正确执行程序所要求的各种操作
        2.4) 数据指针寄存器DPTR: 和PC一样,也是16位寄存器,它主要用来存放16位地址,作间址寄存器使用,可对64K的外部RAM和I/O口进行寻址
        2.5) 堆栈指针SP: SP在片内低128字节(07H ~ 7FH)开辟栈区,并随时跟踪栈顶地址,按照先进后出的原则存储数据。复位开机后,单片机的栈底地址是07H,故数据的入栈是从08H开始的(即工作寄存器1区的R0)
        2.6) 地址译码器
        2.7) 地址缓冲器
    3) 布尔处理器等

2. 存储器: MCS-51单片机的存储器和一般微机的存储器配置不同,一般微机通常只有一个逻辑空间,可以随意安排ROM或RAM,访问存储器时,一个地址对应唯一的存储单元(可以是ROM也可以是RAM)。而MCS-51单片机在物理结构上有4个存储空间
    1) 片内程序存储器空间: 程序存储器是用于存放编号的程序和表格常数,在程序存储器中,有6个单元具有特殊功能
        1.1) 0000H: 复位后PC指向0000H(通常是一个跳转指令)
        1.2) 0003H: 外部中断0入口地址
        1.3) 000BH: 定时器T0溢出中断入口地址
        1.4) 0013H: 外部中断1入口地址
        1.5) 001BH: 定时器T1溢出中断入口地址
        1.6) 0023H: 串行口中断入口地址
    2) 片外程序存储器空间
    3) 片内数据存储器空间: 用于存放运算的中间结果,数据暂存和缓冲
    4) 片外数据存储器空间

3. 专用寄存器SFR(Special functional register): MCS-51有21个专用寄存器(特殊功能寄存器),离散地分布在片内RAM的高128字节地址(80H ~ FFH)中
4.  输入/输出口 P0、P1、P2、P3
    1) P0口: P0口是一个漏极开路的8位准双向I/O口,每位能驱动8个LS型TTL负载,当P0口作为输入口使用时,应先向口锁器写"1",这就是准双向的含义。在CPU访问片外存储器时,P0口是分时提供低8位地址和8位数据的复用总线
    2) P1口: P1口是一个内部带上拉电阻的8位准双向I/O口,P1口的每一位可驱动4个LS型的TTL负载  
    3) P2口: P2口是一个内部带上拉电阻的8位准双向I/O口,P2口的每一位可驱动4个LS型的TTL负载。在访问片外存储器时,它输出高8位地址
    4) P3口: P3口是一个内部带上拉电阻的8位准双向I/O口,P3口的每一位可驱动4个LS型的TTL负载。P3口还有第二功能
        4.1) P3.0: RXD(串行输入口)
        4.2) P3.1: TXD(串行输出口)
        4.3) P3.2: INT0(外部中断0输入口)
        4.4) P3.3: INT1(外部中断1输入口)
        4.5) P3.4: T0(定时/计数器T0的外部输入口)
        4.6) P3.4: T1(定时/计数器T1的外部输入口)
        4.7) P3.6: WR(片外RAM写选通控制输出口) 
    4.8) P3.7: RD(片外RAM读选通控制输出口)

0x3: 震荡电路和时钟电路

MCS-51单片机的震荡电路和时钟电路一起构成了单片机的时钟方式。MCS-51单片机的内部有一个高增益的反相放大器,用于构成振荡器。反相放大器的输入为XTAL1,输出为XTAL2,在XTAL1和XTAL2两端跨接石英晶体及两个补偿电容就可以构成稳定的自激多谐振荡器

MCS-51也可以使用外部震荡脉冲信号,由XTAL2输入,直接送到内部始终电路。由于XTAL2端不是TTL电平,故需外接上拉电阻

0x4: CPU时序及有关概念

CPU执行指令的一系列动作都是在时序电路的控制下一拍一拍(每次震荡产生一个电平波动)进行的。执行一条指令需要多长时间则已机器周期为单位。每一个机器周期是指CPU访问存储器一次所需的时间,如: 取指令、读存储器、写存储器等

1. 振荡周期: 振荡周期是计算机中最基本的时间单位,它是提供定时信号的振荡源的周期(晶振)
2. 时钟周期(状态周期/状态时间S): 它是振荡周期的2倍,分为P1节拍和P2节拍
    1) P1节拍通常完成算术逻辑操作
    2) P2节拍完成内部存储器间的传送
3. 机器周期: 一个机器周期由6个状态(12个震荡脉冲)组成
4. 指令周期: 执行一条指令所占用的时间称为指令周期,其通常由1~4个机器周期组成

0x5: 输入/输出(I/O口结构)

1. P0口

P0口由一个锁存器,两个三态输入缓冲器和输出驱动电路组成。在访问外部存储器时,P0口是一个真正的双向口,当P0口输出地址/数据信息时,CPU内部发控制电平"1"打开与门,又使模拟开关MUX把地址/数据信息经反相器和T1接通,输出的地址/数据信息即通过与门去驱动T1,又通过反相器去驱动T2,使两个FET构成推拉输出电路

2. P1口
P1口也是一个准双向口,用作通用I/O口

3. P2口
P2口某位的结构与P0口类似,有MUX开关

4. P3口
P3口是一个多功能端口

0x6: 指令系统

MCS-51单片机总共有111条指令

1. 单字节指令: 49条
2. 双字节指令: 45条
3. 三字节指令: 17条

指令字节越长,所占内存越多。但执行时间的长短只取决于执行该指令需要多少机器周期

Relevant Link:

http://www.leiphone.com/appnews/201606/axsOSvKWy2ZZdzs9.html

 

4. QX-MINI51开发板(STC89C52芯片)

开发板是将主控芯片加上外围电路、接口这些东西都提前组合焊接好打包提供给用户,用户可以直接基于该平台进行编程,而无需进行额外的电路焊接,QX-MINI51单片机开发板自带MCU(相当于CPU)为STC89C52,采用40P锁紧IC座设计,只需更换MCU就能达到跨平台的目的,支持

1. 51系列单片机
    1) STC89系列
    2) 90系列
    3) 10系列
    4) 11系列
    5) 12系列
2. AT89S51
3. AT89S52
4. AVR
    1) ATMEGA16
    2) ATMEGA32

Relevant Link:

https://item.taobao.com/item.htm?id=41542952683

 

5. STM32单片机

STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核(ST's product portfolio contains a comprehensive range of microcontrollers, from robust, low-cost 8-bit MCUs up to 32-bit ARM-based Cortex®-M0 and M0+, Cortex®-M3, Cortex®-M4 Flash microcontrollers with a great choice of peripherals. ST has also extended this range to include an ultra-low-power MCU platform)。按内核架构分为不同产品

1. STM32F103"增强型"系列: 增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品
2. STM32F101"基本型"系列: 基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是32位产品用户的最佳选择。两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。时钟频率72MHz时,从闪存执行代码,STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz
3. STM32F105
4. STM32F107"互联型"系列

0x1: 历史

1. STM32F101

2. STM32F103 ARM32位Cortex-M3 CPU

STM32F1系列属于中低端的32位ARM微控制器,该系列芯片是意法半导体(ST)公司出品,其内核是Cortex-M3

1. 内核
    1) ARM 32位的Cortex-M3
    2) 最高72MHz工作频率,在存储器的0等待周期访问时可达1.25DMips/MHZ
    3) 单周期乘法和硬件除法
2. 存储器
    1) 从32K到512K字节的闪存程序存储器(STM32F103XXXX中的第二个X表示FLASH容量,其中
        1.1) "4"=16K
        1.2) "6"=32K
        1.3) "8"=64K
        1.4) B=128K
        1.5) C=256K
        1.6) D=384K
        1.7) E=512K
    2) 最大64K字节的SRAM
3. 电源管理
    1) 2.0-3.6V供电和I/O引脚
    2) 上电/断电复位(POR/PDR)
    3) 可编程电压监测器(PVD)
4. 4 ~ 16MHZ晶振振荡器
    1) 内嵌经出厂调教的8MHz的RC振荡器
    2) 内嵌带校准的40KHz的RC振荡器
    3) 产生CPU时钟的PLL
    4) 带校准的32KHz的RC振荡器
5. 低功耗
    1) 睡眠、停机和待机模式
    2) Vbat为RTC和后备寄存器供电
6. 模数转换器
    1) 2个12位模数转换器,1us转换时间(16个输入通道)
    2) 转换范围: 0至3.6V
    3) 双采样和保持功能
    4) 温度传感器
7. DMA
    1) 2个DMA控制器,共12个DMA通道
        1.1) DMA1有7个通道
        1.2) DMA2有5个通道
    2) 支持的外设
        2.1) 定时器
        2.2) ADC
        2.3) SPI
        2.4) USB
        2.5) IIC
        2.6) UART
    3) 112个快速I/O端口(仅Z系列有超过100个引脚)
    4) 26/37/51/80/112个I/O口,所有I/O口一块映像到16个外部中断: 几乎所有的端口均可容忍5V信号
8. 调试模式
    1) 串行单线调试(SWD)
    2) JTAG接口
    3) 8个定时器
    4) 3个16位定时器,每个定时器有4个用于输入捕获/输出比较/PWM或脉冲计数的通道和增量编码器输入
    5) 1个16位带死区控制和紧急刹车,用于电机控制的PWM高级控制定时器
    6) 2个看门狗定时器(独立的和窗口型的)
    7) 系统时间定时器: 24位自减型计数器
    8) 9个通信接口
    9) 2个I2C接口(支持SMBus/PMBus)
    10) 3个USART接口,支持1) ISO7816接口、2) LIN、3) IrDA接口和调制解调控制
    11) 2个SPI接口(18M位/秒)
    12) CAN接口(2.0B主动)
    13) USB 2.0全速接口
9. 计算单元: CRC计算单元,96位的新批唯一代码
10. 封装: ECOPACK封装

Relevant Link:

http://baike.baidu.com/link?url=bCrb1QIijITvj16PJNKXqprVMEwp_lqjFzT_IzXyb9pokKepVmSCbWgRLPhNwS4GzI870yJ2E4UnASIJUoXwCK
http://baike.baidu.com/link?url=Me27b3rNzzhLqAezjtC9iGrlEpx4s35f9Ev-ql_NcvhvhRNMygtqdmb-JTRtHuSzQLBrqCrB6ZOMsp_2SCFHIa
http://wenku.baidu.com/link?url=SaqYXz8FAmdCDBspRmKoqUetkOszWB8r2ka9uLbTkEU4vmhyduLixd6SXexBygqsDdC04jA7UT8kSrPeM2MkmM4x330onAjTcR_anWLDRg7

0x3: STM32程序下载(烧录)方式

一共可分为三大类

1. JTAG、ULINK、SWD: 通过外部调试下载工具 
2. ISP: ISP是STM32自带的 bootloader,不同的芯片不一样,它是存储在 FlASH地址 0x00000000 位置(ROM区域)。而用户程序放在 0x08000000 起始 
    1) USART 
    2) USB  
3. IAP: 用户自己定义(可以用任何接口写入程序): IAP 是用户自定义的,一般都是在 0x08000000 位置  用户程序放在 0x080x000 起始<用户自己定义>
    1) USART
    2) USB
    3) SD
    4) SPI
    5) I2C 

1. JTAG

2. ISP

STM32三种启动模式对应的存储介质均是芯片内置的,它们是

1. 用户闪存: BOOT1=x、BOOT0=0,芯片内置的Flash,即主存储器Flash,用户将程序下载(烧录)到单片机中后,代码就保存在用户闪存中,以后单片机上电或者复位后PC执行流会自动从片内Bootloarder(ISP程序)中跳转到这里开始执行
2. SRAM: BOOT1=1、BOOT0=1,芯片内置的SRAM 区,就是内存 
3. 系统存储器: BOOT1=0、BOOT0=1,芯片内部一块特定的区域,叫做系统存储器。芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区,正是因为有这个区的存在,STM32(包括arduino)才能够支持ISP烧录

在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序

1. BOOT1=x  BOOT0=0  从用户闪存启动,这是正常的工作模式 
一般BOOT0 和BOOT1 跳线都跳到0(GND),即正常的从片内Flash运行,只是在ISP下载的情况下,需要设置BOOT0=1,BOOT1=0 ,下载完成后,把BOOT0 的跳线接回0,这样系统可以正常运行了

2. BOOT1=0  BOOT0=1  从系统存储器启动,这种模式启动的程序功能由厂家设置

3. BOOT1=1  BOOT0=1  从内置SRAM 启动,这种模式可以用于调试 
要注意的是,一般不使用内置SRAM 启动(BOOT1=1 BOOT0=1),因为SRAM 掉电后数据就丢失。多数情况下SRAM 只是在调试时使用,也可以做其他一些用途。如做故障的局部诊断,写一段小程序加载到SRAM 中诊断板上的其他电路,或用此方法读写板上的Flash 或EEPROM 等。还可以通过这种方法解除内部Flash 的读写保护,当然解除读写保护的同时Flash 的内容也被自动清除,以防止恶意的软件拷贝

3. IAP

Relevant Link:

http://wenku.baidu.com/link?url=ui8jQE7QSU_0J_kj8j9xTkuVDckzrSCRpW4uqRVofe53K06Ult85ZL9RB6b1OoHNMj46p8njDHEn06yuMqsj_Vil8xnTnDP6jgKKNh6uvqS

 

6. stm32f103zet6开发板实验

0x1: 电路图

0x2: 硬件功能

1. 使用Cotex-M3核芯片,STM32F103ZET6,
2. 144P引脚
3. 外部晶振8M,时钟晶振32768Hz
4. 标准20P 插座,JTAG接口,用于Jlink、Ulink、ST-Link等下载调试程序
5. 标准4P插针,SWD接口,使用2线通信方式调试下载程序
6. 所有I/O口引出插针,方便扩展实验
7. USB-TTL串口转换电路,实现USB接口串口通讯
8. 自动下载适配电路,使用串口下载无需频繁切换,一键下载
9. MAX232转换电路,适用于外接串口线
10. 一体化红外接收头,用户红外遥控接收功能
11. DS18B20插座,直接插入芯片即可实现数字测温功能
12. 带时钟后备电池,保持时钟及重要信息掉电不丢失
13. EEPROM芯片24c02,存储常用用户信息,使用IIC通讯
14. FLASH芯片W25Q64,8M存储器,可以存储图片、系统数据等多种信息,相当于小SD卡
15. SPI模式SD卡座,使用TF卡,使用经典的SPI通讯
16. SDIO模式SD卡座,使用TF卡,专用的SDIO接口,高速,稳定。
17. RF24L01插座,用于测试无线通讯(最少需2台机器配套使用)
18. 3路普通按键输入功能,人机接口
19. 1路唤醒按键,用于从低功耗或者待机模式唤醒
20. 2路用户LED灯,做基本的状态、运行指示
21. 1路USB设备接口,用于调试USB设备功能,如读卡器、usb转串口功能
22. TFT彩屏液晶接口,包含触摸屏接口,直接插入配套屏幕可使用
23. 摄像头预留接口,配套摄像头模块实现视频演示功能
24. 1路蜂鸣器
25. 1路触摸按键功能
26. 自带自恢复保险丝,保护电脑不受损坏
27. 复位按键
28. 电源指示灯
29. BOOT启动选择插针
30. VREF参考电压选择插针
31. CAN,USB切换插针
32. 3.3V外扩电源插针
33. 5V外扩电源插针

0x3: Blinky Code(蜂鸣器定时发音)

/*----------------------------------------------------------------------------
 * Name:    Blinky.c
 * Purpose: LED Flasher
 * Note(s):
 *----------------------------------------------------------------------------
 * This file is part of the uVision/ARM development tools.
 * This software may only be used under the terms of a valid, current,
 * end user licence from KEIL for a compatible version of KEIL software
 * development tools. Nothing else gives you the right to use this software.
 *
 * This software is supplied "AS IS" without warranties of any kind.
 *
 * Copyright (c) 2012 Keil - An ARM Company. All rights reserved.
 *----------------------------------------------------------------------------*/

#include <stm32f10x.h>                       /* STM32F103 definitions         */

/*----------------------------------------------------------------------------
  wait function
 *----------------------------------------------------------------------------*/
void wait (void)  {
  int  d;

  for (d = 0; d < 500000; d++);             /* only to delay for LED flashes */
}


/*----------------------------------------------------------------------------
  Main Program
 *----------------------------------------------------------------------------*/
int main (void) {
  unsigned int i;                            /* LED variable                  */

  RCC->APB2ENR |= (1UL << 3);                /* Enable GPIOB clock            */

  GPIOB->CRH    =  0x33333333;               /* PB.8..16 defined as Outputs   */

  while (1)  {                               /* Loop forever                  */
    for (i = 1<<8; i < 1<<15; i <<= 1) {     /* Blink LED 0,1,2,3,4,5,6       */
      GPIOB->BSRR = i;                       /* Turn LED on                   */
      wait ();                               /* call wait function            */
      GPIOB->BRR = i;                        /* Turn LED off                  */
    }
    for (i = 1<<15; i > 1<<8; i >>=1 ) {     /* Blink LED 7,6,5,4,3,2,1       */
      GPIOB->BSRR = i;                       /* Turn LED on                   */
      wait ();                               /* call wait function            */
      GPIOB->BRR = i;                        /* Turn LED off                  */
    }
  }
}

Relevant Link:

http://wenku.baidu.com/link?url=EUhVMBgiCF1AJH5wwSOMRy5S7FRAKu7jQLuBfW51ZE5GotXlhay8QnHN84Bh9EagF1Tj6OCiK9mleNXJTimRrhh6zTSwcSGFa9ri-49--Eq
http://www.openedv.com/posts/list/25930.htm
http://blog.chinaunix.net/uid-20788517-id-263475.html
http://wenku.baidu.com/link?url=hU7mb_cY6aW9g8QOyZRIZ_zT6KN0fJwQtEWz4twIkXOaq_8QjTRM-HJCAI5aBtdrEYFMdv0x3M3cLfCkIThMSb_eCWCa1szrqCMdkJH4PHO
http://bbs.21ic.com/icview-1369456-1-2.html
http://blog.sina.com.cn/s/blog_7cae4728010162ur.html

 

Copyright (c) 2016 LittleHann All rights reserved

 

posted @ 2016-08-27 15:04  郑瀚Andrew  阅读(3049)  评论(1编辑  收藏  举报