SD카드 기록 설명서
주의사항: "PA8 - PD2 핀 반드시 연결"
: 연결외부 인터럽트 트리거 핀을 사용하는 TIM3을 기반으로 하기 때문에, 두 핀을 연결해야 정상동작 가능
0. 출력 형식
00:17:56 / speed: 0.00km/h / rpm: 0.00 / Current: 34.12 [A] / Voltage: 12.34 [V]
+) 출력 형식에 사용하는 변수 (차례대로)
- uint32_t SD_Time : 0으로 초기화, 1초에 1번씩 TIM2 인터럽트를 통해 증가
- double speed: 0.0으로 초기화, 자석센서를 통해 3초에 1번씩 갱신
- double rpm: 0.0으로 초기화, 자석센서를 통해 3초에 1번씩 갱신
- float nValueCurrent = 0; 연속적 갱신 - while문에서 지속적으로 ADC_Get(), VolCur_Conversion()함수를 통해 계산함
- float nValueVolatage = 0; 연속적 갱신, Current와 동일
1. 기록 사용법
0) 기록되는 파일명:
보드를 reset 동작 할때마다, 파일 이름이 순차적으로 생김.
-> 보드나 SD카드를 차량에서 분리하지 않고, 여러 번 기록 후 한번에 확인 가능
-> SD카드를 PC에 연결해서 파일을 모두 삭제하면, 다시 data_0001부터 생성됨
1) 기록이 시작되는 방법:
reset됨과 동시에 자동으로 시작
2) 몇 초동안 기록할지 설정: (미리 기록 타임 설정, B1로 조기 종료 가능)
1. uint32_t logInterval 변수 값 설정:
ex)uint32_t logInterval = 300; 으로 되어있다면, sd카드 txt파일에 300초 동안의 time, speed, rpm 값을 기록함.
2. blue 버튼 (B1버튼) 누르기:
logInterval 만큼의 초가 지나기 전에, PC13 핀과 연결되어 있는 B1버튼이 눌린다면 기록을 그만하고 그때까지 기록된 것들만 저장됨
3) 기록 종료:
위 두 가지 방식 모두, 저장 된 후에는 printf("DATA IS SAVED\n"); 가 실행 - teraterm으로 확인할 시 문구가 출력됨
+) B1버튼이 눌러 조기종료가 된다면, printf("B1 is pushed\n"); 의 코드가 함께 실행되어 출력됨
3. 추가정보
- logInterval초가 지나 데이터 기록이 끝난 뒤에도 SD_Time변수는 1초에 1씩 증가하고 있음
게시글 ver.보고서 (내용 동일)
'프로젝트 기록 > 23SEMA_Control_STM32' 카테고리의 다른 글
[STM32] SDcard 로깅 관련 코드(최종 프로젝트)+최종백업+테스트코드 (0) | 2023.05.26 |
---|---|
[STM32] SDcard 쓰기 방법 총정리 (SPI기반, FatFS middle ware 사용) (0) | 2023.05.26 |
[STM32] SDcard: FR_NOT_READY 문제 디버깅 (0) | 2023.05.25 |
[STM32] 23_SDcard (3).zip 백업 (0) | 2023.05.23 |
[STM32] SDcard 테스트코드 파일별 백업 (0) | 2023.05.23 |