你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F051R8 硬件SPI問題

[复制链接]
willie 提问时间:2014-12-23 16:59 /
阅读主题, 点击返回1楼
收藏 评论13 发布时间:2014-12-23 16:59
13个回答
willie 回答时间:2014-12-24 15:04:04
小贾-370388 发表于 2014-12-24 13:09
先看一下你的管脚配连接是否正确,再用示波器观察一下波形,先发0X03再发0X00 ...

void PORT_INIT(void)
{


  GPIO_InitTypeDef GPIO_InitStructure;
  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA|RCC_AHBPeriph_GPIOC, ENABLE);      
   

  GPIO_PinAFConfig(GPIOA, GPIO_PinSource5, GPIO_AF_0);     
  GPIO_PinAFConfig(GPIOA, GPIO_PinSource6, GPIO_AF_0);     
  GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_0);

       
       
  
/* Configure SPI1 PA5:SCK PA6:MISO PA7:MOSI------------------*/
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_5|GPIO_Pin_7;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_Level_3;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
       
       
       
/* Configure PA6:MISO ------------------*/
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_6;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;                 
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_Level_3;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;              
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;            
  GPIO_Init(GPIOA, &GPIO_InitStructure);
       

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);  





uint8_t SPI1_ReadWriteByte(uint8_t TxData)                                       
{
            
        while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
        SPI_SendData8(SPI1, TxData);

        while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);
        return SPI_ReceiveData8(SPI1);

}

93C46 命令+address不是剛好8bit 那SPI_datasize_8b這一句是否要改成SPI_datasize_9b ?
是不是SPI_RxFIFOThresholdConfig(SPI1, SPI_RxFIFOThreshold_QF)這裡有問題?
網上找的都是SPI模擬居多, 我打算用的是硬件SPI,多謝各位高手的指點....

willie 回答时间:2014-12-25 21:18:32
willie 发表于 2014-12-24 15:04
void PORT_INIT(void)
{

write功能試出來了...謝謝各位樓上高手的指點有幫助到...

唯一疑惑的是93c46數據格式9bit或10bit兩種 ...我用9bit格式寫入eeprom成功
但是spi數據是設定成spi_datasize_8b方式,而不是我原先認為應該設成spi_datasize_9b  (或10b)

stm32f0 可以設成spi_datasieze範圍4b---16b,這樣的方式不就是方便針對不同數據長度的外設spi設成不同的數據格式長度嗎?怎麼我設成spi_datasize_8b也可以成功...?
damiaa 回答时间:2015-1-9 09:12:25
SPI_DataSize_8b 吧
sasmike 回答时间:2015-1-9 09:34:36
帮顶!!!
12

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版