打印
[MM32软件]

MM32F103 SPI驱动

[复制链接]
716|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hanzhen654|  楼主 | 2020-2-27 18:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/********************************************************************************************************
**函数信息 :SPIM_CSLow(SPI_TypeDef* SPIx)
**功能描述 :为选定的SPI 软件重置内部NSS 管脚
**输入参数 :SPI_TypeDef* SPIx,可选择SPI1,SPI2
**输出参数 :无
********************************************************************************************************/
void SPIM_CSLow(SPI_TypeDef* SPIx)
{
    //Spi cs assign to this pin,select
    if(SPIx == SPI1)
    {
        GPIO_ResetBits( GPIOA, GPIO_Pin_4 );
    }
    else
    {
        GPIO_ResetBits( GPIOB, GPIO_Pin_12 );
    }
}


使用特权

评论回复
沙发
hanzhen654|  楼主 | 2020-2-27 18:51 | 只看该作者
/********************************************************************************************************
**函数信息 :SPIM_CSHigh(SPI_TypeDef* SPIx)
**功能描述 :为选定的SPI 软件配置内部NSS 管脚
**输入参数 :SPI_TypeDef* SPIx,可选择SPI1,SPI2
**输出参数 :无
********************************************************************************************************/
void SPIM_CSHigh(SPI_TypeDef* SPIx)
{
    //Spi cs release
    if(SPIx == SPI1)
    {
        GPIO_SetBits( GPIOA, GPIO_Pin_4 );
    }
    else
    {
        GPIO_SetBits( GPIOB, GPIO_Pin_12 );
    }
}

使用特权

评论回复
板凳
hanzhen654|  楼主 | 2020-2-27 18:51 | 只看该作者
/********************************************************************************************************
**函数信息 :SPIM_TXEn(SPI_TypeDef* SPIx)
**功能描述 :关闭 SPI 在双向模式下的数据传输方向
**输入参数 :SPI_TypeDef* SPIx,可选择SPI1,SPI2
**输出参数 :无
********************************************************************************************************/
void SPIM_TXEn(SPI_TypeDef* SPIx)
{
    //Transmit Enable bit TXEN
    SPI_BiDirectionalLineConfig(SPIx, SPI_Direction_Tx);
}

使用特权

评论回复
地板
hanzhen654|  楼主 | 2020-2-27 18:51 | 只看该作者
/********************************************************************************************************
**函数信息 :SPIM_TXDisable(SPI_TypeDef* SPIx)
**功能描述 :关闭 SPI 在双向模式下的数据传输方向
**输入参数 :SPI_TypeDef* SPIx,可选择SPI1,SPI2
**输出参数 :无
********************************************************************************************************/
void SPIM_TXDisable(SPI_TypeDef* SPIx)
{
    //disable TXEN
    SPI_BiDirectionalLineConfig(SPIx, SPI_Disable_Tx);
}

使用特权

评论回复
5
hanzhen654|  楼主 | 2020-2-27 18:52 | 只看该作者
/********************************************************************************************************
**函数信息 :SPIM_RXEn(SPI_TypeDef* SPIx)
**功能描述 :关闭 SPI 在双向模式下的数据传输方向
**输入参数 :SPI_TypeDef* SPIx,可选择SPI1,SPI2
**输出参数 :无
********************************************************************************************************/
void SPIM_RXEn(SPI_TypeDef* SPIx)
{
    //enable RXEN
    SPI_BiDirectionalLineConfig(SPIx, SPI_Direction_Rx);
}

使用特权

评论回复
6
hanzhen654|  楼主 | 2020-2-27 18:52 | 只看该作者
/********************************************************************************************************
**函数信息 :SPIM_RXDisable(SPI_TypeDef* SPIx)
**功能描述 :关闭 SPI 在双向模式下的数据传输方向
**输入参数 :SPI_TypeDef* SPIx,可选择SPI1,SPI2
**输出参数 :无
********************************************************************************************************/
void SPIM_RXDisable(SPI_TypeDef* SPIx)
{
    //disable RXEN
    SPI_BiDirectionalLineConfig(SPIx, SPI_Disable_Rx);
}

使用特权

评论回复
7
hanzhen654|  楼主 | 2020-2-27 18:56 | 只看该作者
/********************************************************************************************************
**函数信息 :SPIMReadWriteByte(SPI_TypeDef* SPIx,unsigned char tx_data)
**功能描述 : 通过外设 SPIx 收发数据 ,用于全双工模式(同时收发)
**输入参数 :SPI_TypeDef* SPIx,可选择SPI1,SPI2  ;  tx_data
**输出参数 :无
********************************************************************************************************/
unsigned int SPIMReadWriteByte(SPI_TypeDef* SPIx, unsigned char tx_data)
{
    SPI_SendData(SPIx, tx_data);
    while (1)
    {
        if(SPI_GetFlagStatus(SPIx, SPI_FLAG_RXAVL))
        {
            return SPI_ReceiveData(SPIx);
        }
    }
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

73

主题

1766

帖子

2

粉丝