搜索
bottom↓
回复: 2

SPI主机发数据从机接收实现流水灯

[复制链接]

出0入0汤圆

发表于 2011-3-22 09:33:55 | 显示全部楼层 |阅读模式
我想用SPI通信,通过主机控制从机,在从机的PC口实现流水灯。但是我从机没有接收到数据,大家帮我看看程序哪里有问题。还有就是SCK的这个时序我有点不清楚。

//****发送机
#include <mega16.h>
#define uint unsigned int
#define uchar unsigned char
uchar table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void delay(uint x)
{
  uint j,k;
  for(j=x;j>0;j--)
  for(k=1140;k>0;k--);
}
#define mosi PORTB.5
#define miso PORTB.6
#define ss   PORTB.4
#define sck  PORTB.7
void main()
{
  uint i;
  DDRB=0XB0;  //SS,MOSI,SCK为输出
  SPCR=0X50;  //
  SPSR=0X00;
  while(1)
  {
    for(i=0;i<8;i++)
    {
     
     SCK=0;
     ss=0;
     SCK=1;
     SCK=0;
     SPDR=table;
     while(!SPIF);
     ss=1;
     delay(1000);
    }


//****接收机
#include <mega16.h>
#define uint unsigned int
#define uchar unsigned char

#define mosi PORTB.5
#define miso PORTB.6
#define ss   PORTB.4
#define sck  PORTB.7
uchar receive()
{
  while(!SPIF);
  return SPDR;

}
void main()
{
  DDRB=0X40; //MOSI,SS,SCK 为输入
  PORTB=0X00; //上拉
  SPCR|=0x40;
  
  DDRC=0XFF;   //流水灯输出口
  PORTC=0XFF;
  
  while(1)
  {      
    receive();
    PORTC=SPDR;
   }
}

大家帮我看看这个程序,这个程序肯定是不对的。我问了下别人,人家说那个SCK的时序是自己会给的,我觉得不可能。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2011-3-22 11:14:35 | 显示全部楼层
看了一下楼主的代码,看来楼主还不是很了解AVR的功能模块,建议楼主先好好看看数据手册!!

出0入0汤圆

 楼主| 发表于 2011-3-22 14:27:05 | 显示全部楼层
回复【1楼】chenyuqiu 小陈
-----------------------------------------------------------------------
我觉得我设置的是对的,应该是时序给的不对,但是我改了很多次还是不对。能说具体点吗?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 13:16

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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