STM32勘误——CAN接收中断到底使用CAN1_RX0_IRQHandler还是USB_LP_CAN1_RX0_IRQHandler

STM32勘误——CAN接收中断到底使用CAN1_RX0_IRQHandler还是USB_LP_CAN1_RX0_IRQHandler

最近测试新做的板子,使用了正点原子F407V3版本的HAL库例程代码(因为HAL库在更新,老版本的原子的例程使用的较老的HAL库)。其中CAN通信的中断接收出现了问题,原子例程中的用法为:

开启中断:HAL_NVIC_EnableIRQ(USB_LP_CAN1_RX0_IRQn);
中断函数:void USB_LP_CAN1_RX0_IRQHandler(void);

但是编译错误,提示USB_LP_CAN1_RX0_IRQn未定义,查看库文件确实没有定义(所以猜测原子并没有测试这个地方)。我改成了CAN1_RX0_IRQn,编译成功,但是CAN接收就死机了。于是继续改成void CAN1_RX0_IRQHandler(void),这下数据接受正常了。

实际上我用Cubemx生成的代码里面,默认的就是使用CAN1_RX0_IRQnvoid CAN1_RX0_IRQHandler(void)。(库版本是STM32Cube FW_F4 V1.26.0)。

查看了之前自己用的STM32Cube FW_F4 V1.4.0库时,同样用的CAN1_RX0_IRQnvoid CAN1_RX0_IRQHandler(void),完全就是正常的。

网上说由于PA11和PA12同时是USB引脚,所以CAN中断使用的是USB_LP_CAN1_RX0_IRQn。但经过测试新老版本HAL库都不需要这样用,所以这个地方并不需要搞这么麻烦。评论区的高人知道真正原因的麻烦告知我哈,欢迎交流。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: acpi_6_0_errata_a.pdf是一个关于ACPI(高级配置与电源管理接口)6.0规范勘误的PDF文件。ACPI是一种由Intel、微软和Toshiba等公司共同开发的电源管理标准,用于操作系统与硬件设备之间的通信和协调。 这个PDF文件提供了有关ACPI 6.0的规范勘误信息。规范勘误是指对原始规范的修正或修改,以解决其中的错误、疏漏或不完善之处。 在acpi_6_0_errata_a.pdf文件中,会列出通过规范勘误进行的更正,例如修复关于ACPI命名空间、状态机、电源管理等方面的错误或不准确的信息。这些更正旨在提高ACPI规范的准确性和一致性,以确保操作系统与硬件设备之间的正常通信和协调。 这份PDF文件对于开发ACPI 6.0兼容的操作系统、驱动程序和硬件设备的开发者来说,具有重要的参考价值。通过查阅这份文件,开发者可以了解并避免已知的ACPI 6.0规范问题,并确保他们的设备或软件与ACPI 6.0规范保持一致。 总之,acpi_6_0_errata_a.pdf是一份提供有关ACPI 6.0规范勘误信息的PDF文件,对于开发者来说,它是一个重要的参考资源,用于确保ACPI兼容设备和操作系统之间的正常通信和协调。 ### 回答2: acpi_6_0_errata_a.pdf 是一个ACPI(高级配置和电源接口)规范的错误补充文档。 ACPI是一种由电脑操作系统使用的标准接口,用于管理硬件设备的电源管理和配置。ACPI规范定义了一组用于操作系统与计算机硬件进行通信的标准方法和数据结构。 acpi_6_0_errata_a.pdf是对ACPI规范6.0版本中发现的错误的修正文档。这些错误可能包括规范中的技术或概念错误、代码示例错误、规范解释的不准确之处等等。ACPI规范的错误修正文档旨在帮助开发人员和硬件制造商更好地理解和遵循ACPI规范,以确保操作系统与硬件之间的兼容性和良好的性能。 acpi_6_0_errata_a.pdf 文件可能包含了对规范的补充说明、更正的代码示例、修复的错误描述等内容。这些修正可以更准确地描述ACPI规范中的特定功能或行为,并提供了解决特定问题的指导。 开发人员和硬件制造商可以通过阅读acpi_6_0_errata_a.pdf文件来了解ACPI规范的修正和更新。这将有助于他们更好地设计和实施ACPI功能,并确保其与操作系统和其他硬件设备的兼容性。 总之,acpi_6_0_errata_a.pdf 是一份ACPI规范6.0版本的错误修正文档,旨在帮助开发人员和硬件制造商更好地理解和遵循ACPI规范,以提高电脑系统的性能和兼容性。 ### 回答3: "acpi_6_0_errata_a.pdf"是一份关于ACPI(高级配置和电源接口)规范的修正文档。ACPI是一种标准化的电源管理技术,它允许操作系统和硬件设备之间的有效交流和协作,以实现电源管理和设备控制。 该修正文档"acpi_6_0_errata_a.pdf"旨在解决ACPI 6.0规范中可能存在的问题和错误。ACPI 6.0是ACPI规范的最新版本,它引入了一些新特性和改进,可以提高系统的功耗管理、设备配置和控制能力。 在修正文档中,可能会包含关于ACPI 6.0规范中已知问题的详细描述和相应的解决方法。这些问题可能涉及与操作系统兼容性、电源管理策略、设备驱动程序等方面有关。修正文档的目的是帮助操作系统开发人员、设备制造商和其他相关技术人员理解和解决这些问题。 对于使用ACPI技术的操作系统开发人员和硬件制造商来说,及时了解和遵循修正文档中的修正建议非常重要。这可以确保系统在ACPI规范的框架下正常运行,并正确地实现电源管理和设备控制功能。 总的来说,"acpi_6_0_errata_a.pdf"是一份关于ACPI 6.0规范修正的文档,供操作系统开发人员和硬件制造商参考,以确保ACPI技术在系统中得到正确的实现和运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何为其然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值