hpdell 发表于 2012-9-8 13:35:07

stc spi 求教

大侠们好,最近在搞STC-SPI的程序,但是怎么也搞不通,
单片机:STC12LE5A60S2
晶振:33MHz

硬件连接:





程序如下:

sbit CS = P1^4;//从机选择

/************SPI初始化****************/
void intial_SPI(void)
{
//SPSTAT = 0xC0;//SPIF置0,WCOL置0,写1清0
SPCTL = 0xD4;//SSIG=1(SS忽略),SPI使能,MSTR = 1(主机模式),高位在前,时钟极性CPOL=0相位CPHA=1,速率11(CPUclock/4)
CS = 1;//不片选
}
//主机发送数据并同时进行接收数据
unsigned char Master_send(unsigned char Byte)
{
   unsigned char ch = 0;
         CS = 0;                                 //选择从机
         SPDAT = Byte;                  //启动发送
         while(!(SPSTAT & 0x80));      //SPIF=0等待
         SPSTAT |= 0xC0;                //写1清0SPIF         
         CS = 1;
}

unsigned char Master_read()
{
   unsigned char ch = 0;
         CS = 0;                                     //选择从机
         while(!(SPSTAT & 0x80));         //SPIF=0等待
         SPSTAT |= 0xC0;                      //写1清0SPIF         
         ch = SPDAT;
         CS = 1;
         return(ch);
}

请问上面的程序与电路连接有什么问题没有?????????????????




lcw_swust 发表于 2012-9-9 09:28:21

1.SST25VF的第3脚接低是写保护,楼主不打算往里写数据?
2.Master_send与Master_read里别操作CS,因为有许多指令不是一个字节就完了
3.SSIG置0才是单片机忽略SS脚,才能把SS脚当成普通IO口使用
4.Master_send里没写return,应当与Master_read整合成一个函数

hpdell 发表于 2012-9-10 14:00:27

本帖最后由 hpdell 于 2012-9-10 14:06 编辑

lcw_swust 发表于 2012-9-9 09:28 static/image/common/back.gif
1.SST25VF的第3脚接低是写保护,楼主不打算往里写数据?
2.Master_send与Master_read里别操作CS,因为有许 ...

1.SST25VF的第3脚接低是写保护,楼主不打算往里写数据?

我模拟对SST25VF进行读写是可以的呀!!难道是我买到 假货了!
还有就是STC的读写一定要整合成一个函数吗????



lcw_swust 发表于 2012-9-10 15:05:52

hpdell 发表于 2012-9-10 14:00 static/image/common/back.gif
1.SST25VF的第3脚接低是写保护,楼主不打算往里写数据?

我模拟对SST25VF进行读写是可以的呀!!难道是 ...

那么,把“模拟对SST25VF进行读写是可以的”程序贴出来看看。

hpdell 发表于 2012-9-10 16:54:12

lcw_swust 发表于 2012-9-10 15:05 static/image/common/back.gif
那么,把“模拟对SST25VF进行读写是可以的”程序贴出来看看。

http://www.amobbs.com/thread-4338422-1-1.html
这个是我以前发到论坛里面的

lcw_swust 发表于 2012-9-10 16:59:39

hpdell 发表于 2012-9-10 16:54 static/image/common/back.gif
http://www.amobbs.com/thread-4338422-1-1.html
这个是我以前发到论坛里面的

那就移植过来就是了

hpdell 发表于 2012-9-10 17:34:21

lcw_swust 发表于 2012-9-10 16:59 static/image/common/back.gif
那就移植过来就是了

我想用硬件的SPI,据说速度快一些嘛,但是目前还没有实现,纠结

lcw_swust 发表于 2012-9-10 17:54:26

hpdell 发表于 2012-9-10 17:34 static/image/common/back.gif
我想用硬件的SPI,据说速度快一些嘛,但是目前还没有实现,纠结

楼主注意一下上面的第2、3点
以及:
Spi_send_byte()与Master_send()的区别
Spi_get_byte()与Master_read()的区别

hpdell 发表于 2012-9-11 16:21:17

lcw_swust 发表于 2012-9-10 17:54 static/image/common/back.gif
楼主注意一下上面的第2、3点
以及:
Spi_send_byte()与Master_send()的区别


等会试一下看看,你有没有用STC的单片机的SPI功能来驱动SST25VF的芯片,如果有,能否提供一下相关的代码啊??????????
页: [1]
查看完整版本: stc spi 求教