当前位置: 代码迷 >> PB >> IC刷卡程序有关问题,写不进去数据,
  详细解决方案

IC刷卡程序有关问题,写不进去数据,

热度:25   发布时间:2016-04-29 08:31:16.0
IC刷卡程序问题,写不进去数据,急!
Snr = 0  
Rsnr = 0
loadmode = 0 
sector = 2
address = 9
wvalue = 1000
If icdev <= 0 Then
  icdev = rf_init(0,115200) //初始化串口
End If
If icdev < 0 Then
  m1_label.text = "Call rf_init() error.Exit!"
messagebox('',string(icdev))
  return
End If

keya="ffffffffffff"
For sector = 0 To 15
  st = rf_load_key(icdev, loadmode, sector,ref keya)//加载密码
  If st <> 0 Then
  M1_label.text = "Call rf_load_key() error.Exit!"+string(st)
  return 
End If
Next

st=1
address=1
data32=space(32)
data32="00000000000000010000000000000001"
st = rf_write_hex( icdev, address, ref data32)//address=1,向卡中第1块写入数据,对于M1卡,一次必须写一个块,为16个字节;

首先我是初始化串口和加载密码,其次我向卡中写数据失败,返回错误代码10,其意思为验证密码错误.可是我程序中并未验证密码.导致数据写不进去!请位各位高手,如何解决?(卡中验证密码的函数读不出来了!)



------解决方案--------------------
你把密钥下载到读卡器后,你还要验证密钥,如果验证不过去,那就会出错,你用的是哪家公司生产的卡?
------解决方案--------------------
keya="~hff~hff~hff~hff~hff~hff"
------解决方案--------------------
integer k
char tk[6]


icdev = rf_init(0,115200)

if icdev < 0 then
messagebox('',"读写器出错! " + string(icdev))
return
else
tk[1] = char(1)
tk[2] = char(51)
tk[3] = char(66)
tk[4] = char(153)
tk[5] = char(69)
tk[6] = char(17)
k = rf_load_key(icdev,0,1,tk)

if k <> 0 then
messagebox("M1","1装入密码出错!" + string(k))
return 
end if

tk[1] = char(7)
tk[2] = char(85)
tk[3] = char(40)
tk[4] = char(37)
tk[5] = char(32)
tk[6] = char(9)
k = rf_load_key(icdev,0,2,tk)

if k <> 0 then
messagebox("M1","2装入密码出错!" + string(k))
return 
end if

rf_beep(icdev,10)
end if


  相关解决方案