📄 main_unique_id.c
字号:
//按键和LED的测试程序
#include"stm32f10x.h"
#include"init_config.h"
int main()
{
u8 i;
u32 Dev_Serial0,Dev_Serial1,Dev_Serial2;
u8 HexTmp, H_HexTmp,L_HexTmp;
u8 HEX[6] ={'A','B','C','D','E','F'};
u8 Unique_Device_ID[25];
Unique_Device_ID[24] = '\0';
RCC_Configuration();
GPIO_Configuration();
NVIC_Configuration();
USART_Configuration();
//获取芯片ID
Dev_Serial0=*(vu32*)(0x1ffff7e8);
Dev_Serial1=*(vu32*)(0x1ffff7ec);
Dev_Serial2=*(vu32*)(0x1ffff7f0);
for(i=0;i<24;)
{
if(0==i) HexTmp = (u8)Dev_Serial0; //获取第一个字节
else if(2==i) HexTmp = (u8)( Dev_Serial0 >> 8 ); //获取第二个字节
else if(4==i) HexTmp = (u8)( Dev_Serial0 >> 16 ); //获取第三个字节
else if(6==i) HexTmp = (u8)( Dev_Serial0 >> 24 ); //获取第四个字节
else if( 8==i ) HexTmp = (u8)Dev_Serial1; //获取第五个字节
else if( 10==i ) HexTmp = (u8)( Dev_Serial1 >> 8 ); //获取第六个字节
else if( 12==i ) HexTmp = (u8)( Dev_Serial1 >> 16 ); //获取第七个字节
else if( 14==i ) HexTmp = (u8)( Dev_Serial1 >> 24 ); //获取第八个字节
else if( 16==i ) HexTmp = (u8)Dev_Serial2; //获取第九个字节
else if( 18==i ) HexTmp = (u8)( Dev_Serial2 >> 8 ); //获取第十个字节
else if( 20==i ) HexTmp = (u8)( Dev_Serial2 >> 16 ); //获取第十一个字节
else if( 22==i ) HexTmp = (u8)( Dev_Serial2 >> 24 ); //获取第十二个字节
H_HexTmp = HexTmp>>4; //获取高四位
L_HexTmp = HexTmp&0x0F; //获取低四位
// 如果某四位的值大于9 就使用查表的方式 把ABCDEF写进来
if( L_HexTmp > 9 )
Unique_Device_ID[i+1] = HEX[ L_HexTmp - 10 ];
else
Unique_Device_ID[i+1] = L_HexTmp + '0';
if( H_HexTmp > 9 )
Unique_Device_ID[i] = HEX[ H_HexTmp - 10 ];
else
Unique_Device_ID[i] = H_HexTmp + '0';
i+=2;
}
USART_ClearFlag(USART1,USART_FLAG_TXE);
USART_ClearFlag(USART1,USART_FLAG_RXNE);
// printf("--- The unique ID is: ---\r\n");
for(i=0;i<3;i++)
{
GPIO_SetBits(GPIOC,GPIO_Pin_13|GPIO_Pin_12);
GPIO_SetBits(GPIOB,GPIO_Pin_8|GPIO_Pin_9);
delay_nms(200);
GPIO_ResetBits(GPIOC,GPIO_Pin_13|GPIO_Pin_12);
GPIO_ResetBits(GPIOB,GPIO_Pin_8|GPIO_Pin_9);
delay_nms(200);
}
for(i=0;i<24;i++)
{
// USART_ClearFlag(USART1,USART_FLAG_TXE);
USART_SendData(USART1,Unique_Device_ID[i]);
delay_nms(2);
// while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)){} //等待发送完毕
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -