Stm32F4 discovery kit Nordic nRF24L01+ 2.4GHz RF Transceiver

    Alalı uzun zaman olmuş fırsat bulamamıştım, denemeyi bitirdim, gayet güzel çalışıyor. nordic firmasının ürünü olan bu transceiverı denemek için  iki ayrı proje  iki adet STM32f4 discovery kit kullandım, her ikisini aynı anda DEBUG etme olanağımın olmadığını anlamış bulundum
böylelikle 2.4GHz üzerinden veri alışverişi yapabiliyor. Datasında 6 pipe ile iletişim kurabildiğinin den bahsetmiş, aynı anda 6 adet vericiden veri aktarabildiğini anlıyorum.

Önce TX i kitin donanımını ayarladım, bunun için SPI1 i kullandım. RX kitide aynı şekilde SPI1 i kullandım. 32Bytle lık bilgi gönderdim ve aldım. Veri gönderme ve alma durumunda Led1-2-3-4 ün blink yaptırarak gözlemledim.

Kullandığım kütüphanede systemtick i kullanmış, neden kullandığını anlayamadım, belli bir süre sonra gecikme rutininde program default_handler e düşüyor ve çalışmıyordu. systemtick in ayarlanan yeri iptal ederek bu hatadan kurtuldum.product-20120816-141942

nRF24L01+,SPI arayüzünü kullanarak iletişim sağlıyor.Sağdaki fotoda kullandığım modül görülmekte. Her zamanki gibi EBAY dan aldım.

Donanım ayarı  için NRF24L01P.C dosyasının içerisindeki tanımlamalardan yaralanabilir donanımınızı buna göre ayarlayabilirsiniz.

#define SPI                   	        SPI1
#define GPIO_CS_CE                  	GPIOA
#define GPIO_Pin_CE              	GPIO_Pin_3
#define GPIO_Pin_CS              	GPIO_Pin_4
#define RCC_AHB1Periph_GPIO_CS_CE   	RCC_AHB1Periph_GPIOA
#define GPIO_SPI              		GPIOA
#define GPIO_Pin_SPI_SCK      		GPIO_Pin_5
#define GPIO_Pin_SPI_MISO     		GPIO_Pin_6
#define GPIO_Pin_SPI_MOSI     		GPIO_Pin_7
#define RCC_APBPeriph_SPI     		RCC_APB2Periph_SPI1
#define GPIO_Pin_SPI_CS_SOURCE          GPIO_PinSource4
#define GPIO_Pin_SPI_SCK_SOURCE         GPIO_PinSource5
#define GPIO_Pin_SPI_MISO_SOURCE        GPIO_PinSource6
#define GPIO_Pin_SPI_MOSI_SOURCE        GPIO_PinSource7
#define RCC_AHB1Periph_GPIO_SPI         RCC_AHB1Periph_GPIOA

ayrıca yukarıdaki tanımlamalar aynı dosyanın nRF24L01_HW_Init fonksiyonunu etkilemekte, dolayısıyla tanımlamaların ne iş yaptığı hakkında bilgi vermektedir.
iki ayrı projeyi ayrı ayrı debug etme ve çalıştırmak zorunda kaldım. TX i çalıştırıp emin olduktan sonra RX i debug ettim. Onun çalışmasından da emin olduktan sonra TX i başka bir güç kaynağı ile besleyerek RX e gelen bilgilerin doğruluğu için CoIDE ile debug ettim. Şükür ki veriler düzgün geliyordu.
Programın çalışması ise 32lik bir dizi tanımlayarak ( unsigned char tx_buff[32]; )TX buffer a doldurdum ve bunları RX den aldım. Alıcı ve vericinin tüm kodları için tıklayınız
Esenlikler.

%d blogcu bunu beğendi: