EFM32 LG232系列单片机干货之SPI 操作外置FLASH芯片

这一篇文章里,我们再来看一下EFM32单片机如何使用SPI接口来操作外置FLASH存储器芯片。SPI总线是一种4线制的总线,传输由收发两条线同时完成。同时,时钟线独立,由主机控制。SPI总线和I2C相比,增加了片选线。再加上收发独立。这使得SPI信号传输速度比I2C快得多,特别适用于频谱数据采集、外置大容量存储器大规模读写等任务。EFM32单片机的SPI总线接口使用了USART接口,但传输时使用的是同步模式(synchronous)。注意USART口里默认的CS信号脚位,这个脚位有一种自动控制模式,也就是说由SPI硬件借口来控制CS线。但在实践中发现这种自动控制模式不算好用,有些芯片反应慢要求片选信号与开始时钟信号之间的时差要比较大。这时自动片选有可能会出现通信失败。所以,也可以不启动自动模式,而是手动控制CS信号。如果这样做的话,那在SPI接口的初始化时就不要初始化CS信号线。而是作为普通GPIO口线进行操作。在下面的SPI初始化代码中我们可以看到。

void setupSPI(void)
{
  /* Enable peripheral clocks */
  CMU_ClockEnable(cmuClock_HFPER, true);
  CMU_ClockEnable(cmuClock_GPIO, true);
  CMU_ClockEnable(cmuClock_USART2, true);
  /* To avoid false start, configure TX pin as initial high */
  GPIO_PinModeSet(gpioPortC,2,gpioModePushPull,1);//TX
  GPIO_PinModeSet(gpioPortC,3,g

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值