[역] SPI 통신 중 선택 신호에 대한 선택 SPINSS_SOFT 및 SPINSS_HARD_OUTPUT 및 SPINSS_HARD_INPUT
1706 단어 Embedded
ST 공식 코드에서 SPI는 일반적으로 다음과 같은 Init structure로 구성됩니다.
hspi1.Instance = SPI1; hspi1.Init.Mode = SPI_MODE_MASTER; hspi1.Init.Direction = SPI_DIRECTION_2LINES;//SPI 듀플렉스 설정, 사실 ST가 어떻게 생각하는지 몰라요.Init.DataSize = SPI_DATASIZE_8BIT; hspi1.Init.CLKPolarity = SPI_POLARITY_HIGH; hspi1.Init.CLKPhase = SPI_PHASE_2EDGE;/----------------------------------------------------------/hspi1.Init.NSS = SPI_NSS_SOFT;//spi를 마스터에 설정하면 NSS는 일반 IO로 사용자가 직접 코드 제어 필름을 작성하여 선택할 수 있으며 주로 hspi1에서 선택할 수 있습니다.Init.NSS = SPI_NSS_HARD_OUTPUT;//spi를 마스터에 설정하면 NSS는 SPI 전용 IO로 MCU가 자동으로 필름 선택을 제어하고 주 1은 hspi1에서 1까지만 가능합니다.Init.NSS = SPI_NSS_HARD_INPUT;//spi 설정이 slave에서 선택한 항목으로만/------------------------------------------------------------------/hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8; hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi1.Init.TIMode = SPI_TIMODE_DISABLE; hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; hspi1.Init.CRCPolynomial = 7; hspi1.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE; hspi1.Init.NSSPMode = SPI_NSS_PULSE_DISABLE;
Transmit sequence: SPI_NSS_HARD_OUTPUT 모드:
HAL_SPI_TransmitReceive( &hspi1, btx, brx, l, 5 ); // timeout 5msec;
while( hspi1.State == HAL_SPI_STATE_BUSY ); // wait for xmission complete
So I decided setting the pin manually using GPIO (using SPI_NSS_SOFT in init): SPI_NSS_SOFT 모드:
HAL_GPIO_WritePin( NSS1_GPIO_Port, NSS1_Pin, GPIO_PIN_RESET ); // NSS1 low
HAL_SPI_TransmitReceive( &hspi1, btx, brx, l, 5 ); // timeout 5msec;
while( hspi1.State == HAL_SPI_STATE_BUSY ); // wait xmission complete
HAL_GPIO_WritePin( NSS1_GPIO_Port, NSS1_Pin, GPIO_PIN_SET ); // NSS1 high
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Embedded Kafka를 통한 Kafka 테스트마이크로서비스 아키텍쳐 환경에서 서로 다른 도메인들간 분산 이벤트 처리를 위해 Kafka를 사용하는 경우가 많은데, 실제 운영하는 Kafka를 연동한 후 테스트를 진행하는 경우를 종종 목격한 적이 있습니다. 이는 외...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.