zoukankan      html  css  js  c++  java
  • 利用STM32CubeMX之SPI

    现在我们继续使用STM32CubeMX来生成SPI工程。我们的硬件平台还是我们熟悉的STM32F103C8开发板。

    设置时钟树中的配置

    现在打开SPI的设置

    如果想修改管脚的名字可以红色框中进行修改,修改后在生成代码将其来宏定义

     现在来看看我们生成工程中代码

    在 stm32f1xx_hal_spi.h中可以看到spi的操作函数。分别对应轮询,中断和DMA三种控制方式。我将先介绍轮询方式。

    HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout);
    HAL_StatusTypeDef HAL_SPI_Receive(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout);
    HAL_StatusTypeDef HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size, uint32_t Timeout);
    HAL_StatusTypeDef HAL_SPI_Transmit_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
    HAL_StatusTypeDef HAL_SPI_Receive_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
    HAL_StatusTypeDef HAL_SPI_TransmitReceive_IT(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size);
    HAL_StatusTypeDef HAL_SPI_Transmit_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
    HAL_StatusTypeDef HAL_SPI_Receive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
    HAL_StatusTypeDef HAL_SPI_TransmitReceive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size);
    HAL_StatusTypeDef HAL_SPI_DMAPause(SPI_HandleTypeDef *hspi);
    HAL_StatusTypeDef HAL_SPI_DMAResume(SPI_HandleTypeDef *hspi);
    HAL_StatusTypeDef HAL_SPI_DMAStop(SPI_HandleTypeDef *hspi);
    
    void HAL_SPI_IRQHandler(SPI_HandleTypeDef *hspi);
    void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi);
    void HAL_SPI_RxCpltCallback(SPI_HandleTypeDef *hspi);
    void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi);
    void HAL_SPI_ErrorCallback(SPI_HandleTypeDef *hspi);
    void HAL_SPI_TxHalfCpltCallback(SPI_HandleTypeDef *hspi);
    void HAL_SPI_RxHalfCpltCallback(SPI_HandleTypeDef *hspi);
    void HAL_SPI_TxRxHalfCpltCallback(SPI_HandleTypeDef *hspi);
  • 相关阅读:
    vue自定义指令:v-drag使用 拖动拖拽
    element ui 中动态添加的树形结构(带删除功能的),不管点击删除哪个都会删除掉最后一个
    element ui 表格中的插槽用法
    报错:Uncaught SyntaxError: Unexpected token u in JSON at position 0
    vue报错:Duplicate keys detected: ' '. This may cause an update error
    el-input验证规则
    el-input 给v-model赋了默认值后不能编辑
    DC-2 渗透测试
    DC:1渗透测试
    CTF easytrick
  • 原文地址:https://www.cnblogs.com/libra13179/p/6906043.html
Copyright © 2011-2022 走看看