久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 關于stm32f0單片機獲取唯一ID的一個好用的函數,可選擇長度 [打印本頁]

作者: fx5700    時間: 2018-7-12 15:50
標題: 關于stm32f0單片機獲取唯一ID的一個好用的函數,可選擇長度
mbyte可以選擇4/8/12/16字節,方便不同項目使用,返回ID在mc_code里面保存

void GetMCCode(uint8_t mbyte,uint8_t *mc_code)  
{       
        uint32_t Lock_Code;
        uint32_t CpuID[3];

        //獲取
        CpuID[0]=*(__IO uint32_t*)(0x1ffff7ac);
        CpuID[1]=*(__IO uint32_t*)(0x1ffff7b0);
        CpuID[2]=*(__IO uint32_t*)(0x1ffff7b4);
        //
        if(mbyte==4)
        {
                Lock_Code=(CpuID[0]>>1)^(CpuID[1]>>2)^(CpuID[2]>>3);
                mc_code[0] = (uint8_t)Lock_Code;
                mc_code[1] = (uint8_t)(Lock_Code>>8);
                mc_code[2] = (uint8_t)(Lock_Code>>16);
                mc_code[3] = (uint8_t)(Lock_Code>>24);
        }
        else if(mbyte==8)
        {
                Lock_Code=(CpuID[0]>>1)^(CpuID[1]>>2)^(CpuID[2]>>3);
                //
                mc_code[0] = (uint8_t)Lock_Code;
                mc_code[1] = (uint8_t)(Lock_Code>>8);
                mc_code[2] = (uint8_t)(Lock_Code>>16);
                mc_code[3] = (uint8_t)(Lock_Code>>24);
                //
                Lock_Code = ((CpuID[0]/10-1)*5) + (CpuID[1]>>5) + (CpuID[2]/9+2);
                Lock_Code &= 0xFFFFF7FF;
                //
                mc_code[4] = (uint8_t)Lock_Code;
                mc_code[5] = (uint8_t)(Lock_Code>>8);
                mc_code[6] = (uint8_t)(Lock_Code>>16);
                mc_code[7] = (uint8_t)(Lock_Code>>24);
        }
        else if(mbyte==12)
        {
                mc_code[0] = (uint8_t)CpuID[0];
                mc_code[1] = (uint8_t)(CpuID[0]>>8);
                mc_code[2] = (uint8_t)(CpuID[0]>>16);
                mc_code[3] = (uint8_t)(CpuID[0]>>24);
                //
                mc_code[4] = (uint8_t)CpuID[1];
                mc_code[5] = (uint8_t)(CpuID[1]>>8);
                mc_code[6] = (uint8_t)(CpuID[1]>>16);
                mc_code[7] = (uint8_t)(CpuID[1]>>24);
                //
                mc_code[8] = (uint8_t)CpuID[2];
                mc_code[9] = (uint8_t)(CpuID[2]>>8);
                mc_code[10]= (uint8_t)(CpuID[2]>>16);
                mc_code[11]= (uint8_t)(CpuID[2]>>24);
        }
        else if(mbyte==16)
        {
                mc_code[0] = (uint8_t)CpuID[0];
                mc_code[1] = (uint8_t)(CpuID[0]>>8);
                mc_code[2] = (uint8_t)(CpuID[0]>>16);
                mc_code[3] = (uint8_t)(CpuID[0]>>24);
                //
                mc_code[4] = (uint8_t)CpuID[1];
                mc_code[5] = (uint8_t)(CpuID[1]>>8);
                mc_code[6] = (uint8_t)(CpuID[1]>>16);
                mc_code[7] = (uint8_t)(CpuID[1]>>24);
                //
                mc_code[8] = (uint8_t)CpuID[2];
                mc_code[9] = (uint8_t)(CpuID[2]>>8);
                mc_code[10]= (uint8_t)(CpuID[2]>>16);
                mc_code[11]= (uint8_t)(CpuID[2]>>24);
                //
                Lock_Code = ((CpuID[0]/10-1)*5) + (CpuID[1]>>5) + (CpuID[2]/9+2);
                Lock_Code &= 0xFFFFF7FF;
                //
                mc_code[12] = (uint8_t)Lock_Code;
                mc_code[13] = (uint8_t)(Lock_Code>>8);
                mc_code[14] = (uint8_t)(Lock_Code>>16);
                mc_code[15] = (uint8_t)(Lock_Code>>24);
        }
}







歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 午夜免费av | 国产亚洲精品区 | 成人午夜看片 | 中文字幕亚洲一区二区三区 | 久www| 国产激情精品一区二区三区 | 精品日韩一区 | 自拍偷拍第一页 | 欧美爱爱视频 | 日韩中文字幕区 | 91精品国产综合久久国产大片 | 91国内外精品自在线播放 | 成人精品鲁一区一区二区 | 九九热免费看 | 日韩精品在线观看视频 | 91在线观看免费视频 | 综合久久综合久久 | 成人一区二| 一区二区三区视频在线免费观看 | 男女羞羞视频在线看 | 爱操影视| 二区在线观看 | 日本成人福利视频 | 亚洲精品中文字幕 | 91免费在线| 久久久久久综合 | 国产精品不卡视频 | 特级一级黄色片 | 亚洲精品一区中文字幕乱码 | 亚洲手机视频在线 | 久久久九九九九 | 99视频| 看片地址 | 亚洲视频一区二区三区 | 亚洲一级毛片 | 久久人人爽人人爽人人片av免费 | 天天干天天草 | 超碰人人人 | 国产精品日日做人人爱 | 国产欧美日韩综合精品一 | 丁香综合 |