哪位大神能详细的介绍一下,单片机怎么控制HC595,发送数据的过程是怎么样的。 怎么开始,怎么结束。 多谢了
{
int i = 0;
for (i = 0; i < 8; i++)
{
GpioLow(SCK_GPIO);
if (byte & (1 << (7 - i)))
GpioHigh(MOSI_GPIO);
else
GpioLow(MOSI_GPIO);
GpioHigh(SCK_GPIO);
}
}
评分
查看全部评分
if (val < MAX_VALUE)
Send595Byte(~(Disp_Const[val] | ((dig == g_iDotPos) ? DOT_MASK : 0)));
else
Send595Byte(0xFF);
Send595Byte(1 << dig | ((g_bLed != 0 ? 1 : 0) << 4));
//PB_ODR |= 0x10;
GpioHigh(CS_GPIO);
随便找了一段代码,大概的通讯流程如下,SCK和SDI需要设置为对应的IO口输出高低状态:
void TP595WriteByte(uint8_t data)
{
uint8 i;
TP595_SCK_CLR();
for(i=0;i<8;i++) //msb (信号上升沿有效)
{
if(data&0x80)
{
TP595_SDI_SET();
}
else
{
TP595_SDI_CLR();
}
__delay__();
TP595_SCK_SET();
__delay__();
TP595_SCK_CLR();
data = data << 1;
}
__delay__();
TP595_RCK_SET();
__delay__();
TP595_RCK_CLR();
__delay__();
}
评分
查看全部评分
给你现敲了一段代码。
发送的数据是 uint8_t disp[] = {0x80,0xaa,0x55,0x01}; 4个字节,代表有4个HC595串联。
STM32CubeMX完整工程:
评分
查看全部评分
https://www.stmcu.org.cn/module/ ... amp;fromuid=2075309
(出处: 意法半导体STM32/STM8技术社区)
评分
查看全部评分
标准库硬件spi驱动595搞过吗
HAL库,你用标准库也可以