打印
[STM32F1]

CAN1重映射到PD0,PD1,为什么只能接收不能发送

[复制链接]
2408|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
汤火|  楼主 | 2015-12-25 17:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
芯片:STM32F107VCT6
我有两个板子
一个板子是can1用PA11,PA12,可以接收和发送数据,外接晶振是8MHz
另一个板子把CAN1重映射到PD0,PD1上,只能接收数据不能发送数据,外接晶振是25MHz
不知道什么原因,会不会和时钟设置有关,还是我的引脚配置有关
有没有弄过的,麻烦指点指点
沙发
airwill| | 2015-12-25 19:20 | 只看该作者
是不是端口配置上有问题, 这种配置我用过, 是可以正常工作的.

使用特权

评论回复
板凳
汤火|  楼主 | 2015-12-25 21:38 | 只看该作者
没有呀,我就是按照例程上的配置配的

使用特权

评论回复
地板
yiyigirl2014| | 2015-12-25 22:43 | 只看该作者
你这个是只能收不能发,前天有个人是只能发发不能收

使用特权

评论回复
5
309030106| | 2015-12-26 21:57 | 只看该作者
是不是IO口的方向没配置对啊

使用特权

评论回复
6
FireRiver9| | 2015-12-27 20:49 | 只看该作者
是就没有数据发送过来,还是有发送没接收,还是接收了没处理

使用特权

评论回复
7
汤火|  楼主 | 2015-12-28 16:43 | 只看该作者
大家帮忙看看端口配置错没???      
        RCC->APB1ENR&=0XFDFFFFFF;
        RCC->APB1ENR|=1<<25;//使能CAN时钟
        RCC->APB2ENR&=0XFFFFFFDF;
        RCC->APB2ENR|=1<<5;//使能GPIOD时钟
        RCC->APB2ENR|=0X00000001;//使能AFIO

        GPIOD->CRL&=0XFFFFFF00;
        GPIOD->CRL|=0X000000B8;//PD0(CAN1_RX)为上拉或下拉输入模式,PD1(CAN1_TX)为复用推挽输出模式       
       
        AFIO->MAPR&=0XFFFF9FFF;  //第13,14位是CAN1-remap
        AFIO->MAPR|=0x00006000;         //11:CAN1_RX映像到PD0,CAN1_TX映像到PD1;

使用特权

评论回复
8
feihufuture| | 2015-12-28 17:29 | 只看该作者
汤火 发表于 2015-12-28 16:43
大家帮忙看看端口配置错没???      
        RCC->APB1ENR&=0XFDFFFFFF;
        RCC->APB1ENR|=1APB2ENR|=1CR ...

你的复用时钟打开没有?

使用特权

评论回复
9
汤火|  楼主 | 2015-12-28 20:09 | 只看该作者
RCC->APB2ENR|=0X00000001;//使能AFIO
这个就是啊

使用特权

评论回复
10
拉克丝| | 2015-12-28 21:14 | 只看该作者
看着好像也没什么问题

使用特权

评论回复
11
汤火|  楼主 | 2015-12-29 11:00 | 只看该作者
感谢大家,可以和上位机收发了

使用特权

评论回复
12
1101943536| | 2017-6-12 10:25 | 只看该作者
大神,您好,我现在也正在学习CAN,也遇到了你这个问题,能不能分享一下你的解决方案。谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

22

帖子

1

粉丝