二、时序模拟代码
void led_init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO, ENABLE); //使能PB,PE端口时钟
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);
}
void led_write_data(u8 data)
{
u8 i;
for(i=0;i<8;i++)
{
led_clk=0;
if(data&0x01)
led_dio=1;
else
led_dio=0;
data>>=1;
led_clk=1;
}
}
void led_show_data(u8 *showData,u8 length)
{
u8 i;
led_stb=0;
led_write_data(0x40); //设置数据命令
led_stb=1;
led_stb=0;
led_write_data(0xc0); //设置显示地址
for(i=0;i<length;i++)
led_write_data(showData[i]); //设置显示数据
led_stb=1;
led_stb=0;
led_write_data(LED_ON|LED_BRIGHTNESS_3); //设置显示控制命令
led_stb=1;
}
|