74hc595
遇到问题:
下发时间耗时太长;
解决方案:
数据不更新则不下发;
六路一起下发;
static u8 TEMP_BUF[24]; static u8 TEMP_BUF_BAK[24]; void sendreplay(void) { u8 i;
for(i=0;i<24;i++) { if(TEMP_BUF[i] != TEMP_BUF_BAK[i]) break; }
if(i<24) { for(i=0;i<24;i++) TEMP_BUF_BAK[i] = TEMP_BUF[i]; TI74HC595_SendMultiByte(TEMP_BUF);
}
}
|
74htc595
功能
8位串行输入
8位串行或并行输出
带3态输出的存储
寄存器带直接清零的移位寄存器100 MHZ(典型)
移出频率
ESD保护H
BM ELAJESD22-A114-A超过2000VMM
EIAJESD23-A115-A超过200 V
说明
74HC/HCT595是高速硅栅CMOS器件,
与低功率肖特基TTLLSTTL引脚兼容。
它们是根据JEDEC第号标准规定的。7
74HC/HCT595是一个8级串行移位寄存器,具有静态寄存器和3态输出。
移位寄存器和存储寄存器具有独立的时钟。
数据在SH_CP输入的正向转换中进行移位。
每个寄存器中的数据在ST _ CP输入的正向转换时传输到存储寄存器。
如果两个时钟连接在一起,则移位寄存器将始终领先存储寄存器一个时钟脉冲。
移位寄存器具有串行输入(DS)和串行标准输出(Q7),用于级联。
它还为所有8个移位寄存器级提供异步复位(有效低电平)。
存储寄存器具有8个并行的3态总线驱动器输出。
每当输出使能输入(OE)为LOW(低)时,存储寄存器中的数据就会出现在输出端
void TI74HC595_SendByte_1(uint8_t dat) { uint8_t mid; GPIO_SetBits(PC15_SH1_PORT, PC15_SH1_PIN ); GPIO_SetBits(PC14_ST1_PORT, PC14_ST1_PIN ); for(mid=0;mid<8;mid++) //·¢ËÍ 8 λÊý { if((dat >> 7) == 0x01){ GPIO_SetBits(PC13_DS1_PORT, PC13_DS1_PIN ); }else{ GPIO_ResetBits(PC13_DS1_PORT, PC13_DS1_PIN); } dat <<= 1; GPIO_ResetBits(PC15_SH1_PORT, PC15_SH1_PIN); _74DELAY; GPIO_SetBits(PC15_SH1_PORT, PC15_SH1_PIN ); _74DELAY; }
}
void TI74HC595_CS_1(void) { GPIO_ResetBits(PC14_ST1_PORT, PC14_ST1_PIN); _74DELAY; GPIO_SetBits(PC14_ST1_PORT, PC14_ST1_PIN ); _74DELAY;
} void TI74HC595_SendMultiByte_1(uint8_t *data,uint16_t len) { uint8_t i;
for (i = 0; i < len; i ++ )
{
TI74HC595_SendByte_1(data[i]);
}
TI74HC595_CS_1(); } |