6015
- 收藏
- 点赞
- 分享
- 举报
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-07 10:54:43
-
2014-05-09 09:21:05
-
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
-
2021-01-22 22:14:48
-
2018-12-11 09:02:19
-
2013-08-27 17:37:11
-
2013-08-25 13:14:46
-
2013-12-05 21:59:30
-
2018-12-29 15:37:34
无更多相似问答 去提问
点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
悬赏问答
-
5hisi3516cv610 + gc4336p 夜晚很模糊
-
5AIISP(功能演示,SC4336P为BGGR,强制转RGGB,会导致颜色异常)
-
5rv1106使用luckfox的SDK,设备树和驱动都写好了,结果设备文件没有生成
-
5海思3516cv610中如何进行SD卡升级,根据官方文档操作,烧录进板子时,走的默认uboot,没有执行uboot升级。
-
5G610Q-IPC-38E 夜晚很暗 有什么办法解决吗 已经补光了
-
10转换模型时,SoC版本里没显示hi3516cv610芯片
-
5hisi3516cv610 使用 yolov8n 模型训练 要如何提高 这里识别的是人
-
10有人在海思平台接过SC035HGS吗
-
5关于hi3519dv500,以SD卡虚拟 U 盘操作
-
5ss928 sample_venc代码移植到openEuler24.03上执行报错 [sample_comm_vi_start_dev]-1068: vi set dev attr failed wi
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认

微信扫码分享
QQ好友