你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
查看全部评分
STM32隐藏
5.18活动板子会不会是STM32L4呢
STM32 CUBE软件中找不到STM32L4系列单片机
Your UAT Feedback is needed within today.
应用
AAA
测试测试
降价
tiwen
BBBB
实在没有办法就自己指定FLASH里面固定地址,
自制的一个自己识别的唯一序列号UID,
但是最好PC端有随机序列号生成器这样功能的管理软件,
没有就花钱请人做一个
评分
查看全部评分
评分
查看全部评分
你把96位都读出来之后发现都是一样的?那你肯定是买到了小作坊生产的假冒伪劣产品()
怀疑你的地址可能有点问题。我帮你看了一下官方手册RM0038,Rev15,p891:
你代码中是连续的96bit,但是文档中偏移地址并不是连续的0x00,0x04和0x14(搞不清楚ST家的脑回路),你核对修改一下你的地址再看看?
评分
查看全部评分
要是用HAL库的调用一个函数就搞定了
HAL_GetUID(uid);
然后去处理 UID[0] 、 UID[1] 、 UID[2] 就可以了
这个函数具体是
void HAL_GetUID(uint32_t *UID)
{
UID[0] = (uint32_t)(READ_REG(*((uint32_t *)UID_BASE)));
UID[1] = (uint32_t)(READ_REG(*((uint32_t *)(UID_BASE + 4U))));
UID[2] = (uint32_t)(READ_REG(*((uint32_t *)(UID_BASE + 8U))));
}
我只要用6个字节,所以我的函数是这样的:
// 获取STM32芯片的低48位的UID
void Get_STM32_CAN_UID(void)
{
uint32_t uid[3];
HAL_GetUID(uid);
STM32_CAN_UID[0]=(uid[1]%65536)/256;
STM32_CAN_UID[1]=uid[1]%256;
STM32_CAN_UID[2]=uid[2]/16777216;
STM32_CAN_UID[3]=(uid[2]%16777216)/65536;
STM32_CAN_UID[4]=(uid[2]%65536)/256;
STM32_CAN_UID[5]=uid[2]%256;
}
评分
查看全部评分