搜索
bottom↓
回复: 15

STM32 HAL库CAN初始化的大坑

[复制链接]

出0入0汤圆

发表于 2020-7-15 14:59:36 | 显示全部楼层 |阅读模式
今天又发现HAL库的一个坑,大家有没有这个问题?
初始化时要配置分频系数和位时序参数,一般来说,都要减1后填写的,但今天调试CAN时,发现死活不行,最后定位到分频系数不对。

原来,分频系数不需要减1,SJW、BS1、BS2需要减1,心里默念一万个艹……
    s_can1_handler.Init.Prescaler     = div << CAN_BTR_BRP_Pos;       // 分频系数
    s_can1_handler.Init.SyncJumpWidth = (sjw - 1) << CAN_BTR_SJW_Pos; // CAN_SJW_1TQ == 0
    s_can1_handler.Init.TimeSeg1      = (bs1 - 1) << CAN_BTR_TS1_Pos; // CAN_BS1_1TQ == 0
    s_can1_handler.Init.TimeSeg2      = (bs2 - 1) << CAN_BTR_TS2_Pos; // CAN_BS2_1TQ == 0

出0入0汤圆

发表于 2020-7-22 20:22:10 | 显示全部楼层
很正常,我这么多年都一直用STD库,比hal库好用100倍

出0入4汤圆

发表于 2020-7-23 08:53:41 | 显示全部楼层
哈哈,之前用STM32H7曾经坚持一年时间用HAL,后来果断放弃,现在都尽量用F1,F4,如果必须用HAL库我宁愿用寄存器自己写

出0入0汤圆

发表于 2020-7-23 17:41:42 | 显示全部楼层
请问是不是最新的版本?hall库 1.7.8 ?

出0入0汤圆

发表于 2020-7-24 00:47:02 | 显示全部楼层
bolizhicheng204 发表于 2020-7-23 08:53
哈哈,之前用STM32H7曾经坚持一年时间用HAL,后来果断放弃,现在都尽量用F1,F4,如果必须用HAL库我宁愿用寄 ...

哈哈,HAL过渡封装,LL又太简单封装了,还是Std库顺手。

出0入0汤圆

 楼主| 发表于 2020-7-24 09:40:32 | 显示全部楼层
gallop020142 发表于 2020-7-23 17:41
请问是不是最新的版本?hall库 1.7.8 ?

1.7.6版的,配置方式应该相同的吧,如果1.7.8又改了,那就是一个更大的坑。

出0入0汤圆

 楼主| 发表于 2020-7-24 09:43:27 | 显示全部楼层
flash3g 发表于 2020-7-24 00:47
哈哈,HAL过渡封装,LL又太简单封装了,还是Std库顺手。

HAL库成鸡肋了,很多人用HAL库做初始化,大部分的控制则用LL库,比STD库更原始了,时代的退步。

出0入0汤圆

发表于 2020-7-24 10:16:21 | 显示全部楼层
还是STD库好用

出0入4汤圆

发表于 2020-7-24 10:36:26 | 显示全部楼层
b260123292 发表于 2020-7-24 09:43
HAL库成鸡肋了,很多人用HAL库做初始化,大部分的控制则用LL库,比STD库更原始了,时代的退步。  ...

一个初始化,节省你多少工作量?还不知足,而且多大多数应用,对效率要求没那么高HAL足够了。 而且中途更改配置更方便,重新初始化一下就行,用STD库的要哭死。

出0入0汤圆

发表于 2020-7-24 14:59:19 | 显示全部楼层
标准库用习惯了,自由度比较高。Hal库还在适应中

出100入101汤圆

发表于 2020-9-25 11:20:24 | 显示全部楼层
三种库,都出了几年时间了,还有坑。ST该招人了

出0入4汤圆

发表于 2021-7-31 08:56:40 | 显示全部楼层
ST 后面只会更新Hal 库的,是趋势!

出0入0汤圆

发表于 2021-7-31 09:53:12 来自手机 | 显示全部楼层
caizhiwei 发表于 2020-7-22 20:22
很正常,我这么多年都一直用STD库,比hal库好用100倍

尽量用ST的最新库,尤其是新出的片子。厂家会通过这些驱动屏蔽掉一些芯片的bug

出0入0汤圆

发表于 2021-7-31 11:36:59 | 显示全部楼层
还是标准库用的习惯,芯片配置只是程序中的一小部分,觉得没必要折腾新东西

出255入0汤圆

发表于 2021-8-3 07:37:51 | 显示全部楼层
使用库之前可以多看看例程。

出0入0汤圆

发表于 2021-8-3 21:35:07 | 显示全部楼层
flash3g 发表于 2020-7-24 00:47
哈哈,HAL过渡封装,LL又太简单封装了,还是Std库顺手。

LL 库很多好,就 是封装不够。HAL封装得太狠
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-9 10:49

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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