设为首页收藏本站

Discuz! Board

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2539|回复: 1
打印 上一主题 下一主题

nrf52832 spi

[复制链接]

1

主题

1

帖子

24

积分

新手上路

Rank: 1

积分
24
跳转到指定楼层
楼主
yanli.lily 发表于 2018-11-15 19:34:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
nrf52832的SPIM在开始时发送TASKS_START,TX_BUF传输结束后会收到EVENT_ENDTX,想请教一下,这样发送的话,SPI的SCK每8 clock(即1byte)之间是没有时间间隔的,如图nrf52832时序所示,如果想在每byte间加入时间间隔(如图SPI_SCK有时间间隔所示),应该怎么做呢?

附代码如下:
ret_code_t nrf_drv_spi_transfer(uint8_t const * p_tx_buffer,
                                uint8_t       * p_rx_buffer,
                                uint8_t         buffer_length)
{
    nrf_gpio_pin_clear(SPI_CS_PIN);
    NRF_SPIM0->EVENTS_END = 0U;
NRF_SPIM0->EVENTS_STOPPED = 0U;
   
    NRF_SPIM0->TXD.MAXCNT = buffer_length;
    NRF_SPIM0->RXD.MAXCNT = buffer_length;
    NRF_SPIM0->TXD.PTR = (uint32_t)p_tx_buffer;
    NRF_SPIM0->RXD.PTR = (uint32_t)p_rx_buffer;
    NRF_SPIM0->TXD.LIST = 0;
    NRF_SPIM0->RXD.LIST = 0;
    NRF_SPIM0->TASKS_START = 1U;   
}
void SPI0_TWI0_IRQHandler()
{
    while (NRF_SPIM0->EVENTS_END == 0U);
    NRF_SPIM0->EVENTS_END = 0U;   
    nrf_gpio_pin_set(SPI_CS_PIN);
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

Archiver|手机版|小黑屋|Comsenz Inc.   

GMT+8, 2024-5-14 16:48 , Processed in 0.116195 second(s), 29 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

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