打印
[STM32F0]

stm32f030cct6的SPI问题

[复制链接]
474|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
supernan|  楼主 | 2022-5-6 22:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目前有个项目用到stm32f030CCT6,原来都用stm32f030RCT6,在把SPI移过来时只是改了IO口,stm32f030CCT6用到的是PA4,PA5,PA6,PA7用来做SPI,但是一直调不通,总是死在了 while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET)这里面

使用特权

评论回复
沙发
pengf| | 2022-5-6 22:04 | 只看该作者
换成while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET)

使用特权

评论回复
板凳
supernan|  楼主 | 2022-5-6 22:06 | 只看该作者
判断忙信号也不行

使用特权

评论回复
地板
supernan|  楼主 | 2022-5-6 22:08 | 只看该作者
虽然不死在里面,但读出来的数据全是0

使用特权

评论回复
5
juventus9554| | 2022-5-6 22:10 | 只看该作者
初始化代码?

使用特权

评论回复
6
supernan|  楼主 | 2022-5-6 22:13 | 只看该作者
在030RCT6是可以的,已经量产。唯一的区别就是改了下IO口#define PIN_SPI1_CSN    GPIO_Pin_4
#define PIN_SPI1_SCK    GPIO_Pin_5
#define PIN_SPI1_MISO   GPIO_Pin_6
#define PIN_SPI1_MOSI   GPIO_Pin_7

/* Select SPI FLASH: Chip Select pin low  */
#define SPI_FLASH_CS_LOW()       GPIO_ResetBits(GPIOA, PIN_SPI1_CSN)
/* Deselect SPI FLASH: Chip Select pin high */
#define SPI_FLASH_CS_HIGH()      GPIO_SetBits(GPIOA, PIN_SPI1_CSN)


void spi_flash_init(void)
{
                GPIO_InitTypeDef GPIO_InitStructure;
                SPI_InitTypeDef   SPI_InitStructure;
               
                RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
                RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);
               
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;    //复用功能
                GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;    //推挽输出
                GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_DOWN;    //下拉
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;    //中速
                GPIO_InitStructure.GPIO_Pin = PIN_SPI1_SCK | PIN_SPI1_MOSI | PIN_SPI1_MISO;
                GPIO_Init(GPIOA, &GPIO_InitStructure);

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

                GPIO_InitStructure.GPIO_Pin = PIN_SPI1_CSN;    //配置 CSN
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    //高速
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;    //输出模式
                GPIO_Init(GPIOA, &GPIO_InitStructure);
                //GPIO_PinAFConfig(GPIOA, GPIO_PinSource15, GPIO_AF_0);

                SPI_I2S_DeInit(SPI1);    //将寄存器重设为缺省值
                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;    //通信空闲时 SCK 为低电平
                SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;    //第一个时钟沿捕获
                SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;    //软件控制 NSS
                SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8;    //SPI 速度 8 分频
                SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;    //数据传输从 MSB 开始
                SPI_InitStructure.SPI_CRCPolynomial = 7;    //CRC 校验
                SPI_Init(SPI1, &SPI_InitStructure);
                SPI_RxFIFOThresholdConfig(SPI1, SPI_RxFIFOThreshold_QF);//重要,把应答数据位设置为 8 位
                SPI_Cmd(SPI1, ENABLE);
}

使用特权

评论回复
7
zhanghqi| | 2022-5-6 22:15 | 只看该作者
用示波器看看 clk, miso,mosi管脚上的波形

使用特权

评论回复
8
supernan|  楼主 | 2022-5-6 22:18 | 只看该作者
上面看不到波形

使用特权

评论回复
9
weifeng90| | 2022-5-6 22:18 | 只看该作者
先看下IO波形对不对

使用特权

评论回复
10
xxrs| | 2022-5-6 22:22 | 只看该作者
还是没解决吗?我也是遇到同样的问题啊

使用特权

评论回复
11
renyaq| | 2022-5-6 22:25 | 只看该作者
SPI配置没问题?

使用特权

评论回复
12
dengdc| | 2022-5-6 22:26 | 只看该作者
初始化能通过?

使用特权

评论回复
13
zwll| | 2022-5-6 22:32 | 只看该作者
看不到波形 那就是配置问题啊

使用特权

评论回复
14
pengf| | 2022-5-6 22:35 | 只看该作者
应该就是配置问题

使用特权

评论回复
15
huangchui| | 2022-5-6 22:36 | 只看该作者
用cube生成一个对照看看

使用特权

评论回复
16
jlyuan| | 2022-5-6 22:38 | 只看该作者
好奇怪的问题啊

使用特权

评论回复
17
yszong| | 2022-5-6 22:40 | 只看该作者
我遇到过类似的问题,将PA4、PA5设置为串口,在对其关断的情况下,回影响PA6作为输入信号的读取,有点莫名奇妙。

使用特权

评论回复
18
supernan|  楼主 | 2022-5-6 22:43 | 只看该作者

嗯,我再好好缕一缕吧,有了好消息及时通知大家

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

730

主题

10412

帖子

6

粉丝