티스토리 뷰

프로젝트/nRF24L01

nRF24L01 - Receiver

Just4Fun 2018. 3. 31. 17:06

앞의 글에서 설명한 대로 송신 기능을 구현하여 동작시켜 놓은 상태이므로, 송신기에서는 주기적으로 16비트 카운트 값을 내 보내주고 있다.

이번에는 이 데이터를 수신하여 콘솔창에 출력함으로써 데이터 송신과 수신 과정이 정상적으로 수행되고 있음을 확인해 보도록 하겠다.

역시 nrf24_init() 함수에서 초기화 과정을 수행하는데 보면 알겠지만 송신기에서 사용하였던 코드와 매우 유사한 것을 알 수 있다.

단지 다른점은, 17, 18번 줄이다.

17번 줄은 수신 모드로 설정해 주는 코드이고,

18번 줄은 무선으로 날아오는 데이터를 몇 바이트 수신하였으면 수신이 완료되었는지 알 수 있도록 데이터의 크기를 알려주는 코드이다.  이 프로젝트에서는 32바이트 크기로 고정시켜서 사용하는것으로 하였다.

nrf24_receive() 함수를 이용하여 데이터를 수신한다.

nRF24L01의 status regiter안에서 Data Ready 신호가 발생할 때까지 기다린다.

정상적으로 데이터 수신이 완료되면 Rx FIFO에서 데이터를 읽어 nrf24_receive()의 인자로 알려준 buf 포인터 주소에 복사해 준다.

눈여겨 볼 점은 초기화 과정 수행후 13번 줄에 보이는 것처럼 CE 신호를 high로 만들어 nRF24L01이 Rx mode로 동작되도록 만들어 주어야 한다는 것이다.

위 그림은 수신기로 동작되도록 만든 다음 nRF24L01 내부 레지스터를 덤프하여 확인하고, 마지막 줄에 데이터를 수신하면 그 값을 계속 출력되도록 한 것이다.


receiver.zip



'프로젝트 > nRF24L01' 카테고리의 다른 글

nRF24L01 - Transmitter  (10) 2018.03.31
nRF24L01 register 읽어보기  (13) 2017.02.04
nRF24L01을 이용한 무선 통신  (2) 2017.02.04
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함