查看: 17958|回复: 25

[求助] K40或者K60的SPI

[复制链接]

该用户从未签到

2

主题

6

帖子

0

新手上路

Rank: 1

积分
20
最后登录
1970-1-1
发表于 2012-8-7 20:57:11 | 显示全部楼层 |阅读模式
 研究了快一周了,基本上已经实现了SPI0查询方式的作为主机的发射与接收,
我准备使用SPI0作为主机,SPI1作为从机,主机发射,从机接收,
但是从机的接收配置一直不对,示波器上SPI0发射的SCLK与SOUT都是正确的
请问各位大神SPI1的从机配置接收有啥例程没有,不要中断方式,查询方式的那种。我保证做完之后把自己的这段代码公开,帮助更多的同学
我知道答案 目前已有25人回答
回复

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-8-8 10:55:11 | 显示全部楼层

    RE:K40或者K60的SPI

    官方例程有,论坛里面的例程你可以参考一下。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    6

    帖子

    0

    新手上路

    Rank: 1

    积分
    20
    最后登录
    1970-1-1
     楼主| 发表于 2012-8-9 08:58:02 | 显示全部楼层

    回复:K40或者K60的SPI

    回复第 2 楼 于2012-08-08 10:55:11发表:
    官方例程有,论坛里面的例程你可以参考一下。
     
    void SPI1_Init(void)//SPI1 setup by FY   slave  recieve mode 
    {
           
            /* set PORTE pin 1 to DSPI1.SOUT*/
            PORTE_PCR4 =  PORT_PCR_MUX(2);
            /* set PORTE pin 2 to DSPI1.SCK*/
            PORTE_PCR1 =  PORT_PCR_MUX(2);
            /* set PORTE pin 3 to DSPI1.SIN*/
            PORTE_PCR2 =  PORT_PCR_MUX(2);
            /* set PORTE pin 4 to DSPI1.CS0*/
            PORTE_PCR3 =  PORT_PCR_MUX(2);
            
            
            /* Enable clock gate to DSPI1 module */
            SIM_SCGC6 |= SIM_SCGC6_SPI1_MASK;
            
            SPI1_MCR|= SPI_MCR_PCSIS_MASK
                        |SPI_MCR_CLR_RXF_MASK ; 
                       
            SPI1_CTAR_SLAVE(0) = 0|SPI_CTAR_SLAVE_FMSZ(7)
                                  | SPI_CTAR_SLAVE_CPOL_MASK 
                                  | SPI_CTAR_SLAVE_CPHA_MASK ; 
            
     
            SPI1_PUSHR_SLAVE = SPI_PUSHR_SLAVE_TXDATA(0xf0);
         
            SPI1_SR    =        ( SPI_SR_EOQF_MASK
                                  |SPI_SR_RFOF_MASK 
                                  |SPI_SR_RFDF_MASK ) ;
     
         
            //SPI1_MCR &= ~SPI_MCR_HALT_MASK;
     
           
    }

    uint_16 SPI1_Recieve_byte()
    {
            uint_16 u16Data;
          
           
           
            while(!(SPI1_SR & SPI_SR_EOQF_MASK))
            {
             ;
            }/*EndWhile*/
            /* Clear the EOQF by writting a 1 to it */
            SPI1_SR |= SPI_SR_EOQF_MASK;
            /* Read the byte form the DSPI_POPR register */
     
            u16Data = (uint_16)SPI1_POPR;
     
            return(u16Data);
    }

     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    6

    帖子

    0

    新手上路

    Rank: 1

    积分
    20
    最后登录
    1970-1-1
     楼主| 发表于 2012-8-9 08:59:23 | 显示全部楼层

    回复:K40或者K60的SPI

    死活不行,我弄了GPIO模拟给他CS以及时钟,SIN接在3.3V上面,结果单步调试根本什么都没有 寄存器里没接到一个东西
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-8-9 09:33:05 | 显示全部楼层

    RE:K40或者K60的SPI

    1、开启SPI时钟了吗?
    2、SPI的IO口配置和例程一样吗?
    3、你额可以使用例程测试一下,看看例程是不是能够输出。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12

    主题

    136

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    256
    最后登录
    2021-1-15
    发表于 2012-8-14 07:38:13 | 显示全部楼层

    RE:K40或者K60的SPI

    uint32_t dspi0_master_dspi1_slave_test_dma(uint8_t mux)
    {
        s32 i, data= 0x80011234,data1= 0x80011122;
        int error_count = 0;
        for(i=0; i
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12

    主题

    136

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    256
    最后登录
    2021-1-15
    发表于 2012-8-14 07:39:14 | 显示全部楼层

    RE:K40或者K60的SPI

    这个是官方的代码,用DMA方式实现的,一个主 和 一个从
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    6

    帖子

    0

    新手上路

    Rank: 1

    积分
    20
    最后登录
    1970-1-1
     楼主| 发表于 2012-8-14 12:46:39 | 显示全部楼层

    回复:K40或者K60的SPI

    回复第 7 楼 于2012-08-14 07:39:14发表:
    这个是官方的代码,用DMA方式实现的,一个主 和 一个从
    谢谢啦,我已经调出来了,
     

    SPI_and_GPIO_slave_R.rar

    371.21 KB, 下载次数: 231

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    6

    帖子

    0

    新手上路

    Rank: 1

    积分
    20
    最后登录
    1970-1-1
     楼主| 发表于 2012-8-14 12:47:20 | 显示全部楼层

    回复:K40或者K60的SPI

    http://www.pudn.com/downloads468/sourcecode/embedded/detail1962323.html这上面也有
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    1

    帖子

    0

    新手上路

    Rank: 1

    积分
    0
    最后登录
    1970-1-1
    发表于 2012-10-21 20:08:03 | 显示全部楼层

    回复:K40或者K60的SPI

    不能下载?好像要一个积分。。。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-24 02:51 , Processed in 0.107778 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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