久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
SPI驅動CH376,親測可用
[打印本頁]
作者:
lusx123
時間:
2018-12-15 14:03
標題:
SPI驅動CH376,親測可用
#include "CH376.h"
/*******************************************************************************
* 函 數 名 : CH376_PORT_INIT
* 描 述 : 由于使用軟件模擬SPI讀寫時序,所以進行初始化.
* 如果是硬件SPI接口,那么可使用mode3(CPOL=1&CPHA=1)或
* mode0(CPOL=0&CPHA=0),CH376在時鐘上升沿采樣輸入,下降沿輸出,數
* 據位是高位在前.
*******************************************************************************/
void CH376_PORT_INIT(void){ //CH376的SPI接口初始化
GPIO_InitTypeDef GPIO_InitStructure; //定義GPIO的初始化枚舉結構
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //選擇端口號
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //選擇IO接口工作方式 //上拉電阻
GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_SetBits(CH376_INTPORT,CH376_INT); //中斷輸入腳拉高電平
GPIO_SetBits(SPI2PORT,SPI2_NSS); //片選接口接高電平
}
/*******************************************************************************
* 函 數 名 : xEndCH376Cmd 結束命令.
*******************************************************************************/
void xEndCH376Cmd(void){ //結束命令
GPIO_SetBits(SPI2PORT,SPI2_NSS); //SPI片選無效,結束CH376命令
}
/*******************************************************************************
SPI輸出8個位數據. * 發送: u8 d:要發送的數據.
*******************************************************************************/
void Spi376OutByte(u8 d){ //SPI發送一個字節數據
SPI2_SendByte(d);
}
/*******************************************************************************
* 描 述 : SPI接收8個位數據. u8 d:接收到的數據.
*******************************************************************************/
u8 Spi376InByte(void){ //SPI接收一個字節數據
while(SPI_I2S_GetFlagStatus(SPI2,SPI_I2S_FLAG_RXNE) == RESET); //如果接受寄存器沒有收到數據,循環
return SPI_I2S_ReceiveData(SPI2);
}
/*******************************************************************************
* 描 述 : 向CH376寫 命令.
* 輸 入 : u8 mCmd:要發送的命令.
*******************************************************************************/
void xWriteCH376Cmd(u8 mCmd){
GPIO_SetBits(SPI2PORT,SPI2_NSS); /* 防止之前未通過xEndCH376Cmd禁止SPI片選 */
delay_us(20);
/* 對于雙向I/O引腳模擬SPI接口,那么必須確保已經設置SPI_SCS,SPI_SCK,SPI_SDI為輸出
* 方向,SPI_SDO為輸入方向 */
GPIO_ResetBits(SPI2PORT,SPI2_NSS); /* SPI片選有效 */
Spi376OutByte( mCmd ); /* 發出命令碼 */
delay_us(1700); /* 延時1.5mS確保讀寫周期大于1.5mS,或者用上面一行的狀態查詢代替 */
}
/*******************************************************************************
* 描 述 : 向CH376寫 數據.
* 輸 入 : u8 mData:
* 要發送的數據.
*******************************************************************************/
void xWriteCH376Data(u8 mData){
Spi376OutByte( mData );
delay_us(800); /* 確保讀寫周期大于0.6mS */
}
/*******************************************************************************
* 函 數 名 : xReadCH376Data
* 描 述 : 從CH376讀數據.
*******************************************************************************/
u8 xReadCH376Data(void){
u8 i;
delay_us(10);
i = SPI2_SendByte(0xFF);
return(i);
}
/*******************************************************************************
* 描 述 : 查詢CH376中斷(INT#低電平).
* 返 回 : 0:無中斷. 1:有中斷.
*******************************************************************************/
u8 Query376Interrupt(void){
u8 i;
i = GPIO_ReadInputDataBit(CH376_INTPORT,CH376_INT);
return( i );
}
/*******************************************************************************
* 描 述 : 初始化CH376.
* 返 回 : FALSE:無中斷. TRUE:有中斷.
*******************************************************************************/
u8 mInitCH376Host(void){
u8 res;
delay_ms(600);
CH376_PORT_INIT( ); /* 接口硬件初始化 */
xWriteCH376Cmd( CMD11_CHECK_EXIST ); /* 測試單片機與CH376之間的通訊接口 */
xWriteCH376Data( 0x55 );
res = xReadCH376Data( );
// printf("res =%02x \n",(unsigned short)res);
xEndCH376Cmd( );
if ( res != 0xAA ) return( ERR_USB_UNKNOWN ); /* 通訊接口不正常,可能原因有:接口連接異常,其它設備影響(片選不唯一),串口波特率,一直在復位,晶振不工作 */
xWriteCH376Cmd( CMD11_SET_USB_MODE ); /* 設備USB工作模式 */
xWriteCH376Data( 0x06 ); //06H=已啟用的主機方式并且自動產生SOF包 ???
delay_us(20);
res = xReadCH376Data( );
// printf("res =%02x \n",(unsigned short)res);
xEndCH376Cmd( );
if ( res == CMD_RET_SUCCESS ){ //RES=51 命令操作成功
return( USB_INT_SUCCESS ); //USB事務或者傳輸操作成功
}else{
return( ERR_USB_UNKNOWN );/* 設置模式錯誤 */
}
}
作者:
admin
時間:
2018-12-15 15:13
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
av乱码
|
五月婷婷丁香婷婷
|
91精品国产91久久久久久不卞
|
www.久久久.com
|
日韩午夜一区二区三区
|
成人免费视频在线观看
|
一本综合久久
|
久久天堂
|
欧美日韩高清
|
欧美视频三级
|
国精产品一区一区三区免费完
|
欧美色图综合网
|
9久9久
|
综合一区二区三区
|
国产欧美一区二区三区日本久久久
|
一区二区三区中文字幕
|
久久国产综合
|
欧美在线视频网站
|
日本a视频
|
羞羞网站在线免费观看
|
91精品国产乱码久久久久久
|
免费毛片www com cn
|
在线婷婷
|
国产免费一区二区三区最新6
|
国产在线永久免费
|
狠狠躁18三区二区一区
|
亚洲免费在线播放
|
欧美日韩国产精品一区二区
|
日韩精品一区二区三区在线
|
少妇一区在线观看
|
一级毛片视频在线观看
|
日日夜夜狠狠操
|
国产精品久久久久久久久免费软件
|
日韩三片
|
h片在线播放
|
黄色电影在线免费观看
|
中文字幕一区在线观看视频
|
久草久草久草
|
日韩精品专区在线影院重磅
|
成人看片在线观看
|
日本视频中文字幕
|