STM32

F722ZE Parser Example

programmer j 2021. 9. 8. 16:04

ASCII프로토콜 파서 예제

- USART, USB CDC인터페이스와 연결

- 다른 문자 프로토콜을 만들때 기본 템플릿으로 사용 예정

- 소스위치

https://github.com/heecheol-jung/F722ZE_Parser_Example.git

 

1. Tools

- Board : NUCLEO F722ZE

- STM32CubeIDE : 1.6.1

- STM32CubeMX : 6.2.1

- Visual Studio 2019

 

2. Directories

- fl_parser_lib : Visual Studio 2019 프로젝트, 파서 함수 단위 테스트용

- fl_common : 펌웨어 프로젝트에서 참조하는 공통 소스 파일

- F722ZE_Parser_Poll : USART polling 펌웨어 프로젝트

- F722ZE_Parser_INT_RX : USART RX interrupt 펌웨어 프로젝트

- F722ZE_Parser_INT_RXTX : USART RX/TX interrupt 펌웨어 프로젝트

- F722ZE_Parser_DMA_RX : USART RX DMA 펌웨어 프로젝트

- F722ZE_Parser_DMA_RXTX : USART RX/TX DMA 펌웨어 프로젝트

- F722ZE_Parser_CDC : USB CDC 펌웨어 프로젝트

- USART만 테스트하는 예제는  F722ZE USART Example 참고

 

3. 문자 프로토콜 형식

그림1. 프로토콜 형식

예1) 하드웨어 버전 읽기

명령

RHVER 1\n

(장치 1번에 대한 하드웨어 버전읽기 명령)

 

응답

RHVER 1,0,0.0.1\n

장치 1번응답, 에러 없음, 버전 0.0.1

 

예2) 장치1번의 레지스터 3번에 10 쓰기

명령

WREG 1,3,10\n

 

응답

WREG 1,0\n

장치1번 쓰기, 에러 없음

 

3.1 문자 프로토콜 테스트

- 프로그램 : SerialPortMon

그림2. 시리얼 포트 열기

 

- 테스트예

  문자열 마지막에 \n붙여서 보내야 함.

그림3. 문자 명령 보내기

4. 명령어 예제

- Read hareware version : RHVER

- Read firmware version : RFVER

- Boot mode : BMODE(프로토콜에 응답하지만, Boot 모드 설정은 하지 않음)

- Reset : RESET(프로토콜에 응답하지만,  리셋은 하지 않음)

- Read register : RREG(프로토콜에 응답하지만, 레지스터 읽기는 하지 않음, 고정된 가짜 응답)

- Write register : WREG(프로토콜에 응답하지만, 레지스터 쓰기는 하지 않음)

 

5. 각 펌웨어 프로젝트에서 공통소스 추가하기

1) 새파일 추가

그림4. 새파일 추가

fl_common디렉토리의 .h와 .c파일 추가

 

2) 파일링크로 추가

그림5. 파일링크로 추가

Link to file in the file system을 체크해서 파일 이름 입력창 활성화

 

3) 파일이름 설정

그림6. 파일이름 설정

'Variables...'창을 클릭하고 PROJECT_LOC선택

fl_common디레토리의 경로와 .h와 .c파일이름을 입력하고 'Finish'클릭해서 추가

'STM32' 카테고리의 다른 글

F722ZE Parser Example2  (0) 2021.09.12
F722ZE USART Example  (0) 2021.08.29