FM33LG0XX-SPI使用说明

FM33LG0xx 芯片提供了 3 个 SPI 接口模块,可配置为主设备或从设备,实现与外部的 SPI 通信。引脚定义如下。

在这里插入图片描述

SPI的初始化如下。
void SPIx_Init(void)
{

}
读写程序
uint32_t SPIx_WriteAndRead(SPI_Type *SPIx,uint32_t data)
{
uint8_t retry = 0;
// FL_SPI_SetSSNPin(SPIx, FL_SPI_SSN_LOW);

// FL_SPI_SetSSNPin(SPIx, FL_SPI_SSN_HIGH);
return data;
}
uint8_t SPIx_WriteData(SPI_Type *SPIx, uint8_t *data, uint32_t length)
{
uint8_t retry = 0;
// FL_SPI_SetSSNPin(SPIx, FL_SPI_SSN_LOW);
while(length–)
{
FL_SPI_WriteTXBuff(SPIx, *data);
data++;
while(!(FL_SPI_IsActiveFlag_RXBuffFull(SPIx)))
{
retry++;
if(retry > 200)return 0;
}
FL_SPI_ReadRXBuff(SPIx);
}
// FL_SPI_SetSSNPin(SPIx, FL_SPI_SSN_HIGH);

}
uint8_t SPIx_ReadData(SPI_Type *SPIx, uint8_t *data, uint32_t length)
{
uint8_t retry = 0;
// FL_SPI_SetSSNPin(SPIx, FL_SPI_SSN_LOW);
while(length–)
{
*data = SPIx_WriteAndRead(SPIx,0XFF);
data++;
}
// FL_SPI_SetSSNPin(SPIx, FL_SPI_SSN_HIGH);

}

需要注意的是
根据NSS信号由硬件(NSS)还是软件(SSI)管理配置CS的引脚控制方式。
SPI 判断发送完成, TXBUF 标志不等于移位寄存器发送完成, BUSY 标志置位有个同步过程,有从 0 到 1 的一个过程,写完 TXBUFF, BUSY 没有立刻置 1 还是 0, 在 SPI的工作时钟和系统时钟相差特别大时,这个问题会特别明显。 因此建议在开发过程中采用以下方式:
1) 全双工模式: SPI 原理是主从移位寄存器交换,可以判断 RXBUF 标志来判断接收完成。
2) 半双工模式:发送完成不能判断 RXBUF,使用 BUSY,先判断 BUSY 为 1,再判断 BUSY 为 0,发送完成。
FL_WriteTXBuff(SPI1,data);//写 TXBUF
while(SPI1->ISR &(1U<<8)) ==(1U<<8));//等待 BUSY 置 1,使用寄存器操作可以确保主时钟在 64MHZ 也可以保证程序逻辑没有问题
while(FL_SPI_IsActiveFlag_Busy(SPI1));//BUSY 变 0,发送完成

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
FM33G0xx的主要特性如下:  宽电压范围: 1.8~5.5V  工作温度范围: -40℃~+85℃  处理器内核  ARM Cortex-M0+  支持用户/特权模式  支持中断向量表重定向(VTOR)  最高40MHz主频  SWD调试接口  低功耗技术平台  典型运行功耗180uA/MHz  32KHz下LPRUN功耗: 15uA  Sleep模式下带LCD显示: 6uA  DeepSleep模式, RTC走时+24KB RAM保持+CPU内核保持: 1.2uA  RTC Backup模式, RTC走时+512字节备份寄存器, 0.9uA  存储器  128/256KB Flash空间  Flash擦写寿命: >20,000次  Flash数据保存时间: 10年@85℃  用户代码保护  24KB RAM空间  最大支持73个GPIO,最多24个外部引脚中断, 最多8个异步唤醒引脚  丰富的模拟外设  高可靠、可配置BOR电路(支持4级可编程下电复位阈值)  超低功耗PDR电路(支持4级可编程下电复位阈值)  可编程电源监测模块(SVD)  2x低功耗模拟比较器  11-bit低功耗∑-△ADC,最大支持9个外部通道  高精度温度传感器,精度优于+/-2℃  通信接口  UART*6  7816智能卡接口*2  SPI*3,主从模式  I2C*1, 主机400K  7通道外设DMA  可编程CRC校验模块  定时资源  8-bit基本定时器*4  16-bit扩展定时器*4  16-bit通用定时器*1  24-bit Systick*1  16-bit低功耗定时器*1,可在休眠模式下工作  带窗口的CPU看门狗定时器*1  系统看门狗定时器*1  低功耗实时时钟日历(RTCC),带有数字调校功能, 最高调校精度+/-0.06ppm

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值