硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5748|回复: 7
收起左侧

[有问必答] 求助: 升级STM32F4固件库V1.5.1后can通信的问题

[复制链接]

14

主题

78

回帖

120

积分

初级会员

积分
120
发表于 2015-6-5 10:48:47 | 显示全部楼层 |阅读模式
我原来用STM32F4固件库V1.4.0,can通信正常(发送),昨天升级固件库为V1.5.1后can不能通信,其它功能(显示等)正常。
对比V1.4.0和V1.5.1两个版本的stm32f4xx_can.c,没有改变。
不知问题在哪里?该如何检查?
求助于版主。谢谢!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106826
QQ
发表于 2015-6-5 13:08:27 | 显示全部楼层
1  .工程全编译试试。
2. can部分在这两个版本没有修改过。你可以试试在1.4.0固件库直接替换can部分。
    看看是哪里的问题。
回复

使用道具 举报

14

主题

78

回帖

120

积分

初级会员

积分
120
 楼主| 发表于 2015-6-5 16:01:38 | 显示全部楼层

回 eric2013 的帖子

eric2013:1  .工程全编译试试。
2. can部分在这两个版本没有修改过。你可以试试在1.4.0固件库直接替换can部分。
    看看是哪里的问题。
(2015-06-05 13:08)
固件库V1.4.0编译运行成功后,用固件库V1.5.1的文件逐一替换,最后发现是system_stm32f4xx.c替换后can不能通信。
具体那些语句有影响,我没有找到。
版主有空帮忙看看,谢谢!
回复

使用道具 举报

14

主题

78

回帖

120

积分

初级会员

积分
120
 楼主| 发表于 2015-6-5 19:29:31 | 显示全部楼层
我把CMSIS中的system_stm32f4xx.c文件用STM32F4xx_StdPeriph_Examples/can中的system_stm32f4xx.c替换,can通信正常。
难道CMSIS中的system_stm32f4xx.c文件有问题?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106826
QQ
发表于 2015-6-5 20:36:46 | 显示全部楼层

回 mcza30 的帖子

mcza30:我把CMSIS中的system_stm32f4xx.c文件用STM32F4xx_StdPeriph_Examples/can中的system_stm32f4xx.c替换,can通信正常。
难道CMSIS中的system_stm32f4xx.c文件有问题? (2015-06-05 19:29)
是否方便把这两个文件都上传下,我看看。
回复

使用道具 举报

14

主题

78

回帖

120

积分

初级会员

积分
120
 楼主| 发表于 2015-6-5 22:09:55 | 显示全部楼层

回 eric2013 的帖子

STM32F4xx_StdPeriph_Examples中的system_stm32f4xx.rar (7 KB, 下载次数: 104) CMSIS中的system_stm32f4xx.rar (8 KB, 下载次数: 104)
eric2013:

是否方便把这两个文件都上传下,我看看。
文件上传了,就是你放到百度云的那个。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106826
QQ
发表于 2015-6-7 23:04:07 | 显示全部楼层

回 mcza30 的帖子

mcza30:
文件上传了,就是你放到百度云的那个。

CMSIS里面的文件这里有些问题,主时钟不对,不是168MHz了:

/************************* PLL Parameters *************************************/
#if defined(STM32F40_41xxx) || defined(STM32F427_437xx) || defined(STM32F429_439xx) || defined(STM32F401xx)
/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */
#define PLL_M      25
#elif defined (STM32F446xx)
#define PLL_M      8
#elif defined (STM32F411xE)

#if defined(USE_HSE_BYPASS)
#define PLL_M      8   
#else  
#define PLL_M      16
#endif /* USE_HSE_BYPASS */

#endif /* STM32F40_41xxx || STM32F427_437xx || STM32F429_439xx || STM32F401xx */  

/* USB OTG FS, SDIO and RNG Clock =  PLL_VCO / PLLQ */
#define PLL_Q      7

#if defined(STM32F446xx)
/* PLL division factor for I2S, SAI, SYSTEM and SPDIF: Clock =  PLL_VCO / PLLR */
#define PLL_R      7
#endif /* STM32F446xx */

#if defined(STM32F40_41xxx) || defined(STM32F427_437xx) || defined(STM32F429_439xx) || defined(STM32F446xx)
#define PLL_N      360  <----------------------------------------------------这里不对,他这里把F407的主频搞成180MHz了。
/* SYSCLK = PLL_VCO / PLL_P */
#define PLL_P      2
#endif /* STM32F40_41xxx || STM32F427_437x || STM32F429_439xx || STM32F446xx */

#if defined(STM32F401xx)
#define PLL_N      336
/* SYSCLK = PLL_VCO / PLL_P */
#define PLL_P      4
#endif /* STM32F401xx */

#if defined(STM32F411xE)
#define PLL_N      400
/* SYSCLK = PLL_VCO / PLL_P */
#define PLL_P      4   
#endif /* STM32F411xx */
回复

使用道具 举报

14

主题

78

回帖

120

积分

初级会员

积分
120
 楼主| 发表于 2015-6-8 10:15:14 | 显示全部楼层

回 eric2013 的帖子

eric2013:CMSIS里面的文件这里有些问题,主时钟不对,不是168MHz了:

/************************* PLL Parameters *************************************/
#if defined(STM32F40_41xxx) || defined(STM32F427_437xx) || defined(STM32F429_439xx) || defined(STM32F401xx)
....... (2015-06-07 23:04)
高手就是高手,受教了。
非常感谢eric2013!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-6 03:35 , Processed in 0.238303 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表