View Fullscreen

 

类似6位移位寄存器

STM32:

PE4302.C

#include "PE4302.H"

void PE_GPIO_Init(void)
{    	 
  GPIO_InitTypeDef  GPIO_InitStructure;

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);//使能GPIOF时钟

  //GPIOB初始化设置
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //推挽输出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 //IO口速度为50MHz
  GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化
 
  GPIO_SetBits(GPIOC,GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6);//GPIOB设置高
}

void PE4302Set(unsigned char db)
{
  unsigned char i;
  unsigned char W_DB;
  db = db&0X3F;
  PE_CLK = 0;
  PE_LE = 0;
  for(i = 0; i < 6;i++)
  {
    W_DB = (db>>5);
    if(W_DB == 1)
    {
      PE_DAT = 1;
    }
    else
    {
      PE_DAT = 0;
    }
    PE_CLK = 1;
    db = (db << 1)&0X3F;
    PE_CLK = 0;
  }
  PE_LE = 1;
}

PE4302.H

#ifndef _PE4302_H_
#define _PE4302_H_

#include "sys.h"
#define DB_0    ((u8)0X00)
#define DB_0_5  ((u8)0X01)
#define DB_1    ((u8)0X02)
#define DB_2    ((u8)0X04)
#define DB_4    ((u8)0X08)
#define DB_8    ((u8)0X10)
#define DB_16   ((u8)0X20)
#define DB_31_5 ((u8)0X3F)

//#define PE_DIR          P1DIR
//#define PE_REN          P1REN
//#define PE_OUT          P1OUT
//#define PE_LE_BIT       BIT2
//#define PE_CLK_BIT      BIT3
//#define PE_DAT_BIT      BIT4

#define PE_LE          PCout(4)//PE_OUT &= ~PE_LE_BIT
//#define PE_LE_1          GPIO_SetBits(GPIOB,GPIO_Pin_12)//PE_OUT |=  PE_LE_BIT

#define PE_CLK         PCout(5)//PE_OUT &= ~PE_CLK_BIT
//#define PE_CLK_1         GPIO_SetBits(GPIOG,GPIO_Pin_1)//PE_OUT |=  PE_CLK_BIT

#define PE_DAT         PCout(6)//PE_OUT &= ~PE_DAT_BIT
//#define PE_DAT_1         GPIO_SetBits(GPIOF,GPIO_Pin_13)//PE_OUT |=  PE_DAT_BIT

void PE_GPIO_Init(void);
void PE4302Set(unsigned char db);
#endif

 

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>