AP ... spi " />

国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 4373|回復: 1
打印 上一主題 下一主題

[提問] spi

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2013-1-28 14:57:15 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
關鍵詞: stm32 , spi
#include
#include "sys.h"
#include "usart.h"               
#include "delay.h"
#include "stm32f10x_spi.h"
//2012.12.5開始 12.10 stm32正常
void SPI2init()
{
        RCC->APB2ENR|=0x00000028;//使能時鐘GPIOB,D時鐘
        RCC->APB1ENR|=1<<14;//使能SPI2口時鐘
       
        GPIOB->CRH&=0x000FFFFF;        //PB13,14,15初始給高電平
        GPIOB->CRH|=0xBBB00000;        //
        GPIOB->ODR|=0x0000E000;//初始為高電平
       
        GPIOB->CRH&=0x000FFFFF;        //PB13,14,15復用 50HZ 推挽輸出
        GPIOB->CRH|=0xBBB00000;

        SPI2->CR1=0x0000;//全部清零
        /*SPI2->CR1|=0x023E;//選擇STM32為主設備,256分頻,從第1個跳變開始采樣,SCK空閑時為高電平,nss軟件管理, 16bit讀寫
        SPI2->CR1&=0<<8;
        SPI2->CR1|=0x0040;//SPI使能*/
        SPI2->CR1|=0<<10;//全雙工模式       
        SPI2->CR1|=1<<9; //軟件nss管理
        SPI2->CR1|=1<<8;  

        SPI2->CR1|=1<<2; //SPI主機
        SPI2->CR1|=0<<11;//8bit數據格式       
        SPI2->CR1|=1<<1; //空閑模式下SCK為1 CPOL=1
        SPI2->CR1|=1<<0; //數據采樣從第二個時間邊沿開始,CPHA=1  
        SPI2->CR1|=7<<3; //Fsck=Fcpu/256
        SPI2->CR1|=0<<7; //MSBfirst   
        SPI2->CR1|=1<<6; //SPI設備使能
}

void SPI1init()
{
        RCC->APB2ENR|=0x00001004;//使能SPI1時鐘,GPIOA時鐘

        GPIOA->CRL&=0x000fffff;                                                       
        GPIOA->CRL|=0xBBB000000;

        SPI1->CR1=0x0000;//全部清零
        SPI1->CR1|=1<<9;//nss軟件管理
        SPI1->CR1|=0<<8;//nss置位
        SPI1->CR1|=1<<1; //空閑模式下SCK為1 CPOL=1
        SPI1->CR1|=1<<0; //數據采樣從第二個時間邊沿開始,CPHA=1
        SPI1->CR1|=0<<11;//8bit數據格式
        SPI1->CR1|=0<<2; //SPI從機
        SPI1->CR1|=0<<7; //MSBfirst
        SPI1->CR1|=1<<6;//使能
}
u8 SPI2_ReadWriteByte(u8 TxData)
{
        u8 retry=0;
        while((SPI2->SR&1<<1)==0)//等待發送區空
        {
                retry++;
                if(retry>200)return 0;
        }
                SPI2->DR=0xff; //發送一個byte
                retry=0;
        while((SPI2->SR&1<<0)==0) //等待接收完一個byte
        {
        retry++;
        if(retry>200)return 0;
        }
                return SPI2->DR; //返回收到的數據
}
u8 SPI1_ReadWriteByte(u8 TxData)
{
        u8 retry=0;
        while((SPI1->SR&1<<1)==0)//等待發送區空
        {
                retry++;
                if(retry>200)return 0;
        }
                SPI1->DR=(u16)TxData; //發送一個byte
                retry=0;
        while((SPI1->SR&1<<0)==0) //等待接收完一個byte
        {
        retry++;
        if(retry>200)return 0;
        }
                return SPI1->DR; //返回收到的數據
}
int main(void)
{       
        u8 test=0;
          Stm32_Clock_Init(9);//系統時鐘設置
        delay_init(72);                //延時初始化
        SPI2init();
        SPI1init();
        while(test==0)
        {
                SPI2_ReadWriteByte(0xff);
                test=SPI1_ReadWriteByte(0x00);
                delay_ms(10);
        }
}

我把兩個SPI直接連接在了一起,結果發現收到的死活都是test==0,不知道哪里錯了,希望各位斧正

沙發
發表于 2013-3-17 14:04:54 | 只看該作者
同等高手解答~~~
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品三区四区 | 一二三四免费高清视频社区 | 适合男人晚上看的app软件 | 日本亚洲最大的色成网站www | 亚洲欧美一区二区三区图片 | 国产黄在线观看免费观看软件视频 | 毛片女人毛片一级毛片毛片 | 免费久久精品国产片香蕉 | 高清不卡毛片免费观看 | 亚洲一区二区中文 | 最新国产成人盗摄精品视频 | 国产精品夜夜春夜夜爽 | 国产精品自在线 | 最近中文字幕完先锋资源 | 国产一区亚洲二区三区 | 日韩在线手机看片免费看 | 日韩免费 | 99精品视频在线成人精彩视频 | 特级一级毛片免费完整版视频 | 成人在线观看免费视频 | 日韩精品视频网站 | 日本一区视频在线播放 | 国产福利在线观看精品 | 99热国产这里只有精品9九 | 日本高清不卡一区久久精品 | 国产高清在线免费观看 | 好男人社区神马www在线观看 | 青青草久 | 91国内揄拍·国内精品对白 | 国产成人精品微拍视频 | 97精品一区二区三区在线不卡 | 欧美在线高清视频播放免费 | 国产精品久久久久国产精品 | 亚洲激情婷婷 | 国产美女在线观看 | 国产精品久久久亚洲第一牛牛 | 免费午夜网站 | 另类专区亚洲 | 亚洲小视频在线观看 | 日日日日日日日日日日 | 国产精品v一区二区三区 |