본 단행본은 inflearn에 있는 ChrisP 강사님의 "HAL, CubeMX, TrueSTUDIO를 이용한 STM32F4 무료 강좌"를 정리한 글입니다.
강좌 바로 보기 >> https://www.inflearn.com/course/stm32f4/dashboard
[무료] HAL, CubeMX, TrueSTUDIO를 이용한 STM32F4 무료 강좌 - 인프런 | 강의
고성능 마이크로컨트롤러인 STM32F 시리즈를 처음 접하는 분들이 쉽게 시작할 수 있도록 무료 컴파일러 TrueSTUDIO 및 코드자동생성 프로그램 CubeMX 설치부터 칩 기능의 개념설명, 소스코드작성(HAL
www.inflearn.com
- SPI
내용은 강의에서 잘 설명해주므로, 여기서는 핵심만 보겠습니다.
슬레이브 입장에서는 가끔 SPI 라고 안하고, Serial Inferface, Serial Data Inferface라고 하는 경우도 있다.
- 회로도
없음
- CubeMX 설정
SPI2 -> Full-Duplex Master.
전이중 통신이다. 대부분 SPI는 이걸로 사용한다.
Hardware NSS Signal -> Disable.
이거는 Chip Select를 하드웨어 적으로 할건지 소프트웨어 적으로 할건지를 결정하는 항목이다.
하드웨어 적으로 할거면 'Hardware NSS Output Signal'을 선택한다. 이러면 정해진 핀에서만 Chip Select로 사용할 수 있다.
소프트웨어 적으로 할거면 'Disable'을 선택한다. 이러면 아무 핀에서나 Chip Select로 사용할 수 있다.
BP9 -> GPIO_OUTPUT
Chip Select를 위한 핀이다.
A4, A7 -> GPIO_OUTPUT, C7 -> GPIO_INPUT
VS1003 코덱을 위한 핀이다.
SPI2 에서는...
Prescaler -> 8
Clock Polarity (CPOL) -> HIgh
Clock Phase (CPHA) -> 2 Edge
이것들은 통신하려는 슬레이브 장치의 데이터시트를 보고 맞추어 주어야 한다.
- 코드 생성
// SPI 통신 사용 방법
/* Full-Duplex SPI 함수
* 파라미터 : SPI 채널, Txdata 변수 주소, Rxdata 변수 주소, 데이터 길이, 타임아웃
* HAL_SPI_TransmitReceive(&hspi2, &TxData, &RxData, 1, 10);
*/
// VS1003 모듈 사용
VS1003_Init();
VS1003_SoftReset();
int i=0;
while (1)
{
if(MP3_DREQ == 1)
{
if(sizeof(MP3_DATA) > i)
{
VS1003_WriteData(&MP3_DATA[i]);
i += 32;
}
else
{
//i=0;
}
}
}
'Develop Knowledge > STM32F4 by ChrisP' 카테고리의 다른 글
12강. ETH, 13강. CAN 통신, 글의 끝 (0) | 2023.02.05 |
---|---|
11강. SDIO + FATFS 파일입출력 (0) | 2023.02.05 |
9강. I2C 통신 (0) | 2023.02.03 |
8강. DAC (0) | 2023.02.03 |
7강. ADC with DMA (0) | 2023.02.03 |