6040
- 收藏
- 点赞
- 分享
- 举报
stm32f030 驱动 si4464 spi问题
[code]void SPI_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
//Enable Clock
/*!< Configure SD_SPI pins: SCK */
GPIO_InitStruct.GPIO_Pin = SI4464_SCK_PIN;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_Level_3;
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(SI4464_SCK_PORT, &GPIO_InitStruct);
/*!< Configure SD_SPI pins: MISO */
GPIO_InitStruct.GPIO_Pin = SI4464_MISO_PIN;
GPIO_Init(SI4464_MISO_PORT, &GPIO_InitStruct);
/*!< Configure SD_SPI pins: MOSI */
GPIO_InitStruct.GPIO_Pin =SI4464_MOSI_PIN;
GPIO_Init(SI4464_MOSI_PORT, &GPIO_InitStruct);
/* Connect PXx to SD_SPI_SCK */
GPIO_PinAFConfig(SI4464_SCK_PORT, SI4464_SCK_SOURCE, SI4464_SCK_AF);
/* Connect PXx to SD_SPI_MISO */
GPIO_PinAFConfig(SI4464_MISO_PORT, SI4464_MISO_SOURCE, SI4464_MISO_AF);
/* Connect PXx to SD_SPI_MOSI */
GPIO_PinAFConfig(SI4464_MOSI_PORT, SI4464_MOSI_SOURCE, SI4464_MOSI_AF);
/*!< Configure SD_SPI_CS_PIN pin: SD Card CS pin */
//
GPIO_InitStruct.GPIO_Pin =SI4464_CS_PIN;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_Level_3;
GPIO_Init(SI4464_CS_PORT, &GPIO_InitStruct);
}[/code]
上面是SPI 的配置
这是SPI的初始化。
void SPI_init()
{
SPI_InitTypeDef SPI_InitStruct;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA| RCC_AHBPeriph_GPIOB, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);
SPI_Cmd(SPI1, DISABLE);
/*!< SD_SPI Config */
SPI_InitStruct.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
SPI_InitStruct.SPI_Mode = SPI_Mode_Master;
SPI_InitStruct.SPI_DataSize = SPI_DataSize_8b;
SPI_InitStruct.SPI_CPOL = SPI_CPOL_Low;
SPI_InitStruct.SPI_CPHA = SPI_CPHA_1Edge;
SPI_InitStruct.SPI_NSS = SPI_NSS_Soft;
SPI_InitStruct.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_16;
SPI_InitStruct.SPI_FirstBit = SPI_FirstBit_MSB;
SPI_InitStruct.SPI_CRCPolynomial = 7;
SPI_Init(SPI1, &SPI_InitStruct);
// SPI_RxFIFOThresholdConfig(SPI2, SPI_RxFIFOThreshold_QF);
SPI_Cmd(SPI1, ENABLE); /*!< SD_SPI enable */
}
上面配置有什么问题么?
下面这个函数就出问题了,一致判断 if ((SPIx->SR & SPI_I2S_FLAG) != (uint16_t)RESET) 无法得到set的值。
[code]FlagStatus SPI_I2S_GetFlagStatus(SPI_TypeDef* SPIx, uint16_t SPI_I2S_FLAG)
{
FlagStatus bitstatus = RESET;
/* Check the parameters */
assert_param(IS_SPI_ALL_PERIPH(SPIx));
assert_param(IS_SPI_I2S_GET_FLAG(SPI_I2S_FLAG));
/* Check the status of the specified SPI flag */
if ((SPIx->SR & SPI_I2S_FLAG) != (uint16_t)RESET)
{
/* SPI_I2S_FLAG is set */
bitstatus = SET;
}
else
{
/* SPI_I2S_FLAG is reset */
bitstatus = RESET;
}
/* Return the SPI_I2S_FLAG status */
return bitstatus;
}[/code]
继续debug.
{
GPIO_InitTypeDef GPIO_InitStruct;
//Enable Clock
/*!< Configure SD_SPI pins: SCK */
GPIO_InitStruct.GPIO_Pin = SI4464_SCK_PIN;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_Level_3;
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(SI4464_SCK_PORT, &GPIO_InitStruct);
/*!< Configure SD_SPI pins: MISO */
GPIO_InitStruct.GPIO_Pin = SI4464_MISO_PIN;
GPIO_Init(SI4464_MISO_PORT, &GPIO_InitStruct);
/*!< Configure SD_SPI pins: MOSI */
GPIO_InitStruct.GPIO_Pin =SI4464_MOSI_PIN;
GPIO_Init(SI4464_MOSI_PORT, &GPIO_InitStruct);
/* Connect PXx to SD_SPI_SCK */
GPIO_PinAFConfig(SI4464_SCK_PORT, SI4464_SCK_SOURCE, SI4464_SCK_AF);
/* Connect PXx to SD_SPI_MISO */
GPIO_PinAFConfig(SI4464_MISO_PORT, SI4464_MISO_SOURCE, SI4464_MISO_AF);
/* Connect PXx to SD_SPI_MOSI */
GPIO_PinAFConfig(SI4464_MOSI_PORT, SI4464_MOSI_SOURCE, SI4464_MOSI_AF);
/*!< Configure SD_SPI_CS_PIN pin: SD Card CS pin */
//
GPIO_InitStruct.GPIO_Pin =SI4464_CS_PIN;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_Level_3;
GPIO_Init(SI4464_CS_PORT, &GPIO_InitStruct);
}[/code]
上面是SPI 的配置
这是SPI的初始化。
void SPI_init()
{
SPI_InitTypeDef SPI_InitStruct;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA| RCC_AHBPeriph_GPIOB, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);
SPI_Cmd(SPI1, DISABLE);
/*!< SD_SPI Config */
SPI_InitStruct.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
SPI_InitStruct.SPI_Mode = SPI_Mode_Master;
SPI_InitStruct.SPI_DataSize = SPI_DataSize_8b;
SPI_InitStruct.SPI_CPOL = SPI_CPOL_Low;
SPI_InitStruct.SPI_CPHA = SPI_CPHA_1Edge;
SPI_InitStruct.SPI_NSS = SPI_NSS_Soft;
SPI_InitStruct.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_16;
SPI_InitStruct.SPI_FirstBit = SPI_FirstBit_MSB;
SPI_InitStruct.SPI_CRCPolynomial = 7;
SPI_Init(SPI1, &SPI_InitStruct);
// SPI_RxFIFOThresholdConfig(SPI2, SPI_RxFIFOThreshold_QF);
SPI_Cmd(SPI1, ENABLE); /*!< SD_SPI enable */
}
上面配置有什么问题么?
下面这个函数就出问题了,一致判断 if ((SPIx->SR & SPI_I2S_FLAG) != (uint16_t)RESET) 无法得到set的值。
[code]FlagStatus SPI_I2S_GetFlagStatus(SPI_TypeDef* SPIx, uint16_t SPI_I2S_FLAG)
{
FlagStatus bitstatus = RESET;
/* Check the parameters */
assert_param(IS_SPI_ALL_PERIPH(SPIx));
assert_param(IS_SPI_I2S_GET_FLAG(SPI_I2S_FLAG));
/* Check the status of the specified SPI flag */
if ((SPIx->SR & SPI_I2S_FLAG) != (uint16_t)RESET)
{
/* SPI_I2S_FLAG is set */
bitstatus = SET;
}
else
{
/* SPI_I2S_FLAG is reset */
bitstatus = RESET;
}
/* Return the SPI_I2S_FLAG status */
return bitstatus;
}[/code]
继续debug.
我来回答
回答1个
时间排序
认可量排序
认可0
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片
相关问答
-
2014-05-14 09:00:18
-
2014-05-15 09:36:34
-
2014-05-09 09:21:05
-
2014-05-07 10:54:43
-
2020-11-11 15:38:13
-
2018-12-01 10:59:55
-
2021-05-08 15:37:54
-
2020-12-12 09:27:50
-
2013-08-25 13:12:44
-
2014-05-06 13:15:21
-
2013-12-07 14:49:27
-
2014-05-06 10:27:39
-
2020-10-21 17:19:34
-
2018-12-11 09:02:19
-
2021-01-22 22:14:48
-
2013-08-27 17:37:11
-
2013-12-05 21:59:30
-
2013-08-25 13:14:46
-
2018-12-29 15:37:34
无更多相似问答 去提问
点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
悬赏问答
-
10hi35169dv500平台使用http协议推拉流UVC摄像头,帧率问题
-
10hi3516cv610关于YOLO优化和调优问题
-
10hi_mpi_vpss_get_chn_frame err:0xa0078016报错
-
5gk7205v200(hisi3516ev200)如何接入b656?
-
30pipe管道创建失败
-
10atc转换模型失败
-
20拍摄静止画面显示正常,拍摄运动的画面出现马赛克显示
-
100hi3516cv610 通过易百纳官方SDK中编译出的uboot env kernel,移植到自己的工程中,MPP初始化时出现内核拷贝数据到用户端时出现错误导致内核进入pain模式进而时内核重启
-
5hisi3519 gs2972 bt1120 转sdi 无法正常显示问题
-
5hisi3516cv610 + gc4336p 夜晚很模糊
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认

微信扫码分享
QQ好友