社区导航

 

搜索
查看: 1025|回复: 2

[求助] msp430怎么用硬件spi读取字库

[复制链接]

7

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2015-7-22 10:47 | 显示全部楼层 |阅读模式
下面是io模拟spi的程序,如果用硬件spi要怎么实现?那位大神给我讲解一下
#define ROMIN_1 P1OUT|=BIT2 /*字库IC接口定义:Rom_IN就是字库IC的SI*/
#define ROMIN_0 P1OUT&=~BIT2
#define ROMOUT_1 P1OUT|=BIT1 /*字库IC接口定义:Rom_OUT就是字库IC的SO*/
#define ROMOUT_0 P1OUT&=~BIT1
#define ROMSCK_1 P1OUT|=BIT4 /*字库IC接口定义:Rom_SCK就是字库IC的SCK*/
#define ROMSCK_0 P1OUT&=~BIT4
#define ROMCS_1 P1OUT|=BIT0 /*字库IC接口定义Rom_CS就是字库IC的CS#*/
#define ROMCS_0 P1OUT&=~BIT0


/****送指令到字库IC***/
void send_command_to_ROM( uchar datu )
{
uchar i;
for(i=0;i<8;i++ )
{
if(datu&0x80)
ROMIN_1;
else
ROMIN_0;
datu = datu<<1;
ROMSCK_0;
ROMSCK_1;
}
}


/****从字库IC中取汉字或字符数据(1个字节)***/
static uchar get_data_from_ROM( )
{


uchar i;
uchar ret_data=0;
ROMSCK_1;
for(i=0;i<8;i++)
{
P1DIR|=BIT1;
ROMOUT_1;
//P2DIR&=~BIT1;
ROMSCK_0;
ret_data=ret_data<<1;
P1DIR&=~BIT1;
if(P1IN&BIT1)
ret_data=ret_data+1;
else
ret_data=ret_data+0;
//P2DIR|=BIT1;
ROMSCK_1;
}
return(ret_data);
}






/*从相关地址(addrHigh:地址高字节,addrMid:地址中字节,addrLow:地址低字节)中连续读出DataLen个字节的数据到 pBuff的地址*/
/*连续读取*/
void get_n_bytes_data_from_ROM(uchar addrHigh,uchar addrMid,uchar addrLow,uchar *pBuff,uchar DataLen )
{
uchar i;
ROMCS_0;
LCDCS_1;
ROMSCK_0;
send_command_to_ROM(0x03);
send_command_to_ROM(addrHigh);
send_command_to_ROM(addrMid);
send_command_to_ROM(addrLow);
for(i = 0; i < DataLen; i++ )
*(pBuff+i) =get_data_from_ROM();
ROMCS_1;
}

回复

使用道具 举报

1164

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

荣誉会员勋章

发表于 2015-7-22 22:12 | 显示全部楼层
继续推荐逻辑分析仪,抓管脚电平,再用硬件模块试一下,看看能否实现相同的时序。

回复

使用道具 举报

1366

TA的帖子

0

TA的资源

纯净的硅(中级)

Rank: 5Rank: 5

发表于 2015-7-27 20:12 | 显示全部楼层
看你器件是啥时序的,spi有4种模式的,最好有个逻辑仪抓抓数据,比对下

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /6 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-1-28 13:12 , Processed in 0.133560 second(s), 18 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表