void AVjustVol(u8 Volume)
{
u8 i;
Volume=87-Volume;
VolDate=(u16)(Volume&0x7c); //装入衰减数; 双声道都有;
VolDate=VolDate|(u16)((Volume&0x03)<<7); //D7,D8 装入衰减数 ;
VolDate=VolDate|0x0600;
GPIO_WriteBit(GPIOB, GPIO_Pin_7, Bit_RESET);
GPIO_WriteBit(GPIOB, GPIO_Pin_6, Bit_RESET);
for (i=0;i<10;i++)
{
if((VolDate&0x01)==0)
{GPIO_WriteBit(GPIOB, GPIO_Pin_7, Bit_RESET);}
else
{GPIO_WriteBit(GPIOB, GPIO_Pin_7, Bit_SET);}
I2C_Delay(10);
GPIO_WriteBit(GPIOB, GPIO_Pin_6, Bit_SET);
I2C_Delay(10);
GPIO_WriteBit(GPIOB, GPIO_Pin_7, Bit_RESET);
I2C_Delay(10);
GPIO_WriteBit(GPIOB, GPIO_Pin_6, Bit_RESET);
I2C_Delay(10);
VolDate=VolDate>>1;
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
控制幅值是这样写的
while(1)
{
u32 i;
for(i=1;i<87;i++)
{
AVjustVol(i);
}
I2C_Delay(0xff);
}
一周热门 更多>