查看: 32521|回复: 22

[S32] 求一个S32K144芯片SPI的例程(易懂的)

[复制链接]

该用户从未签到

6

主题

52

帖子

0

注册会员

Rank: 2

积分
106
最后登录
2017-12-14
发表于 2016-8-17 11:33:20 | 显示全部楼层 |阅读模式
10NXP金币
如题求一个S32K144芯片SPI的例程(易懂的)!或者能告诉我一个易懂的例程连接也行。在S32DS软件里FreeRTOS里面带的的LPSPI例程实在是看不懂。

最佳答案

查看完整内容

uint8_t init_lpspi0() { ENABLE_GPIO_CLOCK(PORTB); //Enable GPIO clock at gpio_init() function in gpio.c PCC->PCCn = PCC_PCCn_PCS(1); //select spi clock source PCC->PCCn |= PCC_PCCn_CGC_MASK; //enable SPI clock PORTB->PCR[2] |= 0x00000300; //port configure as chip-specific PORTB->PCR[3] |= 0x00000300; PORTB->PCR[4] |= 0x00000300; PORTB->PCR[5] |= 0x00000300; //use as GPI ...
回复

使用道具 举报

  • TA的每日心情
    慵懒
    2016-11-14 12:50
  • 签到天数: 8 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    5

    主题

    72

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    214
    最后登录
    2022-4-19
    发表于 2016-8-17 11:33:21 | 显示全部楼层
    uint8_t init_lpspi0()
    {
            ENABLE_GPIO_CLOCK(PORTB);    //Enable GPIO clock at gpio_init() function in gpio.c
            PCC->PCCn[PCC_LPSPI0_INDEX] = PCC_PCCn_PCS(1);    //select spi clock source
            PCC->PCCn[PCC_LPSPI0_INDEX] |= PCC_PCCn_CGC_MASK;    //enable SPI clock
            PORTB->PCR[2] |=  0x00000300;    //port configure as chip-specific
            PORTB->PCR[3] |=  0x00000300;
            PORTB->PCR[4]  |=  0x00000300;
            PORTB->PCR[5]  |=  0x00000300;    //use as GPIO

            LPSPI0->CFGR1 |= LPSPI_CFGR1_MASTER_MASK;    //select as master mode

            LPSPI0->CFGR1 &= ~(LPSPI_CFGR1_PINCFG_MASK |     //SIN is used for input data and SOUT for output data.
                                               LPSPI_CFGR1_OUTCFG_MASK |     //Output data retains last value when chip select is negated.
                                                       LPSPI_CFGR1_PCSCFG_MASK |
                                                       LPSPI_CFGR1_MATCFG_MASK |     //Match disabled.
                                                       LPSPI_CFGR1_NOSTALL_MASK |    //transfers will stall when transmit FIFO is empty or receive FIFO is full.
                                                       LPSPI_CFGR1_SAMPLE_MASK );    //Input data sampled on SCK edge.
    //        LPSPI0->CFGR1 |= LPSPI_CFGR1_PCSPOL(0B0010);    //Configures the polarity of each Peripheral Chip Select(PCS) pin

    //        LPSPI0->CCR = 0x001F0000;    //1F just for test ,true PCS to SCK delay to be define
        LPSPI0->FCR   &= ~(LPSPI_FCR_RXWATER_MASK |
                                     LPSPI_FCR_TXWATER_MASK);
        LPSPI0->FCR   |= LPSPI_FCR_RXWATER(0U) | LPSPI_FCR_TXWATER(1U);
        if(LPSPI0->SR & LPSPI_SR_MBF_MASK)    //make sure SPI is idle
                return 0;
        if(LPSPI0->CR & LPSPI_CR_MEN_MASK)    //make sure SPI is not enable
                   return 0;

               LPSPI0->TCR = 0x59000007;    //TCR can writer only once.
                                     //PCS1

            LPSPI0->CR |= LPSPI_CR_MEN_MASK;    //enable SPI mode
            return 1;
    }
    回复

    使用道具 举报

  • TA的每日心情

    2017-1-4 08:05
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    85

    主题

    1629

    帖子

    1

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2569

    优秀版主

    最后登录
    2019-3-28
    发表于 2016-8-17 13:15:15 | 显示全部楼层
    FreeRTOS里面的的函数,是针对对操作系统进行了再次封装,添加了时间标志或队列啥的,如果裸奔不建议研究他的函数,再说了SPI没有那么难吧
    回复

    使用道具 举报

    该用户从未签到

    6

    主题

    52

    帖子

    0

    注册会员

    Rank: 2

    积分
    106
    最后登录
    2017-12-14
     楼主| 发表于 2016-8-17 13:53:00 | 显示全部楼层
    技术范儿 发表于 2016-8-17 13:15
    FreeRTOS里面的的函数,是针对对操作系统进行了再次封装,添加了时间标志或队列啥的,如果裸奔不建议研究他 ...

    写了个SPI但没有结果输出,不知道那个寄存器没配置到位,所以想找一个例程看看那个地方没配置好。
    回复

    使用道具 举报

  • TA的每日心情

    2017-1-4 08:05
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    85

    主题

    1629

    帖子

    1

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2569

    优秀版主

    最后登录
    2019-3-28
    发表于 2016-8-17 14:47:06 | 显示全部楼层
    肖海洋 发表于 2016-8-17 13:53
    写了个SPI但没有结果输出,不知道那个寄存器没配置到位,所以想找一个例程看看那个地方没配置好。 ...

    Debug一下然后最对照着手册看下
    回复

    使用道具 举报

    该用户从未签到

    6

    主题

    52

    帖子

    0

    注册会员

    Rank: 2

    积分
    106
    最后登录
    2017-12-14
     楼主| 发表于 2016-8-17 15:24:01 | 显示全部楼层
    技术范儿 发表于 2016-8-17 14:47
    Debug一下然后最对照着手册看下

    嗯,好的
    回复

    使用道具 举报

  • TA的每日心情

    2016-10-20 09:45
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    80

    主题

    1038

    帖子

    5

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2223
    最后登录
    2023-11-20
    发表于 2016-8-18 09:00:19 | 显示全部楼层
    求s32k片子
    回复

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24924
    最后登录
    2025-7-23
    发表于 2016-8-18 09:47:47 | 显示全部楼层
    楼主你好!
    S32的芯片还处于样品阶段,配套代码都还没有出来,所以现在你只能参考类似芯片的SPI例程,然后自己去写代码。
    回复

    使用道具 举报

    该用户从未签到

    6

    主题

    52

    帖子

    0

    注册会员

    Rank: 2

    积分
    106
    最后登录
    2017-12-14
     楼主| 发表于 2016-8-18 11:09:48 | 显示全部楼层
    小恩GG 发表于 2016-8-18 09:47
    楼主你好!
    S32的芯片还处于样品阶段,配套代码都还没有出来,所以现在你只能参考类似芯片的SPI例程,然后 ...

    嗯,好的谢谢。
    回复

    使用道具 举报

    该用户从未签到

    6

    主题

    52

    帖子

    0

    注册会员

    Rank: 2

    积分
    106
    最后登录
    2017-12-14
     楼主| 发表于 2016-8-18 11:12:19 | 显示全部楼层

    我这边也只有一块片子,还是人家的东西我拿来用的
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-24 06:37 , Processed in 0.097279 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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