123
返回列表 发新帖
楼主: 肖海洋

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

[复制链接]
  • TA的每日心情
    开心
    2018-3-27 10:59
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    0

    主题

    3

    帖子

    0

    新手上路

    Rank: 1

    积分
    13
    最后登录
    2019-3-14
    发表于 2018-3-27 10:57:44 | 显示全部楼层
    lpspi发送中断和接收中断如何做才能适应大规模数据传送呢
    了解代码框架真的很重要
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-11-28 08:39
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    6

    主题

    53

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    209
    最后登录
    2025-2-21
    发表于 2018-10-23 09:43:40 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    3

    主题

    15

    帖子

    1

    注册会员

    Rank: 2

    积分
    117
    最后登录
    2022-6-26
    发表于 2020-7-22 10:58:40 | 显示全部楼层
    本帖最后由 wjandsq 于 2020-7-22 11:01 编辑

    if (size % 4 == 0) {
             /* size is 4 bytes * n (n = 1 2 3 ... n) */
            lpspi_tmp = ((LPSPI1->TCR) & (~LPSPI_TCR_FRAMESZ_MASK));
            LPSPI1->TCR = (lpspi_tmp | (31U & LPSPI_TCR_FRAMESZ_MASK));
            PINS_DRV_ClearPins(PTB, 1 << 17);                           /*<! Software Control PCS3 : SET PCS3 LOW */
            for (i = 0; i < words; ++i) {
                    /* between word delay 3.8 us, between 4 words delay is 5us */
                    while (((LPSPI1->SR & LPSPI_SR_TDF_MASK) >> LPSPI_SR_TDF_SHIFT) == 0);
                    LPSPI1->TDR = (*( const uint32_t * ) (txdata_p));
                    LPSPI1->TCR = ((LPSPI1->TCR) | (LPSPI_TCR_TXMSK_MASK)); /*<! Start Transmit Hardware Clear */
                    LPSPI1->TCR = ((LPSPI1->TCR) & (~LPSPI_TCR_RXMSK_MASK));
                    LPSPI1->SR  = LPSPI_SR_TDF_MASK;                        /*<! Clear TDF flag */
                    txdata_p = txdata_p + 4;
                    while (((LPSPI1->SR & LPSPI_SR_RDF_MASK) >> LPSPI_SR_RDF_SHIFT) == 0);
                    (*(uint32_t * ) (rxdata_p)) = LPSPI1->RDR;
                    LPSPI1->SR = LPSPI_SR_RDF_MASK;                         /*<! Clear RDF flag */
                    rxdata_p = rxdata_p + 4;
            }
            while (((LPSPI1->SR & LPSPI_SR_FCF_MASK) >> LPSPI_SR_FCF_SHIFT) == 0);
            LPSPI1->SR |= LPSPI_SR_FCF_MASK;                            /*<! Clear FCF flag */
            PINS_DRV_SetPins(PTB, 1 << 17);                             /*<! Software Control PCS3 : SET PCS3 High */
            LPSPI1->CR = 0x00000000;                                    /*<! Module Disable、Debug Disable */
            return;
    }

    /* 2020/07/22  SPI FLASH WRITE AND READ is OK wjandsq@163.com  18979813931 */
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

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

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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