日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

歷史上的今天

今天是:2025年08月12日(星期二)

2019年08月12日 | STM32-(15):如何用ID號保護自己的勞動成果

發(fā)布者:Haifeeng 來源: eefocus關(guān)鍵字:STM32  ID號  版權(quán)保護 手機看文章 掃描二維碼
隨時隨地手機看文章

怎樣進行版權(quán)保護?

1.加密:Flash

2.ID號:每個芯片都有獨一無二的ID號,類似于人的身份證號碼


一般的盜版的方法:

1、電路板連接進行反向設計(PCB板反向設計),然后能設計出一個一模一樣的PCB

2、讀取原芯片的程序(獲取整個Flash數(shù)據(jù)),然后把整個數(shù)據(jù)放到新的芯片中去

當程序代碼中加入ID號碼的判斷,就能起到保護的作用


STM芯片中加入了96位的ID (唯一),這個ID號主要作用有:①序列號 ;②安全性(校驗ID號之后才能執(zhí)行某段程代碼);③加密(秘鑰)

這個ID號放在 0x1FFFF7E8—0x1FFFF7F4,一共12個字節(jié),96位,我們自由選擇用到這96位中的部分或者全部


示例代碼

/*Include---------------------------*/

#include"stm32f10x_lib.h" //包含所有的頭文件

#include


//----------------函數(shù)聲明--------------------

void Delay_MS(u16 dly);

void RCC_Configuration(void);

void GPIO_Configuration(void);

void USART3_Configuration(void);


u8  tab[]="nHello! everyone,welcome to class!";

/*******************************************************************************

* Function Name  : main

* Description    : Main program.

* Input          : None

* Output         : None

* Return         : None

*******************************************************************************/ 

int main(void)

{

#ifdef DEBUG

debug();

#endif

u8 i;

u8 ID_num[12];

//u16  data;


//------------初始化------------

RCC_Configuration();

GPIO_Configuration();

USART3_Configuration();


//printf("nThe ID: n");

for(i=0;i<12;i++)

{

ID_num[i] = *(u8 *)(0x1FFFF7E9+i);

//printf("%x",ID_num[i]);

}


//ID  是否等于 ffcd213355313235631243ff  如果等于置標志flag=1


if(flag==1)

{

;;;;

}

//------------向USART3發(fā)送數(shù)據(jù)------------

while(1) ;

}


/*******************************************************************************

* Function Name  : Delay_Ms

* Description    : delay 1 ms.

* Input          : dly (ms)

* Output         : None

* Return         : None

*******************************************************************************/

void Delay_MS(u16 dly)

{

u16 i,j;

for(i=0;i for(j=1000;j>0;j--);

}


/*******************************************************************************

* Function Name  : RCC_Configuration

* Description    : Configures the different system clocks.

* Input          : None

* Output         : None

* Return         : None

*******************************************************************************/

void RCC_Configuration(void)

{

//----------使用外部RC晶振-----------

RCC_DeInit(); //初始化為缺省值

RCC_HSEConfig(RCC_HSE_ON); //使能外部的高速時鐘 

while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET); //等待外部高速時鐘使能就緒

FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); //Enable Prefetch Buffer

FLASH_SetLatency(FLASH_Latency_2); //Flash 2 wait state

RCC_HCLKConfig(RCC_SYSCLK_Div1); //HCLK = SYSCLK

RCC_PCLK2Config(RCC_HCLK_Div1); //PCLK2 =  HCLK

RCC_PCLK1Config(RCC_HCLK_Div2); //PCLK1 = HCLK/2

RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9); //PLLCLK = 8MHZ * 9 =72MHZ

RCC_PLLCmd(ENABLE); //Enable PLLCLK


while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); //Wait till PLLCLK is ready

    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //Select PLL as system clock

while(RCC_GetSYSCLKSource()!=0x08); //Wait till PLL is used as system clock source

//---------打開相應外設時鐘--------------------

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO,ENABLE); //使能APB2外設的GPIOA的時鐘  

RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);

}


/*******************************************************************************

* Function Name  : GPIO_Configuration

* Description    : 初始化GPIO外設

* Input          : None

* Output         : None

* Return         : None

*******************************************************************************/

void GPIO_Configuration(void)

{

GPIO_InitTypeDef GPIO_InitStructure; //聲明一個結(jié)構(gòu)體變量


GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //選擇PC.10(TXD) 和 PC.11

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //管腳頻率為50MHZ

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //輸出模式為復用推挽輸出

GPIO_Init(GPIOC,&GPIO_InitStructure); //初始化GPIOC寄存器

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; //選擇PC.10(TXD) 和 PC.11(RXD)

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //管腳頻率為50MHZ

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //輸出模式為浮空輸入

GPIO_Init(GPIOC,&GPIO_InitStructure); //初始化GPIOA寄存器

//將USART3的TXD和RXD重映射到PC10和pc11

GPIO_PinRemapConfig(GPIO_PartialRemap_USART3,ENABLE);


void USART3_Configuration(void)

{

USART_InitTypeDef  U3;

U3.USART_BaudRate =9600;

U3.USART_WordLength = USART_WordLength_8b;

U3.USART_StopBits = USART_StopBits_1;

U3.USART_Parity = USART_Parity_No;

U3.USART_Mode = USART_Mode_Rx|USART_Mode_Tx;

U3.USART_HardwareFlowControl = USART_HardwareFlowControl_None; 

USART_Init(USART3, &U3);


USART_Cmd(USART3,ENABLE);

}


/*******************************************************************************

* Function Name  : fputc

* Description    : 重定向這個C庫(stdio)printf函數(shù)  文件流——》串口USART1

* Input          : ch,*f

* Output         : None

* Return         : None

*******************************************************************************/ 

int fputc(int ch,FILE *f)

{

//ch送給USART1

USART_SendData(USART3, ch);

//等待發(fā)送完畢

while(USART_GetFlagStatus(USART3, USART_FLAG_TC)==RESET) ;

//返回ch

return(ch);

}

在這里插入圖片描述

關(guān)鍵字:STM32  ID號  版權(quán)保護 引用地址:STM32-(15):如何用ID號保護自己的勞動成果

上一篇:STM32-(14):端口復用與重映射
下一篇:STM32-(16):Systick 系統(tǒng)時鐘

推薦閱讀

目前,工業(yè)機器人已廣泛應用于汽車及汽車零部件制造業(yè)、機械加工行業(yè)、電氣行業(yè)、橡膠及塑料工業(yè)、食品工業(yè)、木材與家具制造業(yè)等領(lǐng)域中。在工業(yè)生產(chǎn)中,機器人、裝配機器人、噴涂機器人及搬運機器人等工業(yè)機器人都已被大量采用。 公司機器人越來越多,擔心機器人出問題?怎樣才能有備無患?怎樣將解決方法化繁為簡?下面交大家一些小訣竅以及常見的故...
在前幾天,榮耀趙明宣布榮耀智慧屏的發(fā)布時間時,就有網(wǎng)友第一時間表示希望沒有廣告。隨后這項提議也是得到了很多網(wǎng)友的支持,而趙明也表示回去看看。在這之后,趙明就在微博發(fā)起了一個電視廣告的投票活動,以此來調(diào)查大家對電視廣告的反應。 到剛剛為止,這項投票活動已經(jīng)正式結(jié)束。從投票結(jié)果來看,有81.5%的朋友都選擇了“絕不能忍,一秒都不行”。...
上周發(fā)表了一篇《站在甲方視角,淺談工業(yè)互聯(lián)網(wǎng)平臺那點事兒》,結(jié)果收到了來自圈內(nèi)各位前輩、良師益友的私信、朋友圈轉(zhuǎn)發(fā)和點評,閱讀量近 3000,第一次發(fā)文,收到這么多的點評,真是蠻感動的。有人覺得觀點挺好的,視角獨特,讀完之后很受啟發(fā);也有人觀點過于偏激,有點負能量;也有人私信我說,那你是不是也可以站在甲方視角,說說咱們工業(yè)互聯(lián)網(wǎng)時代...
8月10日晚,雷軍花了三個小時講述了小米公司一年多以來經(jīng)歷的種種,推出了MIX4手機以及“停產(chǎn)”多年的小米平板,還有一只售價9999元的四足機器狗“鐵蛋”。文|陳思誰能想到,小米今年發(fā)布會的 One More Thing 竟然是一只“狗”;更沒想到的是,這只狗還有一個十分接地氣的名字:鐵蛋。根據(jù)雷軍的介紹,這只名為鐵蛋的四足機器狗不僅能跑會跳,還可以...

史海拾趣

問答坊 | AI 解惑

射頻仿真中二維半的含義

2.5維把垂直方向的場分布做均勻處理。2維不考慮垂直分量,3維可以處理垂直方向的不均勻場分布。 可見2.5維比2維多一點點,卻比3維少那么一點點,故稱之為2.5維。2.5維的分析方法多采用MOM(sonnet, agilent momentum...)3維的分析 ...…

查看全部問答∨

如何為通信電源系統(tǒng)選擇整流模塊

為一個通信電源系統(tǒng)選擇整流模塊要考慮很多因素。過去,大的壟斷性的電信公司常常選擇冗余量很大的系統(tǒng)方案。但是,隨著全球性市場競爭的日趨激烈,這種選擇方式將是不可取的。為了優(yōu)化一個電源供電方案,有必要仔細考察許多相關(guān)因素,包括產(chǎn)品性能 ...…

查看全部問答∨

高質(zhì)量C 編程指南

如題,對寫好代碼很有幫助?!?

查看全部問答∨

青越鋒是否有價值?未來能否被風險投資所看好?

作為國內(nèi)首款自主研發(fā)PCB設計軟件青越鋒,它是否有價值?是否能滿足PCB的設計要求?一直是大家關(guān)心的話題。 筆者前段時間用青越鋒畫過一張2層板的圖紙,感覺基本的功能都符合要求。不過一些布線方面的高端功能缺失,比如pads里的動態(tài)布線,差分線 ...…

查看全部問答∨

ARM STD system.bin 文件的問題?

我編譯的時候碰到下列的問題,但是我用另外一個模板就沒有問題了,那是我那個地方設置錯了,望高手指教。謝謝! fromelf-nozeropadD:\\ARM251\\Template\\Debug\\armRom.axf-bin D:\\ARM251\\Template\\Debug\\system.bin Error: \"D:\\ARM251\\Te ...…

查看全部問答∨

OP計算救助

最近在研究OP計算問題,煩請指教一下: 低功耗運\放LF441的主要指標為: 專案                     單位      ?? 輸入失調(diào)電壓   &nbs ...…

查看全部問答∨

com16550驅(qū)動請教?。。?!請做過此驅(qū)動的大哥幫忙?。。≈x謝?。?!

現(xiàn)在BSP中用的是在public下移植過來的com16550驅(qū)動,可是一直沒看懂是怎么用的外部中斷 看了網(wǎng)上 xunjingzhpu 的博客中: 3 需要增加串口芯片對應的gpio口中斷,在中斷處理線程DWORD CPdd16550::ThreadRun()中記得重新使能中斷,在中斷觸發(fā)上如果 ...…

查看全部問答∨

關(guān)于嵌入式C語言中,減少使用全局變量的討論

      大家都知道使用全局變量對數(shù)據(jù)的安全性是不好的,很多公司或者是學校是要求寫程序盡量減少或者不許使用全局變量的,。但是,對于一個寫嵌入式C語言的菜鳥,我發(fā)現(xiàn)我的程序總是有不少的全局變量,于是我也想優(yōu)化下自 ...…

查看全部問答∨

問下關(guān)于MSP430的幾條指令!

諸位大哥,問下啊,首先啊,WDTCTL=WDTPW+WDTHOLD; 為什么就能關(guān)閉看門狗了呢?C語言有支持這樣的指令么,不是應該明確賦值\"1”或\"0”么? 還有P1OUT&=~BIT;這條說是復位,好奇怪,很久沒寫C了,有點記不清楚! 另外能否幫忙解釋一下&=,| ...…

查看全部問答∨
小廣播
設計資源 培訓 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved