野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 19988|回复: 18

CAN 重映射 到PA11 , PA12 不能工作

[复制链接]
发表于 2014-6-6 08:12:16 | 显示全部楼层 |阅读模式
大家好。我在做CAN重映射实验的时候遇到这样的问题 在开发板例程的时候也就是CAN对应的PB8 , PB9 是可以正常的工作的。
但是当我重映射的时候就不可以了
下面是重映射的代码部分
static void CAN_GPIO_Config(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
   
   /*外设时钟设置*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOA, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);
   /*IO设置*/
GPIO_PinRemapConfig(GPIO_Remap1_CAN1, ENABLE);
/* Configure CAN pin: RX */                    //PA11   
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;         
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;              // 上拉输入
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);

    /* Configure CAN pin: TX */                        // PA12
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;           // 复用推挽输出
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   
GPIO_Init(GPIOA, &GPIO_InitStructure);

}

在做重映射的时候我就只改了一下部分。但是就是不能正常通讯
回复

使用道具 举报

发表于 2014-6-6 09:06:24 | 显示全部楼层
重映射不是随便来的,这要看数据手册, 重映射后可以是PD0 PD1或者PB8 PB9,没有你使用的PA11和PA12
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-6 09:12:29 | 显示全部楼层
flyleaf 发表于 2014-6-6 09:06
重映射不是随便来的,这要看数据手册, 重映射后可以是PD0 PD1或者PB8 PB9,没有你使用的PA11和PA12

PA11  和  P12在数据手册上面不是有的吗?
如果是PD0 和 PD1 的话。那部分配置改如何配置呢?能不能将我的那段代码修改一下呢?
未命名_副本.jpg
回复 支持 反对

使用道具 举报

发表于 2014-6-6 09:19:51 | 显示全部楼层
BlueSky 发表于 2014-6-6 09:12
PA11  和  P12在数据手册上面不是有的吗?
如果是PD0 和 PD1 的话。那部分配置改如何配置呢?能不能将我 ...

噢,我看错了,但PA11和PA12的确是没有重映射功能,而是默认的CAN功能,所以你应该把GPIO_PinRemapConfig(GPIO_Remap1_CAN1, ENABLE);这个语句去掉,这样应该就没有问题。
另外,板子的CAN收发器是接到PB8 PB9的,如果你要用其它引脚,需要在那些引脚上加上CAN收发器电路
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-6 09:20:53 | 显示全部楼层
好的。我试试啊。谢谢啊!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-6 09:25:35 | 显示全部楼层
BlueSky 发表于 2014-6-6 09:20
好的。我试试啊。谢谢啊!

我试过了。可以的。原因在我的身上。我不知道PA11 PA12 是默认的CAN功能
回复 支持 反对

使用道具 举报

发表于 2014-6-6 09:50:30 | 显示全部楼层
BlueSky 发表于 2014-6-6 09:25
我试过了。可以的。原因在我的身上。我不知道PA11 PA12 是默认的CAN功能

嗯嗯,我也不知道,所以才要查数据手册,记不了那么多。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-6 09:55:14 | 显示全部楼层
flyleaf 发表于 2014-6-6 09:50
嗯嗯,我也不知道,所以才要查数据手册,记不了那么多。

我顺便问你一下啊。CAN 发送一组长数据的时候。我发现接受到的数据不全。只接受到了一小部分。这是怎么回事啊?
未命名.JPG
未命名1.JPG
回复 支持 反对

使用道具 举报

发表于 2014-6-6 10:10:54 | 显示全部楼层
BlueSky 发表于 2014-6-6 09:55
我顺便问你一下啊。CAN 发送一组长数据的时候。我发现接受到的数据不全。只接受到了一小部分。这是怎么回 ...

你的RFData是不是一个形参?如果是形参,sizeof的大小只是4个字节,你试试直接把TxMessage.DLC配置成20,测试一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-6 10:12:07 | 显示全部楼层
好的。我试试啊!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-6 10:17:27 | 显示全部楼层
随风 发表于 2014-6-6 10:10
你的RFData是不是一个形参?如果是形参,sizeof的大小只是4个字节,你试试直接把TxMessage.DLC配置成20, ...

我试过了,效果是一样的。通过CAN分析仪还是只接受到4个数据。下面是我的将TxMessage.DLC改成20的修改代码,请帮忙看看啊!!!!!!!!!!!
未命名.JPG
回复 支持 反对

使用道具 举报

发表于 2014-6-6 10:26:26 | 显示全部楼层
BlueSky 发表于 2014-6-6 10:17
我试过了,效果是一样的。通过CAN分析仪还是只接受到4个数据。下面是我的将TxMessage.DLC改成20的修改代码 ...

看火哥的教程:DLC可取值的范围是0~8
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-6 10:30:01 | 显示全部楼层
我有个问题啊。如果是0~8的话。我是不是要将RFData[20]的数组分成好几帧发送出去。其实我的疑惑就是,如何将RFData[20]的数据全部发送发送出去。在CAN分析以上面看到的事20个数据,而不是4个数据
回复 支持 反对

使用道具 举报

发表于 2014-6-6 10:33:08 | 显示全部楼层
BlueSky 发表于 2014-6-6 10:30
我有个问题啊。如果是0~8的话。我是不是要将RFData[20]的数组分成好几帧发送出去。其实我的疑惑就是,如何将 ...

你的CAN分析仪是CAN分析仪的性能,STM32的性能就只能发8个数据了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-6 10:34:48 | 显示全部楼层
那么发送多帧数据呢?将RFData[20]分成多帧发送出去呢?
回复 支持 反对

使用道具 举报

发表于 2014-6-6 10:43:52 | 显示全部楼层
BlueSky 发表于 2014-6-6 10:34
那么发送多帧数据呢?将RFData[20]分成多帧发送出去呢?

嗯,你把它分成三帧发送出去
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-6 10:46:27 | 显示全部楼层
红舒扬 发表于 2014-6-6 10:43
嗯,你把它分成三帧发送出去

这样找到共同点了。问题是我不会写这部分饿代码。手头有没有现成的例子。你可以帮我修改一下吗?或者有没有相似的例子的。我在网上找了老半天就是没找到
回复 支持 反对

使用道具 举报

发表于 2014-6-6 11:12:24 | 显示全部楼层
BlueSky 发表于 2014-6-6 10:46
这样找到共同点了。问题是我不会写这部分饿代码。手头有没有现成的例子。你可以帮我修改一下吗?或者有没 ...

你就先测试一下直接分包发送,两个包8字节,一个包4字节
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-6 11:35:27 | 显示全部楼层
红舒扬 发表于 2014-6-6 11:12
你就先测试一下直接分包发送,两个包8字节,一个包4字节

我试过了。只能收到最后4个字节的数据。不晓得这样写有没有问题
未命名.JPG
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-9-21 18:40 , Processed in 0.042068 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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