OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10537|回复: 10

STM32F1 CAN总线重映射 PB8、9 无信号输出 配置问题

[复制链接]

0

主题

4

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2020-8-13
在线时间
8 小时
发表于 2021-5-5 10:58:29 | 显示全部楼层 |阅读模式
30金钱
本帖最后由 18847935435 于 2021-5-5 11:02 编辑

最近在做一个要用到CAN总线的项目,遇到问题了,求助各位大佬。目前我推测是我配置的有问题,希望各位给看看,帮帮忙,下面是整个排错的过程。
这个项目使用的是STM32F103CBT6(这不重要,后面的描述基本没用到),但是PA11、12引脚被占用了,于是就根据手册把引脚映射到了PB8、9。本来以为不会出什么问题,我的操作就是在之前能用的没有重映射的程序中修改,改了GPIOB的使能,改了IO,并且在使能时钟之后,加入了一句重映射的语句。理论上来说没有任何问题,但是发现不能用。修改部分如图所示。

源码

源码

然后我怀疑有可能是硬件问题毕竟是自己设计的硬件嘛,而且我也是新手,就想排除硬件问题。但是根据我的观察,我觉得硬件并不存在问题,这里也把原理图贴出来吧。

原理图1

原理图1

原理图2

原理图2

在排除硬件问题的过程中,我尝试了使用精英板进行相同的配置,但是无法输出。所以我直接下载原子哥的例程,以确定精英板是否存在问题,用示波器可以捕获到输出的差分信号,所以说精英板本身不存在问题。于是我用上面的代码替换了例程中的配置,又将精英板的跳线帽拔下来,接到PB8和PB9,蜂鸣器开始一直响,因为PB8接了蜂鸣器,我没管,接着烧录,测试,这次用示波器没有捕获到差分信号(当然是普通模式下),我考虑到是因为蜂鸣器的原因,所以我看了一下,原来PB8接了上拉电阻,可能会影响结果,于是我用自己做的一块板子,这块板子经过测试,没有问题,PB8、9的接口正常,把PB8、9的接口通过杜邦线接到精英板的CRX和CTX,并且使用我制作的板子的5V输出给精英板供电、共地,同时为确保供电充足,两块板子分别都有自己的供电。这样一来,我就借了精英板的TJA1050,然后用上面的代码替换,替换了PA11和12(在替换前测试过,PA11和12,可以在我的板子上正常输出CAN的差分信号,即出端口配置外其他位置配置都没问题),但是代码替换后,下载,示波器还是没有捕获到CAN的信号(这里的TJA1050已经是精英板上面的了),除了上面的代码其他都没有更改,带上板载的PA11和12可以输出,但是外接的精英板就不能输出,用的线不存在问题(在精英板上面代替跳线帽调试没有问题),正反接都试过了,所以我现在觉得就是我这段代码配置出现了问题,向各位大佬请教,这段代码相对于能用的哪个PA11和12,只更改了管教标号,把8、9,换成11、12,把三个A换成三个B ,然后加了个管教重映射的代码,根据上面的测试我觉得一定是配置问题,但是我找不到问题出在哪。
求各位大佬帮忙看看,拜托了!


不胜感激!!!@正点原子

最佳答案

查看完整内容[请看2#楼]

楼主是时钟复用没打开,你的就不知道了 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2021-5-5 10:58:30 | 显示全部楼层
liuhuan0002 发表于 2021-7-3 20:43
帮顶,我也是遇到相同问题,楼主解决了吗?说说呗

楼主是时钟复用没打开,你的就不知道了
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
回复

使用道具 举报

13

主题

643

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2432
金钱
2432
注册时间
2019-12-28
在线时间
527 小时
发表于 2021-5-18 11:25:09 | 显示全部楼层
帮顶  
回复

使用道具 举报

45

主题

267

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1101
金钱
1101
注册时间
2018-6-24
在线时间
158 小时
发表于 2021-5-18 14:48:32 | 显示全部楼层
PB8,PB9我也试过,用的普中c8t6的小板子,由于vp230可能有问题,测试环回模式可以,普通模式不行。战舰上也是喇叭叫,于是就放弃了。
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2020-8-13
在线时间
8 小时
 楼主| 发表于 2021-5-18 14:52:10 | 显示全部楼层
wdmvw 发表于 2021-5-18 14:48
PB8,PB9我也试过,用的普中c8t6的小板子,由于vp230可能有问题,测试环回模式可以,普通模式不行。战舰上也 ...

我的那个也是CBT6 非常感谢分享
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2021-7-3
在线时间
0 小时
发表于 2021-7-3 20:43:33 | 显示全部楼层
帮顶,我也是遇到相同问题,楼主解决了吗?说说呗
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2021-7-4 20:04:56 | 显示全部楼层
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
回复

使用道具 举报

1

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
140
金钱
140
注册时间
2018-3-28
在线时间
29 小时
发表于 2021-7-23 16:55:13 | 显示全部楼层
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2020-8-13
在线时间
8 小时
 楼主| 发表于 2021-8-6 21:49:38 | 显示全部楼层
liuhuan0002 发表于 2021-7-3 20:43
帮顶,我也是遇到相同问题,楼主解决了吗?说说呗

二楼说的对,就是这个原因
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2020-8-13
在线时间
8 小时
 楼主| 发表于 2021-8-6 21:50:03 | 显示全部楼层
nashui_sx 发表于 2021-5-5 10:58
楼主是时钟复用没打开,你的就不知道了
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

非常感谢
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2020-8-13
在线时间
8 小时
 楼主| 发表于 2021-8-6 21:52:48 | 显示全部楼层
非常感谢各位的帮助,后面在正点原子店铺的技术帮助下解决了,忘记回来填坑, 大家回答的没有问题,是我疏忽导致的问题,最后要感谢并且表扬正点原子,真的好公司,不止为赚钱,更为帮助大家!
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-26 03:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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