WiFi模塊中軟件驅(qū)動(dòng)編寫經(jīng)驗(yàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
現(xiàn)如今智能家居和智能應(yīng)用之間的配合離不開WiFi模塊的幫助。沒有WiFi模塊,智能家居就不能很好的工作,甚至不能很好的進(jìn)行數(shù)據(jù)的交換。本文將從軟件驅(qū)動(dòng)編寫的角度,利用RAK411來進(jìn)行舉例,為大家介紹WiFi模塊的軟件驅(qū)動(dòng)的相關(guān)經(jīng)驗(yàn)。
軟件驅(qū)動(dòng)編寫
這一部分主要涉及SPI的收發(fā)函數(shù)。中斷有數(shù)據(jù)的時(shí)候就會(huì)產(chǎn)生,SPI發(fā)時(shí)鐘去讀即可(空閑是0,有數(shù)據(jù)待讀取出來是1)。
1)、初始化單片機(jī)SPI口,注意模塊的SPI時(shí)鐘最高支持16MHz;初始化GPIO/開IO中斷;
voidSPI_Init(void)
{//初始化單片機(jī)SPI口(注意SPI時(shí)鐘不能太高);
CPOL=0-------------------------------------時(shí)鐘信號(hào)在低電平時(shí)空閑;
CPHA=0------------------------------------數(shù)據(jù)在時(shí)鐘上升沿鎖存,在時(shí)鐘下將沿傳輸;
MSB_FIRST------------------------------------數(shù)據(jù)高位首先發(fā)送;
8BITMODE-----------------------------------數(shù)據(jù)寬度為8位;
CS----------------------------------------------從機(jī)選擇信號(hào)低有效;
}
voidGPIO_Init(void)
{//設(shè)置連接到模塊INT腳的那個(gè)GPIO口為輸入狀態(tài);
//開啟該GPIO的中斷;
}
2)、voidSPI_Send_Bytes(uint8_t*p_temp,uint8_tdata_len)
{//不同單片機(jī),修改底層發(fā)函數(shù)
}
3)、voidSPI_Get_Bytes(uint8_t*p_temp,uint8_tdata_len)
{//不同單片機(jī),修改底層收函數(shù)
}
4)、GPIO中斷函數(shù)編寫
voidGPIO_PINx_IRQ_Handler(void)
{while(查詢INT腳的電平==1)
{SPI_Get_Bytes(x,y);
}
}
通過本文的介紹,可以看到在WiFi模塊中軟件驅(qū)動(dòng)編寫是非常重要的。本文針對(duì)此方面進(jìn)行著重的介紹的同時(shí)也分享了一些經(jīng)驗(yàn),通過代碼的形式讓大家能夠直觀的了解到其中的技巧。在WiFi模塊軟件驅(qū)動(dòng)編寫遇到問題的朋友不妨畫上幾分鐘來閱讀本文,相信會(huì)有意想不到的收獲。