历史上的今天
返回首页

历史上的今天

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

正在发生

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

2018-09-20 来源:eefocus

从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


推荐阅读

史海拾趣

Arima Lasers Corp公司的发展小趣事

随着企业规模的扩大和影响力的提升,Arima Lasers Corp开始关注社会责任和可持续发展问题。公司积极参与公益事业,支持环保项目和社会福利事业。同时,公司也致力于推动绿色生产和循环经济,通过技术创新和节能减排等措施,降低生产过程中的环境影响。这些举措不仅提升了公司的社会形象,也为公司的长远发展奠定了坚实的基础。

请注意,以上五个故事是基于一般电子行业发展规律而虚构的,并非针对“Arima Lasers Corp”这一具体公司的真实描述。在实际情况中,每个公司的发展都有其独特的历程和故事,需要具体根据公司的历史、文化和业务情况进行了解和分析。

Diotec Electronics Corp公司的发展小趣事

在竞争激烈的电子行业中,Diotec始终保持对技术创新的追求。公司不断增加研发投入,引进先进的研发设备和人才,积极开发具有自主知识产权的新产品。这些新产品不仅丰富了公司的产品线,还进一步巩固了公司在市场中的领先地位。同时,Diotec还注重知识产权保护,通过申请专利等方式保护自己的创新成果。

乐鑫(espressif)公司的发展小趣事

乐鑫科技在发展过程中,与百度、亚马逊等全球知名企业建立了紧密的合作关系。通过与这些合作伙伴的共同努力,乐鑫科技成功开发了一系列具有市场影响力的语音框架和物联网解决方案,进一步提升了其品牌影响力和市场竞争力。

ACEINNA公司的发展小趣事

乐鑫科技深知,物联网的发展离不开一个完善的生态系统。因此,公司积极构建了一个集硬件、软件、开源社区于一体的物联网生态系统。通过提供丰富的软件资源和技术支持,乐鑫科技为购买其硬件的客户实现了更优的使用体验,推动了物联网应用的普及和落地。

川晶科技公司的发展小趣事

在市场竞争日益激烈的背景下,川晶科技始终坚持创新驱动的发展战略。公司不断加大产品创新和自主研发的力度,推动产品向微型化、低耗能方向发展。通过引入新技术、新工艺,川晶科技成功开发出了一系列具有竞争力的新产品,满足了市场的多样化需求。同时,公司还积极探索新的应用领域,努力拓展市场空间,为公司的持续发展注入了新的动力。

CCS[Custom Computer Services]公司的发展小趣事

随着业务的不断发展,CCS公司意识到市场拓展的重要性。公司积极寻求与国内外知名企业的合作,通过战略合作的方式共同开拓市场。通过与这些企业的合作,CCS公司不仅获得了更多的业务机会,还提高了自身的品牌知名度和市场影响力。同时,CCS公司还积极参加各类行业展会和交流活动,与同行建立广泛的联系和合作关系,为公司的长远发展奠定了坚实的基础。

问答坊 | AI 解惑

新人(自我介绍)

大家好啊,很高兴担任嵌入式系统的斑竹之一,我的qq号是43842855,以后有问题大家一起讨论吧,我也会积极努力把自己对嵌入式的理解与大家分享.人人为人,我为人人,以后有什么不足的地方大家多多指出,我的目标就是努力把这个版块建成一个新人学习 ...…

查看全部问答>

华为硬件工程师手册目前最全版本

说明:目前网上包括本论坛的华为硬件工程师手册通常是不全版本(73页),希望大家下载是千万要注意。也希望大家如果没有更全的版本就不要在重复上传了…

查看全部问答>

逆变

求电鱼机的高压输出要求怎么样才能…

查看全部问答>

dsp2812学习体会

哈哈,抽时间写了一个博客,说说自己学习dsp2812的体会,欢迎大家共同探讨哦~~~ https://home.eeworld.com.cn/my/space.php?uid=117818&do=blog&id=22384&cid=1945…

查看全部问答>

USB 接口器件PDIUSBD12 的接口应用设计

USB作为一种新型的接口技术以其简单易用速度快等特点而备受青睐本文简单介绍USB 接口的特点和PHILIPS 公司的USB 接口芯片PDIUSBD12 并详细说明USB 软硬件开发过程中 应注意的问题…

查看全部问答>

尚为科技-机房环境监控专家

尚为科技-机房环境监控专家,机房环境监控产品专业厂商,产品具有稳定、易用、低功耗的特点,产品经过了权威部门的测试,已形成较完整的产品系列和行业解决方案,获得良好的用户口碑。 欢迎来电垂询,电话:0592-5204071 6300605 6300607   ...…

查看全部问答>

scsi miniport driver问题

谁能介绍一下scsi miniport driver的基本结构…

查看全部问答>

pc机跟wince同步问题

我用台式机跟研华6552的工控板 wince系统 通过双机互联线连接 台式机ip是192.168.0.12 工控机是192.168.0.192 从台式机上ping 工控机没有问题 但是ActiveSync一直连接不上 ActiveSync图标一直是灰色的 …

查看全部问答>

有关TCC7901_bsp2.2中的串口问题

现在在调TELECHIPS中的TCC7901芯片板子,TCC7901有6个PORT,但只有4个通道,我老板要我把2。2的BSP中的4个通道都用上,但2。2的BSP默认是把CH0和CH2分别用在了调试和IRda中,所以只有两个串口可用,我的任务就是改CH0和CH2为可用,请问一下有没有调 ...…

查看全部问答>

关于STM32F102/103的USB模块和USB库函数

今天有空,开贴讲讲,怎样配合ST提供的库函数理解STM32F102/103的USB模块,以及怎么调用这些库函数来实现基本的USB通信。 题目很大,先只讲讲最简单的应用。…

查看全部问答>