除錯SI4432要點

2021-08-08 05:10:53 字數 2425 閱讀 3178

#include "led.h"

#include "delay.h"

#include "sys.h"

#include "usart.h"

#include "spi.h"

// 0321 注意1:spi 空閒時為低電平,第二跳邊沿生效 //注意2:sdn直接接dgnd算了

// 注意3:si4432和stm32要用同乙個vcc3.3否則的話收到全為0

#define si4432_nsel paout(4) //si4432_nsel 使能

#define si4432_sdn pcout(4) //si4432_sdn 使能

#define si4432_nirq pcin(5) //si4432_nirq 中斷狀態

void si4432_init(void) ;

u8 si4432_readreg(u8 addr) ;

void si4432_writereg(u8 addr, u8 value) ;

unsigned char i;

u8 itstatus1,itstatus2,res;

int main(void)

}// 讀取暫存器

u8 si4432_readreg(u8 addr) //讀取暫存器的值

//寫暫存器

void si4432_writereg(u8 addr, u8 value) //寫暫存器

一、無線模組選型。

根據無線通訊的頻段,平常用的無線模組主要有315mhz,433mhz,2.4ghz。2.4g最近貌似比較火,像24l01,好多開發板上都配這一款晶元。433mhz頻段的模組常用的有nrf905、cc1101、si4432。在315mhz頻段好像做普通的遙控器比較多,像超外差模組。

本人想做無線通訊,選擇在2.4ghz和433mhz之間。說下區別,2.4g無線通訊頻率高、波長短、傳輸速率高、繞射能力差、通訊距離短。網上賣的模組不加功率放大也就是一百公尺以內。433mhz無線通訊頻率低、波長較長、傳輸速率低、繞射能力強、通訊距離遠。**和2.4ghz模組相當,但是距離一般在幾百公尺甚至更遠,據說加上功率放大可達一兩千公尺。本人想用來遙控智慧型車,通訊資料量不大,但是想讓距離遠一點。所以選擇433mhz模組,具體型號是si4432。

二、初次接觸si4432

我用的控制晶元是stm32f103rb。spi可以軟體模擬,也可以用硬體的。再次,建議大家用硬體的spi,穩定,減少cpu負擔。

配置硬體spi要點:

1、速率不要太高,si4432手冊上說不要大於10mhz。

2、mosi、moso、sck三個引腳配置為復用功能推挽輸出。

3、spi的時鐘極性配置為:同步時鐘的空閒狀態為 低電平

4、spi的時鐘的第2個跳變沿資料被取樣。(spi_cpha)

5、片選訊號軟體控制,自己定義乙個io空控制片選吧,方便。

四、硬體連線

stm32和si4432硬體連線,具體看模組吧。我簡單說幾個比較重要的

1、si4432的sdn引腳,為高時:晶元停止工作。為低時:晶元允許工作。

我買的模組裡,這個引腳是被引出來的,別費勁了,直接接地,

不要用io口控制高低。高手略過。

2、模組的引腳有些是2.54mm間距,有些是1.27mm。想diy的朋友注意了,我當時就忘了結果買了個1.27mm的後來轉接,麻煩了。

3、盡量

不要用杜邦線。

我開始一直用杜邦線連起來,但是經常在傳送和接收的時候出錯,初始化正常。後來用洞洞板連起來,正常。

4、si4432是3.3v供電,電源線和地線盡量和stm32的3.3v和地線連在一起。不然的話容易出錯,水平有限,不解釋,等高人。

五、軟體

除錯1、spi配置好以後,向si4432寫資料注意位址最高位置1。 如:spi1_readwritebyte(addr|0x80)

2、配置好以後,向0x00、0x01、0x02位址讀取,應該有返回值,具體看手冊,如果和手冊上的差不多就證明spi通訊成功了。

3、前導碼個數。si4432_writereg(0x34, 0x0a);  0x34是向si4432寫入前導碼的位址,0x0a是個數,但是表示其一半,也就是5個位元組。

4、剛開始,不要配置幀頭。直接禁止    si4432_writereg(0x32, 0x00 );// 禁止幀頭

5、si4432有3個gpio,一般自己是不用的,但是依然要配置,因為這個和模組相關。具體問賣家。

6、si4432主要三個狀態:接收狀態、傳送狀態、掛起狀態。傳送和接收之間可以相互轉換、但是轉換之前需要先進入掛起狀態然後至少15ms之後再進入傳送或者接收狀態。程式while(1)之前最好開始就配置為掛起狀態:si4432_writereg(0x07, 0x01);

VS DUMP除錯要點

dump除錯 1.記事本編輯如下語句,命名 reg exe是測試崩潰的exe windows registry editor version 5.00 hkey local machine software microsoft windows windows error reporting loca...

除錯AKM4432 DAC驅動問題記錄

本週在除錯ak4432 dac晶元的過程中踩了幾個小坑,記錄一下 1.選擇iic匯流排配置晶元暫存器,要注意該晶元iic特有的格式,並不是從位址 暫存器位址 資料,而是有其特定的格式,如下圖 需要注意在從位址傳送之後,若是寫操作還要再傳送0xc0 0x00,然後再接上暫存器位址 資料。同理,讀操作需...

Spring 應用除錯要點筆記

適合觀察bean定義註冊到容器的斷點位置 package org.springframework.beans.factory.support class defaultlistablebeanfactory 觀察方法 public void registerbeandefinition string...