STM32-HAL库11-SPI通讯(F103C6T6做主机,F103C8T6做从机)

STM32-HAL库11-SPI通讯(F103C6T6做主机,F103C8T6做从机)

一、所用材料

STM32F103C6T6最小系统板-主机
STM32F103C8T6最小系统板-从机
串口调试助手X-COM

二、所学内容

主要为实现SPI的轮询发送功能,在DSP280049C初学(2)-关于DSP280049C与STM32F103C8T6之间的SPI通讯记录中,已经详细介绍了STM32F103C8T6作为从机接收相关的配置,所以本文主要讲解SPI作为主机发送相关的配置。

三、HAL库配置

第一步:三件套SYS,RCC以及时钟配置

在这里插入图片描述

第二步:SPI主机配置

在这里插入图片描述

四、MDK5配置

第一步:spi.h

申明一个发送两个uint16字节数据的发送函数

void SendTwoData (uint16_t txdata1,uint16_t txdata2);

第二步:spi.c

void SendTwoData (uint16_t txdata1,uint16_t txdata2)
{
   
    uint8_t data[6];
    data[0] = 1;
    data[5] = 255;
    data[1] = txdata1/256;
    data[2] = txdata1%256;
    data[3] = txdata2/256;
    data[4] = txdata2%256;	
	HAL_SPI_Transmit(&hspi1, data, 6, 10000);
}

第三步:main.c

在main函数的while循环中轮询发送两个固定数据。

  while (1)
  {
   
//	 HAL_SPI_Transmit(&hspi1, tx_data, 4, 10000);
	 SendTwoData (1234,4321);
	 HAL_Delay(500);
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }

第四步:结果展示

硬件连线上SPI很简单,各自将CS,CLK,MISO,MOSI四根线一一对应这连接起来就可以了。
在从机STM32F103C8T6上,将发送的数据串口打印出来如下图所示。
在这里插入图片描述

五、附录

在这里将免费提供该文章对应的STM32F103C6T6的SPI发送源代码,和STM32F103C8T6的SPI接收源代码

  1. STM32F103C6T6的SPI发送源代码
  2. STM32F103C8T6的SPI接收源代码

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2023-12-17 09:14:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-17 09:14:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-17 09:14:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-17 09:14:03       20 阅读

热门阅读

  1. .NET基础面试题一

    2023-12-17 09:14:03       38 阅读
  2. oracle 10046事件跟踪

    2023-12-17 09:14:03       34 阅读
  3. LeetCode经典150题Golang版.189. 轮转数组

    2023-12-17 09:14:03       44 阅读
  4. 关于vue3中响应式依赖注入provide/inject

    2023-12-17 09:14:03       38 阅读
  5. Docker可视化管理工具docker.ui的搭建

    2023-12-17 09:14:03       48 阅读
  6. RecyclerView中的设计模式解读

    2023-12-17 09:14:03       42 阅读
  7. linux修复SSL/TLS协议信息泄露漏洞(CVE-2016-2183)

    2023-12-17 09:14:03       48 阅读
  8. 串口通信(5)-C#串口通信数据接收不完整解决方案

    2023-12-17 09:14:03       40 阅读