初级会员

- 积分
- 147
- 金钱
- 147
- 注册时间
- 2016-9-16
- 在线时间
- 38 小时
|

楼主 |
发表于 2016-9-27 11:56:09
|
显示全部楼层
//*********************** 驱动 **********************************//
/*
函数名;JXI5020_A
函数参数:u16 num -- 芯片中16 output 的管脚的数据
函数返回值:无
函数功能:驱动JXI5020 整个A芯片,选择对应的位选
*/
void JXI5020_A(u16 num)
{
u8 i;
u16 data=0;
GPIOA->ODR |= (0X1<<12); //OE OUPUT LOW 不驱动LED灯电流
for(i=0; i<16; i++)
{
data = num&0x8000;
num = num<<1;
if(data){JXI5020_bitA(1);}
else{JXI5020_bitA(0);}
}
GPIOA->ODR &= ~(0X1<<12); //OE OUPUT LOW 驱动LED灯电流
Delay_us(100); //控制此时间可调节LED灯的亮度
}
/*
函数名;JXI5020_bitA
函数参数:u8 data -- 位选的bit数据
函数返回值:无
函数功能:位选,往JXI5020 A芯片写入一个位选数据
*/
void JXI5020_bitA(u8 data)
{
GPIOA->ODR |= (0X1<<4); //LE OUTPUT HIGH JXI芯片不锁存
GPIOA->ODR &= ~(0X1<<0); //CLK LOW
Delay_us(20);
if(data == 0)
{
GPIOA->ODR &= ~(0X1<<1); //DIN LOW
NUM2MCOM(TESE); //段选
}
else
{
GPIOA->ODR |= (0X1<<1); //DIN HIGH
NUM2MCOM(TESE); //段选
}
GPIOA->ODR |= (0X1<<0); //CLK HIGH
Delay_us(20);
GPIOA->ODR &= ~(1<<7); //LE LOW
} |
|