历史上的今天

今天是:2024年09月20日(星期五)

正在发生

2018年09月20日 | 对STM32的CAN1模块的总结

发布者:MysticGlow 来源: eefocus关键字:STM32  CAN1模块 手机看文章 扫描二维码
随时随地手机看文章

从12月中旬到现在一直都在调试板子,把F107上的CAN1(PD0,PD1)转移到F105上的CAN1(PB8,

PB9),本来以为会是很简单的进行重映射就行了,但是生活处处是

充满“惊喜”啊!

在进行了重映射后发现CAN进不了中断,很郁闷!仔细检查了两个端点CAN的连接口后发现是没错的,但还是进

不了中断。那只能进行单步调试了,最后发现是在CAN的初始化模式成功后要进入正常模式时失败了,CAN的处理工

程是:

初始化模式:设置CAN_MCR 寄存器的INRQ 位为’1’ ,请求bxCAN进入初始化模式,然后等待硬件对CAN_MSR

 寄存器的INAK 位置’1’ 来进行确认。当bxCAN处于初始化模式时,禁止报文的接收和发送,并且CANTX引脚输出隐

性位(高电平)。 初始化模式的进入,不会改变配置寄存器。

正常模式:在初始化完成后,软件应该让硬件进入正常模式,以便正常接收和发送报文。软件可以通

过对CAN_MCR 寄存器的INRQ 位清’0’ ,来请求从初始化模式进入正常模式,然后要等待硬件对CAN_MSR 寄存器的

INAK 位置’0’ 的确认。在跟CAN总线取得同步,即在CANRX引脚上监测到11个连续的隐性位(等效于总线空闲)后,

bxCAN才能正常接收和发送报文。

但就是在我的程序里,在INRQ清“0”了以后就在等待INAK的清零,直到超过定时退出返回CANINITFAILED,而

没有返回CANINITOK,所以也就是说我的CAN1模块初始化成功后根本就没有进入正常模式,又怎么会进入中断呢!

但是我在程序里分明按着例程来进行修改的,也进行了重映射了,检查多次后我把错误定位在硬件的接收电路,因为

在上面的模式解释处说到了关于CAN的Tx和Rx应该出现的高低电平,但是我用万用表测量我的Tx端是却是出现了低

电平,所以我又对CAN的收发设计电路进行了一番仔细的研究,电路应该是没错的。他妈究竟是哪错啊,要弄死人

啊!

在不经意间我把一个例程跑了,这个例程用到了两个CAN,我的硬件里有两路CAN的使用,而且硬件也是一模一

样的,但是我的CAN2电路还没有进行硬件的焊接,居然我的CAN2成功的进入了正常模式,因此我更肯定了是硬件的

问题,因为程序是一样的。但再次的硬件分析完了之后还是感觉硬件是没错的,那就只有先把焊了的电路先断了一

下,再进行调试,结果还是不行,看来还真不是错在硬件啊!

没办法了,只能是拿着万用表来查究竟是在哪一句在执行的时候把Tx脚的电平给拉低了,好不容易定位在

GPIO_INIT()程序里发现了电平变低的语句,但是在对比了CAN_BSRR和CAN_ODR两个寄存器后发现程序是对

的,搞毛啊!

最后突然想到在网上输入STM32、CAN、PB9进行查询,在百度文库的一篇文章里看到了人家对这个端口的重

映射的程序,偶然发现到了自己一个地方弄错了,一个很细小的地方,经修改,总算是解决了我的问题,怎么说吧,

希望后人不要犯我这种低级错误。

在这半个多月,我基本逛遍了所有的电子论坛,但是就没有人能帮忙解决,说没有也有一个帖子说了跟我同样的

问题,我也找到了他本人的QQ,想向他请教,有时候人是一直奇怪的动物,很欠抽的。我连续几天向他发消息,说

我的问题(这几天他一直没上线)语气很客气,一个字的回答没有,难得今天看见他上线了,再次发了我问题,还是

没有回答,我就火了,问候了一下他全家,果然来效果了,马上把我拉黑了!大家说这是安的什么心啊,不懂或者是

忘了的,是个正常人都会回一下,不要给人希望,浪费人家时间,欠抽的!

所以在此也希望大家有看到这的,希望大家以后在逛论坛的时候要是碰到有人提问,自己也懂的尽量的帮助一下

别人,你自己也可以有几分嘛!


以下一个链接是一个我的帖子,里面有我的程序和解决方法:

http://bbs.21ic.com/forum.php?mod=viewthread&tid=407287&page=1&extra=#pid2638733


关键字:STM32  CAN1模块 引用地址:对STM32的CAN1模块的总结

上一篇:STM32 USB IAP 步骤
下一篇:STM32 PWM 占空比可变函数

推荐阅读

此前,日本也流露出了要投入更多的精力去参与到探索太空上,所以在这项危险性极高的任务上,他们也想要发挥自己更多的特长,比如机器人制造方面。 据日本媒体报道称,日本宇宙航空研究开发机构(JAXA)打算制造一款名叫“阿凡达”的机器人,合作的机构是全日空,而目前双方的计划已经开始启动。 据悉,全日空已经举行了一项1000万美元竞赛,这项名为A...
根据国外媒体Electronics Designs报道,博通公司日前表示,其核心芯片业务已经开始触底反弹,但不确定何时可以真正从经济放缓中恢复以来。这家总部位于加州的芯片公司去年因中美贸易战而遭受重创,尽管目前谈恢复还为时尚早,但至少已经不会变得更坏了。“我们认为半导体解决方案部门的需求已经见底,但由于当前环境不确定,需求将继续维持在这一水平上。...
9月19日,由中国电子视像行业协会主办,中国电子视像行业协会激光电视产业分会承办的第二届全球激光显示技术与产业发展论坛在北京举行。在论坛上,中国工程院院士许祖彦通过音频方式发表致辞,许祖彦指出,激光显示是唯一全面满足超高清显示国际标准BT.2020的显示技术,下一代显示产业的主流就是激光显示。许祖彦认为,激光显示具有亮度高、方向性好、单色...
据Strategy Analytics报告,全球智能手机应用处理器(AP)市场在2021年第二季度连续第6个季度实现了两位数的同比收入增长。2021年第二季度智能手机应用处理器营收份额(来源:Strategy Analytics, Inc.)2021年第二季度,全球智能手机AP市场规模达到70亿美元,同比增长18%。Strategy Analytics的研究报告预计,高通、联发科、苹果、三星LSI和Unisoc在2021年...

史海拾趣

问答坊 | AI 解惑

程序设计中的环形缓冲区的应用

在通信程序中,经常使用环形缓冲区作为数据结构来存放通信中发送和接收的数据。环形缓冲区是一个先进先出的循环缓冲区,可以向通信程序提供对缓冲区的互斥访问。 1、环形缓冲区的实现原理 环形缓冲区通常有一个读指针和一个写指针。读指针指向环 ...…

查看全部问答∨

业内知名公司中英文名对照

电子行业知名公司中英文名对照,新人必要了解啊…

查看全部问答∨

电压反馈放大器和电流反馈放大器几乎一样

作者:Bonnie Baker,德州仪器 (TI) 与电压反馈放大器 相比,电流反馈放大器具有更高的转换速率。因此,电流反馈放大器比电压反馈放大器能更好地解决高速问题。“电流反馈放大器”的名字带有一些神秘色彩,但总体而言,除了几个关键点以外,电流 ...…

查看全部问答∨

嵌入式TCP-IP方案比较

互联网时代,咱单片机也要上网。 附件比较了嵌入式系统实现TCP-IP的几种实用方案。资料难得哦!…

查看全部问答∨

菜鸟PK老人,比较实在有意思

究竟是实习生雷人,还是职场老人雷人?不久前,前程无忧论坛上出现了一篇名为“比比谁更雷?那些让人无语的实习生”的帖子,引发了一场关于“菜鸟与老人”的争论。有人说“实习生不懂规矩又不肯学习太雷人”,也有人说“职场老人倚老卖老高姿态雷死 ...…

查看全部问答∨

彩色液晶+12864

资料来自于网上…

查看全部问答∨

大家现在都用NI的哪种板卡

问问大家现在都用NI的哪种板卡…

查看全部问答∨

编译器是如何翻译函数,函数调用的? 从汇编语言角度去解释 ?

编译器是如何翻译函数,函数调用的? 从汇编语言角度去解释 ?…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved