|
STM32F4系列MCU都有一个96位的唯一设备标识符UID,该标识符可以用作序列号(例如 USB 字符串序列号或其它终端应用程序)以及FLASH代码的安全验证。在STM32F446xx用户手册RM0390的34.1章节第1316页中介绍了STM32F446RE的唯一设备ID寄存器的地址基址是0x1FFF7A10。
在mbed中新建基于NUCLEO-F446RE平台的空模板工程,然后导入mbed_src函数库。新建main.cpp文件,在文件中输入以下代码: - #include "mbed.h"
-
- // unique ID test
-
- // change this UID address to suit your model of CPU (see datasheet)
- // for STM32F446RE - see chapter 34.1 page 1270 of the following document
- //
- // [url]http://www.st.com/st-web-ui/static/active/en/resource/technical/document/reference_manual/DM00096844.pdf[/url]
- //
- unsigned long *uid = (unsigned long *)0x1FFF7A10;
-
- Serial pc(USBTX, USBRX); // tx, rx
-
- int main() {
- while(1)
- {
- pc.printf("\r\nUnique ID: %08X %08X %08X \r\n", uid[0], uid[1], uid[2]);
- }
- }
-
复制代码点击工具栏的Compile and Download按钮,编译成功后生成bin文件,并且自动下载到本地计算机中。 将NUCLEO-F446RE开发板连接到计算机,设备管理器中会多出一个虚拟串口,并且在计算机中多出一个mbed的可移动磁盘。打开串口调试工具,选择该虚拟串口,并设置参数为9600波特率、8位数据位、无校验以及1位停止位。将生成的bin文件放到mbed可移动磁盘中,NUCLEO-F446RE开发板烧写成功后自动重启。串口工具将显示该开发板的设备标识符UID,在接收区域显示:Unique ID: 00270048 33345105 30373031 。
|