STM32F031硬件spi驱动74HC165的 基于hal

 

 

按照数据手册(安森美的手册)

STM32F031硬件spi驱动74HC165的 基于hal

 那么。DB0到DB7分别就是

STM32F031硬件spi驱动74HC165的 基于hal

 

绘制PCB

 为了方便布线

那么就把并口输入从左往右按照 5 6 3 6 2 7 1 8这样排列

STM32F031硬件spi驱动74HC165的 基于hal

 

 软件配置

STM32F031硬件spi驱动74HC165的 基于hal

 

 

首先,由于按键排布刚好个二进制位序反的,所以,这个表格要倒着看(或者改为低位在前)

 

按键 二进制中的为位置
8 0
7 1
6 2
5 3
4 4
3 5
2 6
1 7

程序,为了让更快,所以直接操作寄存器

uint8_t spiRec[3] = { };   
latch_GPIO_Port->BRR = latch_Pin; //拉低
latch_GPIO_Port->BSRR = latch_Pin; //拉高 
HAL_SPI_Receive(&hspi1, &spiRec, 3, 1000);if (spiRec[0] != 0x1f || spiRec[1] != 0xff || spiRec[2] != 0xff) { int i = 0;//做你要处理的事情
}

 

按下8号键

STM32F031硬件spi驱动74HC165的 基于hal

 

 

 7号键

STM32F031硬件spi驱动74HC165的 基于hal

 

 

 

 6号键

STM32F031硬件spi驱动74HC165的 基于hal

 

 

5号键

STM32F031硬件spi驱动74HC165的 基于hal

 

 4号键

STM32F031硬件spi驱动74HC165的 基于hal

 

 

 3号键

STM32F031硬件spi驱动74HC165的 基于hal

 

 2号键

STM32F031硬件spi驱动74HC165的 基于hal

 

 1号键

STM32F031硬件spi驱动74HC165的 基于hal

 至于为何使用这么低的通信频率,主要是因为单片机跑不起来,其实165可以跑的很高

STM32F031硬件spi驱动74HC165的 基于hal

 

 但是单片机4Mbit下就已经开始出现误码了

只能降低接口的通信频率

STM32F031硬件spi驱动74HC165的 基于hal

 

可以看得出,程序中,已经识别错了

 STM32F031硬件spi驱动74HC165的 基于hal

 

相关文章:

  • 2021-08-09
  • 2022-12-23
  • 2021-12-02
  • 2021-11-01
  • 2021-12-27
  • 2021-12-02
  • 2021-04-28
猜你喜欢
  • 2022-12-23
  • 2021-12-12
  • 2022-12-23
  • 2021-05-13
  • 2021-07-02
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案