HAL库学习梳理——SPI

笔者跟着B站铁头山羊视频学习 STM32-HAL库 开发教程。下面对HAL库 有关 SPI课程知识和应用做一个梳理。

无流可省

1、SPI 总线基本原理

SPI总线(Series Peripheral Interface)串行外设接口,适用于高速、双向数据传输场景。
MOSI

MISO

SCK
NSS

SPI 总线工作原理
比特位传输顺序
数据位长度

时钟的极性
时钟的相位
4种时钟模式

2、示例------按钮实验

实验现象:按键松开,翻转LED,在按键按下期间不翻转。

复制代码
void main()
{ 
    uint8_t pre = 1;                            // 设置两个标志来记录按钮按下的电平状态
    uint8_t cur = 1;                            // 
    uint8_t led_state = 0;                      // 记录LED的状态

  while (1)
  {
    pre = cur;            // 在按下 或者 松开的长时间内将两个状态变为一致

    if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0) == GPIO_PIN_SET)   // 判断按键是否有电平变化
    {
      cur=0; 
    }
    else
    { 
      cur=1;
    }

    if(pre!=cur)                      // 说明按键在瞬变的时刻
    {
      if(cur==0){}                    // 按键被按下的瞬间
      else                            // 按键被松开的瞬间
      {
        if(led_state == 0)            // 如果LED为灭 将其点亮 并重新设置状态
        {
            HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);
            led_state = 1;
        }
        else                          // 如果LED为亮 将其熄灭 并重新设置状态
        {
            HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);
            led_state = 0;  
        }
      }   
    }
} 

3、常用HAL库函数接口------SPI读取数据

SPI发送数据------HAL库函数接口
主机向Flash发送数据
SPI接收数据------HAL库函数接口
主机从Flash读取数据
SPI发送且接收数据------HAL库函数接口

主机向Flash发送数据同时从Flash读取数据

相关推荐
嘶哈哈哈几秒前
雷迅 CAN Babel 新品测评:一个小巧的 CAN/UART 双功能 USB 调试适配器
单片机·嵌入式硬件
Zevalin爱灰灰34 分钟前
模拟信号链电路——感应触摸电路
单片机·嵌入式硬件
国科安芯1 小时前
还是4位?ASC8T245S 与 ASC4T245S 的双向电平转换选型实战
单片机·嵌入式硬件·物联网·fpga开发·机器人·云计算
Freak嵌入式2 小时前
RP2040 内核电源调节器:软件可调电压 + 三种模式,低功耗设计的利器
人工智能·单片机·嵌入式硬件·机器人·开源
ACP广源盛139246256733 小时前
YLB3118 存储桥接芯片完整机会点@ACP#联动曙光 8000
大数据·人工智能·分布式·单片机·嵌入式硬件
蝎蟹居3 小时前
GBT 4706.1-2024逐句解读系列(31) 第7.21.1条款:说明书怎么写符合标准要求
人工智能·单片机·嵌入式硬件·物联网·安全
hongmai6668883 小时前
乐鑫ESP32-C61-WROOM-1模组:Wi-Fi 6与蓝牙LE双模的RISC-V新选择
单片机·嵌入式硬件·risc-v
电气_空空3 小时前
基于 LabVIEW的数据采集与信号处理系统的设计
嵌入式硬件·毕业设计·信号处理·labview
茉莉玫瑰花茶18 小时前
Windows 平台下的 UDP 客户端
stm32·单片机·嵌入式硬件
磨十三20 小时前
U-Boot
arm开发·嵌入式硬件