智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3316|回复: 6
打印 上一主题 下一主题

[软件类] K60 SPI模块有调出来的吗

[复制链接]

9

主题

76

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4101

在线王奖章活跃会员奖章优秀会员奖章论坛元老奖章

威望
1708
贡献
1133
兑换币
885
注册时间
2012-6-23
在线时间
630 小时
跳转到指定楼层
1#
发表于 2012-10-21 20:35:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1贡献
SPI0主机,SPI1从机,发送的波形没有错误,从机SPI1_POPR总是没有数据。求高人指点。
uint8 SPI1_init(uint8 mstr,uint8 pcsis,uint8 frame, uint8 mbps)
{
   
  
    //使能时钟,引脚
    SIM_SCGC6|=SIM_SCGC6_SPI1_MASK;
    PORTE_PCR0=PORT_PCR_MUX(2);
    PORTE_PCR1=PORT_PCR_MUX(2);
    PORTE_PCR2=PORT_PCR_MUX(2);
    PORTE_PCR3=PORT_PCR_MUX(2);
    //设置SPI
    if(mstr)
      SPI1_MCR|=SPI_MCR_MSTR_MASK;
    else
      SPI1_MCR&=~SPI_MCR_MSTR_MASK;
    SPI1_MCR |=SPI_MCR_PCSIS(pcsis);
    SPI1_MCR &=~SPI_MCR_MDIS_MASK;
    SPI1_MCR |=SPI_MCR_CLR_TXF_MASK;
    SPI1_MCR |=SPI_MCR_CLR_RXF_MASK;
    if(mstr)
    {
     SPI1_CTAR0|=SPI_CTAR_FMSZ(frame-1);
     SPI1_CTAR0&=~SPI_CTAR_CPOL_MASK;
     SPI1_CTAR0&=~SPI_CTAR_CPHA_MASK;
     SPI1_CTAR0&=~SPI_CTAR_LSBFE_MASK;
    }
    else
    {
     SPI1_CTAR0_SLAVE|=SPI_CTAR_FMSZ(frame-1);
     SPI1_CTAR0_SLAVE&=~SPI_CTAR_CPOL_MASK;
     SPI1_CTAR0_SLAVE&=~SPI_CTAR_CPHA_MASK;
    }
   
    //频率设定
    if(mstr)
    {
    uint8 i,j;
    uint8 temp=periph_clk_khz/1000/mbps;
    if(temp>50)
    {  
      return 0;
    }
    else if(temp>=32)
    {
      if(temp>48){i=4;j=1;}
      else if(temp>42){i=2;j=3;}
      else if(temp>40){i=3;j=2;}
      else {i=4;j=0;}
    }
    else if(temp>=16)
    {
      if(temp>30){i=2;j=2;}
      else if(temp>28){i=1;j=3;}
      else if(temp>24){i=3;j=1;}
      else if(temp>20){i=1;j=2;}
      else if(temp>18){i=2;j=1;}
      else{i=3;j=0;}
    }
    else if(temp>=6)
    {
      if(temp>14){i=0;j=3;}
      else if(temp>12){i=1;j=1;}
      else if(temp>10){i=0;j=2;}
      else if(temp>8){i=1;j=0;}
      else {i=2;j=0;SPI0_CTAR0|=SPI_CTAR_DBR_MASK;}
    }
    else
    {
      return 0;
    }      
   
    SPI1_CTAR0|=SPI_CTAR_PBR(j);
    SPI1_CTAR0|=SPI_CTAR_BR(i);
   
    }
//  SPI0_CTAR0|=SPI_CTAR_PBR(2);//预分频10M    预分频2n+1
//   SPI0_CTAR0|=SPI_CTAR_BR(2);//最终分频2MHz
   
    SPI1_SR=SPI_SR_EOQF_MASK|SPI_SR_TFUF_MASK|SPI_SR_TFFF_MASK|SPI_SR_RFOF_MASK|SPI_SR_RFDF_MASK;
    SPI1_MCR &=~SPI_MCR_HALT_MASK;  
   
    return 1;
}


uint16 SPI1_rev1()
{
  uint16 ch;
  while((SPI1_SR&SPI_SR_RFDF_MASK)==0);
  ch=SPI1_POPR;
  return ch;
}

3

主题

86

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1551
威望
818
贡献
383
兑换币
138
注册时间
2012-3-27
在线时间
175 小时
2#
发表于 2012-12-15 00:02:02 | 只看该作者
楼主,你的波特率设置是多少?
回复

使用道具 举报

5

主题

215

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4907
威望
2254
贡献
1347
兑换币
1344
注册时间
2012-9-11
在线时间
653 小时
3#
发表于 2013-2-8 17:20:41 | 只看该作者
不知道你现在成功了吗。。。。 我也遇到这个问题了,准备直接上外设慢慢调了
回复

使用道具 举报

9

主题

76

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4101

在线王奖章活跃会员奖章优秀会员奖章论坛元老奖章

威望
1708
贡献
1133
兑换币
885
注册时间
2012-6-23
在线时间
630 小时
4#
 楼主| 发表于 2013-2-8 18:09:06 | 只看该作者
/回憶_┌過去 发表于 2013-2-8 17:20
不知道你现在成功了吗。。。。 我也遇到这个问题了,准备直接上外设慢慢调了

用下LPLD的代码试试吧,LPLD的代码我没试,不过有SPI模块的
回复

使用道具 举报

5

主题

215

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4907
威望
2254
贡献
1347
兑换币
1344
注册时间
2012-9-11
在线时间
653 小时
5#
发表于 2013-2-8 19:55:53 | 只看该作者
天地亁堃 发表于 2013-2-8 18:09
用下LPLD的代码试试吧,LPLD的代码我没试,不过有SPI模块的

我知道 他们的有代码,我综合了好多的代码,但我的还是不能用,主机能发送,但从机接收不了,从机的配置也对了呀。。
回复

使用道具 举报

6

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
330
威望
173
贡献
85
兑换币
92
注册时间
2015-4-24
在线时间
36 小时
毕业学校
献县中学
6#
发表于 2015-5-14 13:33:14 | 只看该作者
你确定这样分出来的是2M???好快好快的
回复

使用道具 举报

6

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
330
威望
173
贡献
85
兑换币
92
注册时间
2015-4-24
在线时间
36 小时
毕业学校
献县中学
7#
发表于 2015-5-14 13:40:35 | 只看该作者
/回憶_┌過去 发表于 2013-2-8 19:55
我知道 他们的有代码,我综合了好多的代码,但我的还是不能用,主机能发送,但从机接收不了,从机的配置 ...

我的是从机可以,主机不可以,嘻嘻
回复

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-11-5 21:59 , Processed in 0.136367 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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