• 大小: 3KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-06-07
  • 语言: 其他
  • 标签: CS5532  

资源简介

CS5532读写程序,STM32控制,实测可行

资源截图

代码片段和文件信息

 /**
  ******************************************************************************
  * @file    bsp_cs5532_spi.c
  * @author  zp
  * @version V1.0
  * @date    2014-xx-xx
  * @brief   cs5532 底层应用函数bsp 
  ******************************************************************************
  * @attention
  *
  * 平台: 高铁建钢筋仪
  * 
  *
  ******************************************************************************
  */
  
#include “bsp_cs5532_IO.h“

/* Private typedef -----------------------------------------------------------*/

#define Dummy_Byte                0xFF

/**
  * @brief  CS5532 端口配置
  * @param  无  
  * @retval 无
  */
void CS5532_GPIO_Init(void)
{

    GPIO_InitTypeDef GPIO_InitStructure;              /*定义一个GPIO_InitTypeDef类型的结构体*/ 

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | CS5532_GPIO_CLK ENABLE); /*开启GPIOB的外设时钟,复用了JTAG口*/
    GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable  ENABLE);  //禁用JTAG,可以使用SW

    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;     //推挽输出   
    GPIO_InitStructure.GPIO_Pin = CS5532_CS_PIN | CS5532_SCLK_PIN | CS5532_SDI_PIN;
    GPIO_Init(CS5532_GPIO_PORT &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;     //上拉输入
    GPIO_InitStructure.GPIO_Pin = CS5532_SDO_PIN;
    GPIO_Init(CS5532_GPIO_PORT &GPIO_InitStructure);

    CS5532_CS_HIGH();    //端口全部置高
    CS5532_SCLK_HIGH();
    CS5532_SDI_HIGH();
    CS5532_SDO_HIGH();  
}
/**
  * @brief  CS5532 简单的延时函数
  * @param  __IO uint32_t nCount
  * @retval 无
  */
static void CS5532_Delay(__IO uint32_t nCount)  //简单的延时函数
{
for(; nCount != 0; nCount--);
}
/**
  * @brief  CS5532 发送单个字节
  * @param  unsigned char byte 
  * @retval 无
  */
void CS5532_SendByte(unsigned char byte)
{
    unsigned char i;
    CS5532_SCLK_LOW();
    CS5532_CS_LOW();
    for(i = 0;i < 10;i ++)  //延时50ns
        __nop();
    for(i = 0;i < 8;i ++)
    {
        if((byte << i) & 0x80) 
            CS5532_SDI_HIGH();
        else             
            CS5532_SDI_LOW();
        __nop();__nop();       //延时50ns 
        CS5532_SCLK_HIGH();  
        __nop(); __nop();__nop();__nop();__nop();__nop();__nop();__nop();//延时 > 250ns 
        CS5532_SCLK_LOW();
    }
    CS5532_SDI_HIGH();
}
/**
  * @brief  CS5532 发送配置命令及配置数据
  * @param  command 8bit命令, reg: 32bit配置信息 
  * @retval 无
  */
void CS5532_Send_REG(u8 commandu32 reg)
{
    unsigned char ik;
    CS5532_SCLK_LOW(); 
    CS5532_CS_LOW();
    for(k = 0;k < 3;k ++)  //延时50ns
        __nop();
    for(i = 0;i < 8;i ++)      //先发送命令
    {
        if((command << i) & 0x80) 
            CS5532_SDI_HIGH();
        else             
            CS5532_SDI_LOW();
        CS5532_SCLK_HIGH();  
        __nop(); __nop();__nop();__nop();__nop();__nop();__nop();__nop();//延时 > 250ns 
        CS5532_SCLK_LOW();
    }
    for(i = 0;i < 32;i ++)    //发送32位寄存器
    {
        i

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4810  2014-08-12 13:02  CS5532IO\bsp_cs5532_IO.h

     文件       7271  2014-08-29 14:31  CS5532IO\bsp_cs5532_IO.c

     目录          0  2014-06-04 20:56  CS5532IO

----------- ---------  ---------- -----  ----

                12081                    3


评论

共有 条评论