月度归档:2014年12月

M1卡使用过程中常见问题及处理建议(转)

M1卡也称感应式IC卡的,只智能IC卡的一种,一般常用的有S50M1卡和S70M1卡,以及国产的兼容S50和S70的复旦F08的M1卡等。

    M1卡在开发及使用过程中总是出现各种各样问题,总结多年在制卡行业的经验,主要引起M1卡操作错误的问题总结起来有以下几种。

一、盲目操作

     造成某些区块误操作被锁死不能再使用。应当仔细参考表3表5的控制权限后,予先得出操作后的结果是否适合使用要求,并且列出操作顺序表单再操作。最好授权程序员对块3的设置作专人操作。

二、丢失密码

再读写时造成密码认证出错而不能访问卡。特别要求在对M1卡进行块3编程操作时,必须及时记录相关卡号的控制值,KeyA,KeyB等,而且应当有专人管理密码档案。

三、 错误设置

       对M1卡的块3控制块了解不透彻,错误的理解造成设置造成错误的设置。依照表2可知,目前M1卡的控制块仅只有8种数据块访问控制权限和8种控制块设置权限,超出这16种权限的其他代码组合,将直接引起错误设置而使卡片报废!

继续阅读

STM32驱动不带字库12864LCD

STM32驱动5V的12864LCD,控制脚和数据较最好接到STM32能容忍5v的IO口,外加上拉电阻时,控制脚和数据脚设置成开漏输出。不加上拉电阻时,控制脚设置为推拉输出,数据脚输出时,设置成推拉输出,输入时设置成上拉输入。加不加上拉电阻都能点亮LCD,关键是脚位配置。

GPIOE的PE0-PE7做数据线,控制线定义如下:

//————-PORTE———————

#define R_S GPIO_Pin_8

#define R_W GPIO_Pin_9

#define EN GPIO_Pin_10

#define _CS1 GPIO_Pin_11

#define _CS2 GPIO_Pin_12

#define _RST GPIO_Pin_13

首先IO口初始化

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_Init(GPIOE, &GPIO_InitStructure);

GPIO_ResetBits(GPIOE, EN );

GPIO_SetBits(GPIOE,_CS1 | _CS2 );

注意_CS1,_CS2初始化是一定要拉高,否则检测忙信号时,忙信号会一直是高。我就是因为这个问题卡了好几天。

以下是LCD驱动程序:

//指令宏定义

#define Display_On 0x3f //显示开指令

#define Display_Off 0x3e //显示关指令

#define Y_Col_Addr 0x40 //定位到第0列指令(列起始地址)(0-63)

#define X_Page_Addr 0xb8 //定位到第0页指令(页起始地址)(0-7)

#define Start_Line 0xc0 //定位从DDROM中的第0行开始往屏幕上显示

继续阅读