[STM32F0] STM32F042F6P6的CAN 为何初始化不成功?

[复制链接]
4273|26
 楼主| cainiao518 发表于 2018-12-13 15:23 | 显示全部楼层 |阅读模式
  1. static void CAN_GPIO_Configuration(void)
  2. {
  3.         GPIO_InitTypeDef GPIO_InitStructure;
  4.        
  5.         RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA , ENABLE);                                                                                                                         
  6.        
  7.         /* CAN1 Periph clock enable */
  8.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN, ENABLE);
  9.        
  10.         GPIO_PinAFConfig(GPIOA,GPIO_PinSource11, GPIO_AF_4);//RX
  11.     GPIO_PinAFConfig(GPIOA,GPIO_PinSource12, GPIO_AF_4);//TX
  12.        
  13.         /* Configure CAN pin: RX */                                                                                       //       
  14.         GPIO_InitStructure.GPIO_Pin    = CAN_RX;
  15.         GPIO_InitStructure.GPIO_Mode   = GPIO_Mode_AF;
  16.         GPIO_InitStructure.GPIO_PuPd   = GPIO_PuPd_UP;
  17.         GPIO_Init(GPIOA, &GPIO_InitStructure);
  18.        
  19.         /* Configure CAN pin: TX */                                                                                       //
  20.         GPIO_InitStructure.GPIO_Pin    = CAN_TX;
  21.         GPIO_InitStructure.GPIO_Mode   = GPIO_Mode_AF;
  22.         GPIO_InitStructure.GPIO_OType  = GPIO_OType_PP;
  23.         GPIO_InitStructure.GPIO_Speed  = GPIO_Speed_50MHz;
  24.         GPIO_InitStructure.GPIO_PuPd   = GPIO_PuPd_NOPULL;
  25.         GPIO_Init(GPIOA, &GPIO_InitStructure);
  26. }
停在 :CAN_Init(CAN, &CAN_InitStructure);        // 初始化CAN1  这一行
晓伍 发表于 2018-12-14 10:12 | 显示全部楼层
晶振起振了吗
 楼主| cainiao518 发表于 2018-12-14 10:19 | 显示全部楼层

怎么判断起振没有呢
八层楼 发表于 2018-12-14 10:25 | 显示全部楼层
如果用的是自带的can模块 那就考虑时钟的问题

评论

怎么看时钟有没有问题呢  发表于 2018-12-14 10:53
guanjiaer 发表于 2018-12-14 10:39 | 显示全部楼层
我以前用sja1000的时候在这里卡过 不过那是因为其外置的晶振没有链接好 你这个我就说不好了
 楼主| cainiao518 发表于 2018-12-14 10:50 | 显示全部楼层
 楼主| cainiao518 发表于 2018-12-14 10:52 | 显示全部楼层
guanjiaer 发表于 2018-12-14 10:39
我以前用sja1000的时候在这里卡过 不过那是因为其外置的晶振没有链接好 你这个我就说不好了 ...

CAN.png
mmuuss586 发表于 2018-12-14 10:55 | 显示全部楼层
可以参考HAL库的例程啊,最近我也在调;
调好了,可以分享出来;

评论

好的  发表于 2018-12-14 11:19
wakayi 发表于 2018-12-14 11:57 | 显示全部楼层
你用的这个 那就应该使用串口啊
 楼主| cainiao518 发表于 2018-12-14 11:58 | 显示全部楼层
wakayi 发表于 2018-12-14 11:57
你用的这个 那就应该使用串口啊

串口和CAN共用管脚,不能同时使用串口
wakayi 发表于 2018-12-14 11:59 | 显示全部楼层
你用这个模块了 说明就不需要用arm自带的can了啊
 楼主| cainiao518 发表于 2018-12-14 13:20 | 显示全部楼层
wakayi 发表于 2018-12-14 11:59
你用这个模块了 说明就不需要用arm自带的can了啊

你的意思是 使用外置的CAN控制器吗?
 楼主| cainiao518 发表于 2018-12-14 16:56 | 显示全部楼层
mmuuss586 发表于 2018-12-14 10:55
可以参考HAL库的例程啊,最近我也在调;
调好了,可以分享出来;

在调哪款芯片呢
晓伍 发表于 2019-1-1 10:57 | 显示全部楼层
cainiao518 发表于 2018-12-14 10:19
怎么判断起振没有呢

用示波器看看波形啊

评论

起振了  发表于 2019-1-2 08:45
wakayi 发表于 2019-1-1 16:57 | 显示全部楼层
cainiao518 发表于 2018-12-14 13:20
你的意思是 使用外置的CAN控制器吗?

有时候为了可靠有可能用成熟的can芯片啊
 楼主| cainiao518 发表于 2019-1-2 08:45 | 显示全部楼层
wakayi 发表于 2019-1-1 16:57
有时候为了可靠有可能用成熟的can芯片啊

STM32的CAN也是比较成熟的
晓伍 发表于 2019-1-2 09:45 | 显示全部楼层
cainiao518 发表于 2018-12-14 10:19
怎么判断起振没有呢

用示波器卡卡不就知道了吗
 楼主| cainiao518 发表于 2019-1-2 10:13 | 显示全部楼层
晓伍 发表于 2019-1-2 09:45
用示波器卡卡不就知道了吗

起振了
晓伍 发表于 2019-1-2 10:33 | 显示全部楼层

看波形是多少M的啊
 楼主| cainiao518 发表于 2019-1-2 13:09 | 显示全部楼层
晓伍 发表于 2019-1-2 10:33
看波形是多少M的啊

8M   
您需要登录后才可以回帖 登录 | 注册

本版积分规则

135

主题

1431

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部