为什么调用以下两函数读随机数都不是随机的,每次数据一样的,求解。谢谢!
LL_PseudoRand( uint8 *randData, uint8 dataLen );
LL_PseudoRand( uint8 *randData, uint8 dataLen );
甜甜的大香瓜:
这两句可以放到应用层初始化里。
如果你放在LL层初始化之前,那自然是产生不了随机数。
barry xu:
回复 甜甜的大香瓜:
感谢甜甜的大香瓜的回复。我是放在应用层的。如果我在LL_Rand( ((uint8 *) &passcode), sizeof( uint32 )) 加了LL_Reset();就有随机数了,但问题是一旦执行完LL_Reset();app就跟cc2541断开连接了。见如下代码。请教一下,怎搞才好。万分感谢!
static void simpleProfileChangeCB( uint8 paramID ){ static uint8 dataCount=0; uint8 key[16] = {1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8}; uint8 plainText[16] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; uint8 cipherText[16] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; uint8 data[20] = { 0,0×80,1,2,3,4,5,6,7,8,9}; uint8 state = 0xff; switch( paramID ) { case SIMPLEPROFILE_CHAR1: SimpleProfile_GetParameter( SIMPLEPROFILE_CHAR1, &data[0] ); LL_EXT_Decrypt(key, data, plainText); //解密 uint32 passcode; LL_Reset(); state = LL_Rand( ((uint8 *) &passcode), sizeof( uint32 ));
barry xu:
回复 barry xu:
TI的工程师们能否解答下呀,发挥你们敬业精神吧!