STM32中的SPI3

名人堂再聚首 2013-12-13 09:56:37
大家好!
我现在有一个问题想要请教下:有谁调通过STM32的SPI3?SPI1和SPI2都没有问题,我的单片机是STM32F103VET6,有带SPI3的,我的代码如下,麻烦大家看下有什么问题,谢谢了!


/*
* 函数名:SPI3_Init
* 描述 :初始化SPI3端口及基模式,用于操作AD8400可调电阻
* 输入 :无
* 输出 : 无
* 调用 :外部调用
*/
void SPI3_Init(void)
{
SPI_InitTypeDef SPI_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;

/* Enable SPI3 and GPIOC Clocks */
RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI3, ENABLE);//SPI3在APB1总线上
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //CS片选
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//通用推挽输出
GPIO_Init(GPIOC, &GPIO_InitStructure);

/* Configure SPI3 pins: SCK, MISO and MOSI 可调电阻AD8400的MISO接口没有用到*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//复用引脚功能
GPIO_Init(GPIOC, &GPIO_InitStructure);

/* SPI3 configuration */
SPI_Cmd(SPI3, DISABLE);
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;//全双工
SPI_InitStructure.SPI_Mode = SPI_Mode_Master;//主模式
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;//8位数据宽度 SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;//时钟极性,配置为SPI空闲时SCK为低电平
SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;//时钟相位,奇数沿边采样
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;//软件控制片选 SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8;//预分频值 SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;//低地址存放最高有效字节 SPI_InitStructure.SPI_CRCPolynomial = 7;//校验多项式
SPI_Init(SPI3, &SPI_InitStructure);

SPI_AD8400_CS_HIGH();//初始时先将片选拉高

/* Enable SPI3 使能SPI3*/
SPI_Cmd(SPI3, ENABLE);
}


...全文
952 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xyhxing 2015-07-13
  • 打赏
  • 举报
回复
你好,AD8400是10bit数据格式,你配置的SPI3是8bit格式,请问该如何实现呢,我现在也需要使用AD8400,不知道如何使用stm32 的SPI接口给AD8400写入数据,请赐教,谢谢!
名人堂再聚首 2013-12-13
  • 打赏
  • 举报
回复 1
调通了,是引脚配置问题,应该是PB3,4,5这三个引脚对应SCK,SO,SI。

27,374

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧