stm32 cubeide
프로젝트 복사해도
복사한 파일의 값을 변경하면 원래 파일의 정보가 바뀜
> metadata 등의 관계에의해
+ 백업 잘해두자,, 다 날려버림
해결책
1. second 로 실행시 ide에 first라고 뜨는데 그거 제거
** 이때 contents on disk 체크 박스 꼭 해제
2. import projects
3. general > existing projects into workspace
4. second > browse
5. ioc 이름도 secoond 로 변경
// 속성에서 잘 확인
6. 디버그 속성에서도 second.elf로 변경
7. project > clean
----------------------------------------------------------------
SPI로 제어해보자
각 pin 을 눌러보면 몇번 SPI로 제어하는지 알수 있음
> SPI2
+ 핀 마다 지원하는 CLK, OUT , INPUT 이 따로 있음
>> PB13으로 SCLK 변경
PB15 : MOSI
PB14 : MISO
or
SPI2 > Transmit only master
> PB14만 GPIO로 변경 > RCLK 로 쓰기위해
>>
void send(uint8_t X) {
for (int i = 8; i >= 1; i--)
{
if (X & 0x80)
{
HAL_GPIO_WritePin(FND_DIO_GPIO_Port, FND_DIO_Pin, HIGH);
}
else
{
HAL_GPIO_WritePin(FND_DIO_GPIO_Port, FND_DIO_Pin, LOW);
}
X <<= 1;
HAL_GPIO_WritePin(FND_SCLK_GPIO_Port, FND_SCLK_Pin, LOW);
HAL_GPIO_WritePin(FND_SCLK_GPIO_Port, FND_SCLK_Pin, HIGH);
}
}
send함수 변경
함수원형
HAL_SPI_Transmit(hspi, pData, Size, Timeout)
hspi : SPI_HandleTypeDef * hspi
>
SPI_HandleTypeDef hspi2; // 자동선언
hspi2 구조체에는 hspi 에 대한 정보 담김, SPI2 설정들,,
init_fnd(&hspi2); // fnd 에 대해 initialize 해둔 함수에 넣어주기위해
함수구현
void init_fnd(SPI_HandleTypeDef * hspi){
mhspi = hspi;
_LED_0F[0] = 0xC0; //0
_LED_0F[1] = 0xF9; //1
""
""
}
함수 호출
HAL_SPI_Transmit(mhspi, &X, 1, 100);
>> 칩에서 제공 SPI로 하면 CLK 간격이 일정함
GPIO 로 하면 간격이 뒤죽박죽