WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
hal_spi_v151.c 文件参考
#include <stdbool.h>
#include "securec.h"
#include "common_def.h"
#include "spi_porting.h"
#include "hal_spi_v151_regs_op.h"
#include "hal_spi_v151.h"
hal_spi_v151.c 的引用(Include)关系图:

宏定义

#define SPI_MINUMUM_CLOCK_IN_MHZ   1
 
#define SPI_MAXIMUM_CLOCK_IN_MHZ   48
 
#define QSPI_MINUMUM_CLOCK_IN_MHZ   1
 
#define QSPI_MAXIMUM_CLOCK_IN_MHZ   96
 
#define SPI_MINUMUM_CLK_DIV   2
 
#define SPI_MAXIMUM_CLK_DIV   65534
 
#define spi_mhz_to_hz(x)   ((x) * 1000000)
 
#define SPI_FRAME_BYTES_1   0x01
 
#define SPI_FRAME_BYTES_4   0x04
 
#define QSPI_WAIT_CYCLE_MAX   0x1F
 
#define MAX_SPI_GET_RX_LEVEL_RETRY_TIMES   0xFFFF
 
#define SPI_RX_INT_WAIT_TIMES   0xF
 
#define hal_spi_trans_bytes_to_word(x)
 
#define hal_spi_trans_word_31_24_bits_to_byte(x)   ((uint8_t)(((x) & 0xff000000) >> 24))
 
#define hal_spi_trans_word_23_16_bits_to_byte(x)   ((uint8_t)(((x) & 0xff0000) >> 16))
 
#define hal_spi_trans_word_15_8_bits_to_byte(x)   ((uint8_t)(((x) & 0xff00) >> 8))
 
#define hal_spi_trans_word_7_0_bits_to_byte(x)   ((uint8_t)((x) & 0xff))
 
#define hal_spi_frame_size_trans_to_frame_bytes(x)   (((x) + 1) >> 0x03)
 

函数

 __attribute__ ((weak))
 
errcode_t hal_spi_v151_init (spi_bus_t bus, const hal_spi_attr_t *attr, const hal_spi_extra_attr_t *extra_attr, hal_spi_callback_t callback)
 HAL层SPI的初始化接口。
 
errcode_t hal_spi_v151_deinit (spi_bus_t bus)
 HAL层SPI的去初始化接口。
 
errcode_t hal_spi_v151_write (spi_bus_t bus, hal_spi_xfer_data_t *data, uint32_t timeout)
 HAL层SPI发送数据接口。
 
errcode_t hal_spi_v151_read (spi_bus_t bus, hal_spi_xfer_data_t *data, uint32_t timeout)
 HAL层SPI读取数据接口(当timeout为0时会在数据读满或者fifo中没有数据的时候结束)。
 
errcode_t hal_spi_v151_ctrl (spi_bus_t bus, hal_spi_ctrl_id_t id, uintptr_t param)
 HAL层SPI控制接口。
 
void hal_spi_v151_irq_handler (spi_bus_t bus)
 SPI中断处理函数
 

宏定义说明

◆ hal_spi_frame_size_trans_to_frame_bytes

#define hal_spi_frame_size_trans_to_frame_bytes (   x)    (((x) + 1) >> 0x03)

◆ hal_spi_trans_bytes_to_word

#define hal_spi_trans_bytes_to_word (   x)
值:
((((uint32_t)(*(x))) << 24) + (((uint32_t)(*((x) + 1))) << 16) + \
(((uint32_t)(*((x) + 2))) << 8) + ((uint32_t)(*((x) + 3))))

◆ hal_spi_trans_word_15_8_bits_to_byte

#define hal_spi_trans_word_15_8_bits_to_byte (   x)    ((uint8_t)(((x) & 0xff00) >> 8))

◆ hal_spi_trans_word_23_16_bits_to_byte

#define hal_spi_trans_word_23_16_bits_to_byte (   x)    ((uint8_t)(((x) & 0xff0000) >> 16))

◆ hal_spi_trans_word_31_24_bits_to_byte

#define hal_spi_trans_word_31_24_bits_to_byte (   x)    ((uint8_t)(((x) & 0xff000000) >> 24))

◆ hal_spi_trans_word_7_0_bits_to_byte

#define hal_spi_trans_word_7_0_bits_to_byte (   x)    ((uint8_t)((x) & 0xff))

◆ MAX_SPI_GET_RX_LEVEL_RETRY_TIMES

#define MAX_SPI_GET_RX_LEVEL_RETRY_TIMES   0xFFFF

◆ QSPI_MAXIMUM_CLOCK_IN_MHZ

#define QSPI_MAXIMUM_CLOCK_IN_MHZ   96

◆ QSPI_MINUMUM_CLOCK_IN_MHZ

#define QSPI_MINUMUM_CLOCK_IN_MHZ   1

◆ QSPI_WAIT_CYCLE_MAX

#define QSPI_WAIT_CYCLE_MAX   0x1F

◆ SPI_FRAME_BYTES_1

#define SPI_FRAME_BYTES_1   0x01

◆ SPI_FRAME_BYTES_4

#define SPI_FRAME_BYTES_4   0x04

◆ SPI_MAXIMUM_CLK_DIV

#define SPI_MAXIMUM_CLK_DIV   65534

◆ SPI_MAXIMUM_CLOCK_IN_MHZ

#define SPI_MAXIMUM_CLOCK_IN_MHZ   48

◆ spi_mhz_to_hz

#define spi_mhz_to_hz (   x)    ((x) * 1000000)

◆ SPI_MINUMUM_CLK_DIV

#define SPI_MINUMUM_CLK_DIV   2

◆ SPI_MINUMUM_CLOCK_IN_MHZ

#define SPI_MINUMUM_CLOCK_IN_MHZ   1

Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2022-2022. All rights reserved.

Description: Provides V151 HAL spi
History:
2022-08-12, Create file.

◆ SPI_RX_INT_WAIT_TIMES

#define SPI_RX_INT_WAIT_TIMES   0xF

函数说明

◆ __attribute__()

__attribute__ ( (weak)  )