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

STM32与CR95HF模块的通信问题

[复制链接]
西奥伟 提问时间:2019-2-21 11:59 /
1ST金币
本帖最后由 西奥伟 于 2019-2-25 11:46 编辑

MCU:STM32F030C8      外设模块:CR95HF芯片
采用通信协议:SPI通信

问题:使用STM32F030C8型号的MCU,最初将CR95HF的官方的实例库的代码,移植到自己的项目当中来,官方库使用的MCU为STM32F103RB系列的,官方库初始化CPOL=1,CPHA=1 的模式,我按照官方库对比了SPI通信的4个通信引脚的设置分别如下:


官方库:    (GPIO复用为SPI1)                                            
SCK:   PA5---->GPIO_MODE_AF_PP(上拉)   
MOSI:   PA7---->GPIO_MODE_AF_PP(下拉)
MISO:   PA6---->(上拉)
NSS:     PB6---->GPIO_MODE_OUTPUT_PP(无上下拉)
IRQIN:  PA9---->GPIO_MODE_OUTPUT_PP
IRQOUT:   PA10---->GPIO_MODE_IT_FALLING(上拉)


本人项目:  (GPIO复用为SPI2)
SCK:    PB13--->GPIO_MODE_AF_PP(上拉)
MOSI:    PB14---->GPIO_MODE_AF_PP(下拉)
MISO:    PB15----->GPIO_MODE_AF_PP(上拉)
NSS:       PB12------> GPIO_MODE_OUTPUT_PP(无上下拉)
IRQIN:    PF7------>GPIO_MODE_OUTPUT_PP(无上下拉)
IRQOUT:   PB11----->GPIO_MODE_IT_FALLING(上拉)


现在出现问题的现象是:CR95HF模块初始化不成功,假如将MOSI引脚设置为下拉模式,则当使用库函数HAL_SPI_TransmitReceive()向CR95HF模块发送复位命令,接收到的值为0x00。倘若将MOSI引脚设置为上拉模式,则当使用库函数HAL_SPI_TransmitReceive()向CR95HF模块发送复位命令,接收到的值为0xFF。
接收到的数据,不是CR95HF模块正常初始化响应的数据,使用示波器检测CR95HF芯片的晶振是起振了的,示波器打SCK引脚也有方波出现。


收藏 评论1 发布时间:2019-2-21 11:59

举报

1个回答
西奥伟 回答时间:2019-2-25 11:46:15
问题已解决:经过重新查找问题,是由于硬件SPI的GPIO引脚是底层已经做好了的,但是,我自己将MISO和MOSI引脚配置相反了,最后,导致SPI2中的SCK引脚没有产生方波。

注意点:、
①stm32硬件SPI的对应组编号SPI1和SPI2、以及SPI的GPIO引脚,需要根据数据手册一一对应。
②SPI1和SPI2挂载的外设时钟APB线不一样,SPI1--》APB2,  SPI2--》APB1。
总结:利用示波器测试SPI的SCK引脚,根据SCK引脚是否产生方波,来确定SPI的初始化配置是否成功。

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1 结帖奖励

查看全部评分

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版