[ZLG-ARM] LPC2119+SC16IS752做SPI扩展串口接收问题

[复制链接]
2920|3
 楼主| gghhz 发表于 2011-10-31 16:47 | 显示全部楼层 |阅读模式
uint8 SPI_Read_752(uint8 reg,uint8 channel)                   //reg为寄存器地址,channel为通道号    {
      uint8 Comm752[1],receive_buf[8];
      uint8 readdata;
       reg=(reg<<3)|0x80;                                                 //0x80,是否就是读命令?
      if(channel==2)    reg=reg|0x02;                                 //加入通道号
      Comm752[0]=reg;
      IO0CLR |= 1<<12;                                                     //片选激活
      SPI_Send_752(Comm752,1);                                      //发送命令字
      SPI_Read(receive_buf,1);                                           //读取数据
      readdata=receive_buf[0];                                          
      IO0SET |= 1<<12;                                                    //片选关闭
      return readdata;                                                        //返回数据
       }
///////////////////////////////////////////////////////////////////////////////////
void SPI_Read(uint8 *p,uint8 num)
{
uint8 i;
for(i=0;i<num;i++)
{
  SPI_Send(0xff,1);                                          //发送空数据
  while(0==(S0PTSR&0X80));                               //等待发送完成
  *p = S0PDR;
   }
}

MCU用得是LPC2119

现在时发送数据没有问题,但是接收不到数据,SPI发送空数据,产生时钟以便接收,那发送寄存器和接收寄存器为同一个,改如何协调,同样SC16IS752也为收发同一寄存器,不知道该如何来处理,求高手指教啊
 楼主| gghhz 发表于 2011-11-3 09:55 | 显示全部楼层
那个高手帮忙一下啊:'(
coco11 发表于 2011-11-6 17:22 | 显示全部楼层
接收FIFO中是否有数据?
 楼主| gghhz 发表于 2011-11-8 08:40 | 显示全部楼层
3# coco11

如何得知FIFO中是否有数据啊,我是通过P板和电脑用串口助手调试的,如果直接通过串口收发,是没有问题的,但是中间加一个SC16IS752,就只有发送没有接收了。读相应的寄存器也读不出来
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

70

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部