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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版