stm32f103rc驱动W25Q128(SPI通讯)测试

W25Q128驱动测试

本章主要说明并演示stm32f103rct6的spi方式驱动w25q128。手册上的内容我就不细说了,大家自己看

工具: w25q128 stm32f103rct6 蓝牙串口

spi引脚
NSSPA2
MOSIPA7
MISOPA6
CLKPA5

串口
单片机
在这里插入图片描述

第一步:打开SPI

下面展示一些 打开spi1

RCC->APB2ENR | RCC_APB2ENR_SPI1EN;
GPIOA->CRL = (GPIOA->CRL & 000FF0FF) | 0XB4B00300;
SPI1->CR1 = SPI_CR1_SSM | SPI_CR1_SSI | SPI_CR1_MSTR | SPI_CR1_SPE;

第二步:驱动w25q128

下面展示一些 驱动代码

uint8_t spi_send_byte(uint8_t data)
{
  SPI1->DR = data;
  //while ((SPI1->SR & SPI_SR_TXE) == 0);
  while ((SPI1->SR & SPI_SR_RXNE) == 0);//接收完毕
  return SPI1->DR;
}

void spi_send(uint8_t data[], uint16_t len)
{
  uint16_t i;
  
  CS_0;//片选拉低
  for (i = 0; i < len; i++)
    data[i] = spi_send_byte(data[i]);//发送要发送的数据,并将返回的数据保存
  while (SPI1->SR & SPI_SR_BSY);
  CS_1;
}

第三步:测试

下面展示一些 内联代码片

//发送消息
void W25Q128ReadID(void)
 uint8_t data[] = {0x90, 0x00, 0x00, 0x00, 0x00, 0x00};
  
  spi_send(data, sizeof(data));
  dump_data(data, sizeof(data));
  //打印接收到消息
  void dump_data(uint8_t *data, uint16_t len)
{
  uint8_t i;
  
  printf("Data:");
  for (i = 0; i < len; i++)
    printf(" 0x%02x", data[i]);
  printf("\n");
}

最后主函数调用 W25Q128_ReadID();

结果

在这里插入图片描述
另外文件操作部分我结合手册后续发出,有关spi知识,自行学习。

2020.6.21:源工程代码:点击获取
或者:关注公众号媒想到叭:“MeiXiangDao2020” 回复:W25Q128
获取工程代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sf9090

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值