STM32神舟IV号(STM32F107VCT6)开发板-产品唯一身份标识实验--STM32_QQ群:101409705
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
神舟系列开发板资料之
神舟IV号用户手册
STM32开发板产品目录:
神舟 I 号: STM32F103RBT6 (不带 TFT 触摸彩屏)
神舟 I 号: STM32F103RBT6 + 2.4"TFT 触摸彩屏
神舟 I 号: STM32F103RBT6 + 2.8"TFT 触摸彩屏
神舟 II号: STM32F103VCT6 (不带 TFT 触摸彩屏)
神舟 II号: STM32F103VCT6 + 2.8"TFT 触摸彩屏
神舟 II号: STM32F103VCT6 + 3.2"TFT 触摸彩屏
神舟III号: STM32F103ZET6 (不带 TFT 触摸彩屏)
神舟III号: STM32F103ZET6 + 2.8"TFT 触摸彩屏
神舟III号: STM32F103ZET6 + 3.2"TFT 触摸彩屏
神舟 IV号: STM32F107VCT6 (不带 TFT 触摸彩屏)
神舟 IV号: STM32F107VCT6 + 2.8"TFT 触摸彩屏
神舟 IV号: STM32F107VCT6 + 3.2"TFT 触摸彩屏
声明
本手册版权归属所有, 并保留一切权利。
非经书面同意,任何单位或个人不得擅自摘录本手册部分或全部内容,违者我们将追究其法律责任。
本文档为网站推出的神舟IV号STM32开发板配套用户手册,详细介绍STM32芯片的开发过程和神舟IV号开发
板的使用方法。
本文档如有升级恕不另行通知,欢迎您访问 论坛获取最新手册文档及最新固件代码。
目录
1.第一章硬件篇 (13)
1.1.神舟IV号STM32F107VCT开发板简介 (13)
1.2.神舟IV号开发板硬件详解 (22)
1.2.1.MCU处理器 (22)
1.2.2.JTAG/SWD调试下载接口 (26)
1.2.3.10M/100M以太网接口 (26)
B 2.0 OTG电路 (31)
1.2.5.触摸TFT彩屏接口 (34)
1.2.6.音频解码电路 (34)
1.2.7.SD卡接口 (35)
1.2.8.315M无线模块接口 (35)
1.2.9. 2.4G无线模块接口 (37)
1.2.10.两组CAN总线接口 (37)
1.2.11.RS232C串口 (38)
1.2.12.485总线接口 (39)
1.2.13.SPI FLASH (40)
1.2.14.I2C EEPROM (40)
1.2.15.蜂鸣器电路 (41)
1.2.16.复位电路 (42)
1.2.17.LED指示灯 (42)
1.2.18.按键输入 (43)
1.2.19.RTC实时时钟电路 (43)
1.2.20.电位器AD电路 (43)
1.2.21.AD、DA转换和PWM接口 (44)
1.2.22.电源电路 (44)
1.2.23.扩展接口 (45)
2.第二章软件篇 (47)
2.1.RVMDK简介 (47)
2.2.新建RVMDK工程 (47)
2.3.代码的编译 (54)
2.4.在线仿真与程序下载 (56)
2.5.神舟IV号实验例程结构 (58)
2.6.RVMDK使用技巧 (61)
2.6.1.快速定位函数/变量被定义的地方 (61)
2.6.2.快速注释与快速消注释 (62)
2.6.3.快速打开头文件 (63)
3.第三章基本操作篇 (64)
3.1.如何安装JLINK驱动程序 (64)
3.2.如何使用JLINK仿真器软件 (66)
3.2.1.如何使用J-FLASH ARM 烧写固件到芯片FLASH (66)
3.2.2.使用J-Link command 设置和查看相关调试信息 (69)
3.3.如何给神舟IV号板供电 (69)
3.1.1.使用USB供电 (69)
3.1.2.使用外接电源供电 (69)
3.1.3.使用JLINK V8供电 (70)
3.4.如何通过串口下载一个固件到神舟IV号开发板 (71)
3.5.如何在MDK开发环境中使用JLINK在线调试 (74)
3.6.神舟IV号跳线含义 (77)
3.6.1.启动模式选择跳线 (78)
3.6.2.RS-232/RS-485选择跳线 (78)
3.6.3.RTC实时时钟跳线 (78)
4.第四章实战篇 (79)
4.1.LED跑马灯实验 (80)
4.1.1.意义与作用 (80)
4.1.2.硬件设计 (83)
4.1.3.软件设计 (83)
4.1.4.下载与验证 (87)
4.2.按键实验 (89)
4.2.1.意义与作用 (89)
4.2.2.实验原理 (90)
4.2.3.硬件设计 (90)
4.2.4.软件设计 (91)
4.2.5.下载与验证 (93)
4.3.蜂鸣器实验 (94)
4.3.1.意义与作用 (94)
4.3.2.实验原理 (95)
4.3.3.硬件设计 (96)
4.3.4.软件设计 (97)
4.3.5.下载与验证 (98)
4.4.1.意义与作用 (100)
4.4.2.实验原理 (101)
4.4.3.硬件设计 (102)
4.4.4.软件设计 (103)
4.4.5.下载与验证 (108)
4.5.串口输入输出验 (109)
4.5.1.意义与作用 (110)
4.5.2.实验原理 (111)
4.5.3.硬件设计 (112)
4.5.4.软件设计 (113)
4.5.5.下载与验证 (115)
4.6.S YS T ICK系统滴答实验 (115)
4.6.1.意义与作用 (116)
4.6.2.实验原理 (117)
4.6.3.硬件设计 (118)
4.6.4.软件设计 (119)
4.6.5.下载与验证 (122)
4.7.产品唯一身份标识(U NIQUE D EVICE ID)实验 (123)
4.7.1.意义与作用 (124)
4.7.2.实验原理 (125)
4.7.3.硬件设计 (126)
4.7.4.软件设计 (127)
4.7.5.下载与验证 (129)
4.8.ADC模数转换实验 (130)
4.8.1.意义与作用 (131)
4.8.2.实验原理 (132)
4.8.3.硬件设计 (133)
4.8.4.软件设计 (134)
4.8.5.下载与验证 (137)
4.9.C ALENDAR简单RTC实时时钟实验 (138)
4.9.1.意义与作用 (139)
4.9.2.实验原理 (140)
4.9.3.硬件设计 (141)
4.9.4.软件设计 (142)
4.9.5.下载与验证 (145)
4.10.C ALENDAR实时时钟与年月日实验 (146)
4.10.2.实验原理 (148)
4.10.3.硬件设计 (149)
4.10.4.软件设计 (151)
4.10.5.下载与验证 (154)
4.11.EEPROM读写测试实验 (155)
4.11.1.意义与作用 (156)
4.11.2.实验原理 (157)
4.11.3.硬件设计 (159)
4.11.4.软件设计 (161)
4.11.5.下载与验证 (163)
4.12.TIMER定时器实验 (164)
4.12.1.意义与作用 (165)
4.12.2.实验原理 (166)
4.12.3.硬件设计 (167)
4.12.4.软件设计 (169)
4.12.5.下载与验证 (172)
4.13.EXTI外部中断实验 (173)
4.13.1.意义与作用 (174)
4.13.2.实验原理 (175)
4.13.3.硬件设计 (176)
4.13.4.软件设计 (178)
4.13.5.下载与验证 (181)
4.14.315M无线模块扫描实验 (182)
4.14.1.意义与作用 (183)
4.14.2.实验原理 (184)
4.14.3.硬件设计 (185)
4.14.4.软件设计 (186)
4.14.5.下载与验证 (188)
4.15.EXTI无线315M模块外部中断实验 (189)
4.15.1.意义与作用 (190)
4.15.2.实验原理 (191)
4.15.3.硬件设计 (192)
4.15.4.软件设计 (195)
4.15.5.下载与验证 (197)
4.16.TFT彩屏显示实验 (198)
4.16.1.意义与作用 (199)
4.16.3.硬件设计 (201)
4.16.4.软件设计 (204)
4.16.5.下载与验证 (207)
4.17.TFT触摸屏显示加触摸实验 (208)
4.17.1.意义与作用 (209)
4.17.2.实验原理 (211)
4.17.3.硬件设计 (213)
4.17.4.软件设计 (216)
4.17.5.下载与验证 (221)
4.18.硬件CRC循环冗余检验实验 (224)
4.18.1.意义与作用 (225)
4.18.2.实验原理 (226)
4.18.3.硬件设计 (227)
4.18.4.软件设计 (228)
4.18.5.下载与验证 (230)
4.19.PVD电源电压监测实验 (231)
4.19.1.意义与作用 (232)
4.19.2.实验原理 (233)
4.19.3.硬件设计 (234)
4.19.4.软件设计 (235)
4.19.5.下载与验证 (237)
4.20.STANDBY待机模式实验 (238)
4.20.1.意义与作用 (239)
4.20.2.实验原理 (240)
4.20.3.硬件设计 (241)
4.20.4.软件设计 (242)
4.20.5.下载与验证 (244)
4.21.STOP停止模式实验 (245)
4.21.1.意义与作用 (246)
4.21.2.实验原理 (247)
4.21.3.硬件设计 (248)
4.21.4.软件设计 (249)
4.21.5.下载与验证 (251)
4.22.CAN总线回环实验 (252)
4.22.1.意义与作用 (253)
4.22.2.实验原理 (254)
4.22.4.软件设计 (256)
4.22.5.下载与验证 (259)
4.23.双CAN收发测试实验 (260)
4.23.1.意义与作用 (261)
4.23.2.实验原理 (262)
4.23.3.硬件设计 (263)
4.23.4.软件设计 (264)
4.23.5.下载与验证 (266)
4.24.485总线收发实验 (266)
4.24.1.意义与作用 (267)
4.24.2.实验原理 (268)
4.24.3.硬件设计 (269)
4.24.4.软件设计 (270)
4.24.5.下载与验证 (272)
4.25.SPI存储器W25X16实验 (273)
4.25.1.意义与作用 (274)
4.25.2.实验原理 (275)
4.25.3.硬件设计 (276)
4.25.4.软件设计 (277)
4.25.5.下载与验证 (279)
4.26.SD卡实验实验 (280)
4.26.1.意义与作用 (281)
4.26.2.实验原理 (282)
4.26.3.硬件设计 (283)
4.26.4.软件设计 (284)
4.26.5.下载与验证 (286)
4.27.音乐播放器实验 (287)
4.27.1.意义与作用 (288)
4.27.2.实验原理 (289)
4.27.3.硬件设计 (290)
4.27.4.软件设计 (291)
4.27.5.下载与验证 (293)
4.28. 2.4G无线模块收发实验 (294)
4.28.1.意义与作用 (295)
4.28.2.实验原理 (296)
4.28.3.硬件设计 (297)
4.28.5.下载与验证 (300)
B固件升级DFU实验 (301)
4.29.1.意义与作用 (303)
4.29.2.实验原理 (306)
4.29.3.硬件设计 (310)
4.29.4.软件设计 (314)
4.29.5.下载与验证 (317)
B实现SD读卡器实验 (320)
4.30.1.意义与作用 (321)
4.30.2.实验原理 (322)
4.30.3.硬件设计 (323)
4.30.4.软件设计 (324)
4.30.5.下载与验证 (326)
B人机交互设备实验 (327)
4.31.1.意义与作用 (328)
4.31.2.实验原理 (329)
4.31.3.硬件设计 (332)
4.31.4.软件设计 (334)
4.31.5.下载与验证 (336)
B实现虚拟串口实验 (337)
4.32.1.意义与作用 (338)
4.32.2.实验原理 (340)
4.32.3.硬件设计 (342)
4.32.4.软件设计 (344)
4.32.5.下载与验证 (348)
B实现PC音频播放器实验 (349)
4.33.1.意义与作用 (350)
4.33.2.实验原理 (352)
4.33.3.硬件设计 (354)
4.33.4.软件设计 (355)
4.33.5.下载与验证 (358)
4.34.以太网实现HTTP服务器实验 (359)
4.34.1.意义与作用 (361)
4.34.2.实验原理 (364)
4.34.3.硬件设计 (367)
4.34.4.软件设计 (371)
4.35.以太网实现T ELNET服务器实验 (377)
4.35.1.意义与作用 (378)
4.35.2.实验原理 (380)
4.35.3.硬件设计 (382)
4.35.4.软件设计 (383)
4.35.5.下载与验证 (385)
4.36.以太网实现TFTP服务器实验 (386)
4.36.1.意义与作用 (387)
4.36.2.实验原理 (389)
4.36.3.硬件设计 (394)
4.36.4.软件设计 (395)
4.36.5.下载与验证 (397)
4.37.以太网实现固件升级实验 (400)
4.37.1.意义与作用 (401)
4.37.2.实验原理 (403)
4.37.3.硬件设计 (407)
4.37.4.软件设计 (409)
4.37.5.下载与验证 (411)
4.7.产品唯一身份标识(Unique Device ID)实验
4.7.1.意义与作用
产品唯一的身份标识(Unique Device ID)非常适合:
●用来作为序列号(例如USB字符序列号或者其他的终端应用)
●用来激活带安全机制的自举过程
●用来作为密码,在编写闪存时,将此唯一标识与软件加解密算法结合使用,提高代码在闪存存储器内的安全性。
96位的产品唯一身份标识所提供的参考号码对任意一个STM32微控制器,在任何情况下都是唯一的。
用户在何种情况下,都不能修改这个身份标识。
4.7.2.实验原理
这个96位的产品唯一身份标识,按照用户不同的用法,可以以字节(8位)为单位读取,也可以以半字(16位)或者全字(32位)读取。
96位的独特ID位于地址 0x1FFFF7E8 ~ 0x1FFFF7F3 的系统存储区,用户可以以字节、半字、或字的方式单独读取其间的任一地址,其中0x1FFFFF3中为最高字节,
0x1FFFF7E8中为最低字节。
本次试验以ARMJISHU的神舟系列开发板为硬件平台,通过调用系统的Printf函数来打印出唯一标识DeviceSerial。
作为扩展本次试验顺带读取位于0x1FFF F7E0地址的“闪存容量寄存器”获得开发板内部集成Flash的大小信息,通过调用系统的Printf函数来打印出产品内部Flash大小。
4.7.3.硬件设计
产品唯一身份标识(Unique Device ID)为处理器内部组件,这部分不需要硬件电路,这里仅在在串口中输出产品唯一身份标识(Unique Device ID)即可。
4.7.4.软件设计
程序中定义全局变量IntDeviceSerial存放读到的设备ID,96位的独特ID位于地址0x1FFFF7E8 ~ 0x1FFFF7F3 的系统存储区,程序如下:
Delay_ARMJISHU函数流水灯使用的延时函数,简单的For循环
下来看看main函数,其中涉及的子程序如果之前的章节已有介绍(如串口相关),则此处不再讲述。
本示例涉及的程序都添加了较为详细的注释。
在MAIN主函数中调用Get_ChipSerialNum()以后,就可以使用Printf来打印,然后作为扩展,本次试验顺带读取位于0x1FFF F7E0地址的“闪存容量寄存器”使用Printf 来打印出来。
4.7.
5.下载与验证
在神舟IV号光盘\编译好的固件\7、产品唯一身份标识(Unique Device ID)目录下的EWARMv5\ STM32F107VC-ARMJISHU\Exe\ARMJISHU_产品唯一身份标识(Unique Device ID).hex文件即为前面我们分析的产品唯一身份标识实验编译好的固件,我们可以直接通过JLINK V8将固件下载到神舟IV号开发板中,观察运行效果。
如果使用JLINK下载固件,请按如何使用JLINK V8下载固件到神舟IV号开发板小节进行操作。
如果使用串口下载固件,请按如何使用串口下载一个固件到神舟IV号开发板小节进行操作。
如果在MDK开发环境中,下载编译好的固件或者在线调试,请按如何通过MDK编译和在线调试小节进行操作。
4.7.6.实验现象
将固件下载在神舟IV号STM32开发板后,可以看到神舟IV号开发板的串口打印出了产品唯一身份标识(Unique Device ID) 为43073053-31394E31-5DCFF34,内部闪存容量为256K字节,如下图中红色区域所示。
欢迎使用神舟系列高性能开发板
基于ARM V7架构的Cortex-M3内核的开发板
STM32开发板产品目录:
神舟 I 号: STM32F103RBT6 (不带 TFT 触摸彩屏)
神舟 I 号: STM32F103RBT6 + 2.4"TFT 触摸彩屏
神舟 I 号: STM32F103RBT6 + 2.8"TFT 触摸彩屏
神舟 II号: STM32F103VCT6 (不带 TFT 触摸彩屏)
神舟 II号: STM32F103VCT6 + 2.8"TFT 触摸彩屏
神舟 II号: STM32F103VCT6 + 3.2"TFT 触摸彩屏
神舟III号: STM32F103ZET6 (不带 TFT 触摸彩屏)
神舟III号: STM32F103ZET6 + 2.8"TFT 触摸彩屏
神舟III号: STM32F103ZET6 + 3.2"TFT 触摸彩屏
神舟 IV号: STM32F107VCT6 (不带 TFT 触摸彩屏)
神舟 IV号: STM32F107VCT6 + 2.8"TFT 触摸彩屏
神舟 IV号: STM32F107VCT6 + 3.2"TFT 触摸彩屏
本手册完整文档请访问论坛下载!。