OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32/FPGA开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...
查看: 1479|回复: 29

HAL库有毒。。。个别地方慎用

[复制链接]

  离线 

62

主题

5135

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
6555
金钱
6555
注册时间
2012-11-26
在线时间
1492 小时
发表于 2018-3-12 10:55:19 | 显示全部楼层 |阅读模式
最近做个功能,主要用到了串口、定时器、DAC ,上了freertos

发现运行一段时间串口就不响应了,看寄存器,串口中断莫名被禁用

调试一段时间,改了各种配置,最后抛弃回调,抛弃库函数,直接上寄存器直接处理中断,异常情况没了。。。

猜测是定时器频繁中断(频率:262144),导致HAL库没处理过来

综上,如果在紧张的资源下,还是别调用HAL库函数,直接操作寄存器吧。。。


道不同,不相与为谋
回复

使用道具 举报

  离线 

14

主题

401

帖子

0

精华

高级会员

Rank: 4

积分
779
金钱
779
注册时间
2015-3-26
在线时间
146 小时
发表于 2018-3-23 08:50:52 | 显示全部楼层
垃圾————
回复 支持 1 反对 0

使用道具 举报

  离线 

8

主题

831

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2284
金钱
2284
注册时间
2011-5-23
在线时间
1100 小时
发表于 2018-3-12 11:09:53 | 显示全部楼层
26K中断,本身这设计就不是很合理了吧?
有没办法降低中断频率?或把这个中断做成不可屏蔽的。
另外测算这个中断的最大耗时,确认CPU的处理能力是足够的。
回复 支持 反对

使用道具 举报

  离线 

62

主题

5135

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
6555
金钱
6555
注册时间
2012-11-26
在线时间
1492 小时
 楼主| 发表于 2018-3-12 11:34:18 | 显示全部楼层
aozima 发表于 2018-3-12 11:09
26K中断,本身这设计就不是很合理了吧?
有没办法降低中断频率?或把这个中断做成不可屏蔽的。
另外测算 ...

控制累加器输出波形频率,综合考虑还是用的这个频率
道不同,不相与为谋
回复 支持 反对

使用道具 举报

  离线 

0

主题

191

帖子

0

精华

高级会员

Rank: 4

积分
574
金钱
574
注册时间
2017-6-2
在线时间
190 小时
发表于 2018-3-12 12:41:19 | 显示全部楼层
HAL库本来就是牺牲硬件成本,来换取开发成本的一种方式,当然不适合极限性能下的使用
回复 支持 反对

使用道具 举报

  离线 

19

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1276
金钱
1276
注册时间
2016-4-29
在线时间
201 小时
发表于 2018-3-12 12:47:12 | 显示全部楼层
中断程序全部采用寄存器操作
回复 支持 反对

使用道具 举报

  离线 

9

主题

1348

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5143
金钱
5143
注册时间
2013-3-8
在线时间
687 小时
发表于 2018-3-12 12:48:09 | 显示全部楼层
用PWM模式,或FPGA不更好吗?单片机这么高的中断频率是不合理的!
回复 支持 反对

使用道具 举报

  离线 

62

主题

5135

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
6555
金钱
6555
注册时间
2012-11-26
在线时间
1492 小时
 楼主| 发表于 2018-3-12 12:55:28 | 显示全部楼层
augustedward 发表于 2018-3-12 12:48
用PWM模式,或FPGA不更好吗?单片机这么高的中断频率是不合理的!

要对波形调幅的,FPGA这方面不会。。。
道不同,不相与为谋
回复 支持 反对

使用道具 举报

  离线 

9

主题

1348

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5143
金钱
5143
注册时间
2013-3-8
在线时间
687 小时
发表于 2018-3-12 13:06:26 | 显示全部楼层
jermy_z 发表于 2018-3-12 12:55
要对波形调幅的,FPGA这方面不会。。。

FPGA加DA不就可以了。用定时器调幅?
回复 支持 反对

使用道具 举报

  离线 

62

主题

5135

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
6555
金钱
6555
注册时间
2012-11-26
在线时间
1492 小时
 楼主| 发表于 2018-3-12 13:09:31 | 显示全部楼层
augustedward 发表于 2018-3-12 13:06
FPGA加DA不就可以了。用定时器调幅?

dds有了解不,定时器累加,进行取点DAC输出
道不同,不相与为谋
回复 支持 反对

使用道具 举报

  离线 

9

主题

1348

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5143
金钱
5143
注册时间
2013-3-8
在线时间
687 小时
发表于 2018-3-12 14:14:32 | 显示全部楼层
jermy_z 发表于 2018-3-12 13:09
dds有了解不,定时器累加,进行取点DAC输出

那可以直接用FPGA,在RAM里把数据表加进去就可以了,可以实现频率可调,波形可变(根据RAM内容变),相位可调,幅值可调,用一片FPGA就可以搞定。
回复 支持 反对

使用道具 举报

  离线 

62

主题

5135

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
6555
金钱
6555
注册时间
2012-11-26
在线时间
1492 小时
 楼主| 发表于 2018-3-12 14:16:53 | 显示全部楼层
augustedward 发表于 2018-3-12 14:14
那可以直接用FPGA,在RAM里把数据表加进去就可以了,可以实现频率可调,波形可变(根据RAM内容变),相位 ...

关键是不懂FPGA啊。。。上面已经讲了
道不同,不相与为谋
回复 支持 反对

使用道具 举报

  离线 

9

主题

1348

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5143
金钱
5143
注册时间
2013-3-8
在线时间
687 小时
发表于 2018-3-12 14:19:22 | 显示全部楼层
jermy_z 发表于 2018-3-12 14:16
关键是不懂FPGA啊。。。上面已经讲了

那用单片机是有点麻烦了。频率不能太高,否则很容易出问题。数电只要好,学习FPGA用于DDS,半个月就可以搞定。
回复 支持 反对

使用道具 举报

  离线 

74

主题

6692

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
13432
金钱
13432
注册时间
2013-11-13
在线时间
1626 小时
发表于 2018-3-12 14:59:14 | 显示全部楼层
HAL库在效率上确实太蛋疼了,最基本的串口中断接收,如果用HAL库的话速度一快就反应不过来了。
回复 支持 反对

使用道具 举报

  离线 

22

主题

679

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
4085
金钱
4085
注册时间
2015-11-5
在线时间
1217 小时
发表于 2018-3-13 16:53:06 | 显示全部楼层
HAL库的串口驱动确实有问题,我没上OS,用原子的串口代码跑,在收发比较频发时很容易出现串口接收被关闭的现象
回复 支持 反对

使用道具 举报

  离线 

25

主题

648

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1135
金钱
1135
注册时间
2012-4-25
在线时间
133 小时
发表于 2018-3-13 17:01:45 | 显示全部楼层
本帖最后由 mygod 于 2018-3-13 17:22 编辑

STM32F103,50K 中断频率,没有用HAL库
1-1
回复 支持 反对

使用道具 举报

  离线 

14

主题

425

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2667
金钱
2667
注册时间
2013-6-27
在线时间
349 小时
发表于 2018-3-13 19:23:04 | 显示全部楼层
mygod 发表于 2018-3-13 17:01
STM32F103,50K 中断频率,没有用HAL库

262144=262kHz,STM32高速中断会出现奇怪问题,使用CPLD构建DDS信号发生器是比较合理的,不过使用DMA降低中断频率,之前我调试IIS中断频率71K*4+71K,代码非常不稳定,后面使用DMA把中断频率干下来,就正常了。有些芯片自动DDS功能
让我们的思维驾驭在电的速度之上!
回复 支持 反对

使用道具 举报

  离线 

0

主题

88

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
357
金钱
357
注册时间
2016-11-1
在线时间
119 小时
发表于 2018-3-13 19:47:44 | 显示全部楼层
FreeRTOS 发表于 2018-3-13 16:53
HAL库的串口驱动确实有问题,我没上OS,用原子的串口代码跑,在收发比较频发时很容易出现串口接收被关闭的 ...

不是HAL库的驱动有问题,是原子的用法有问题
回复 支持 反对

使用道具 举报

  离线 

6

主题

532

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1750
金钱
1750
注册时间
2015-5-8
在线时间
271 小时
发表于 2018-3-13 21:27:18 | 显示全部楼层
HAL库加freertos才是问题多多
回复 支持 反对

使用道具 举报

  离线 

6

主题

532

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1750
金钱
1750
注册时间
2015-5-8
在线时间
271 小时
发表于 2018-3-13 21:29:19 | 显示全部楼层
不过现在工作基本已经寄存器或者HAL库了
回复 支持 反对

使用道具 举报

  离线 

1

主题

37

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
238
金钱
238
注册时间
2018-3-8
在线时间
49 小时
发表于 2018-3-20 14:05:45 | 显示全部楼层
准备用HAL库呢,先听听大家的意见
回复 支持 反对

使用道具 举报

  离线 

62

主题

5135

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
6555
金钱
6555
注册时间
2012-11-26
在线时间
1492 小时
 楼主| 发表于 2018-3-20 16:18:54 | 显示全部楼层
hellowSTM32 发表于 2018-3-20 14:05
准备用HAL库呢,先听听大家的意见

其它位置可以用HAL库,中断就不要用了
道不同,不相与为谋
回复 支持 反对

使用道具 举报

  离线 

14

主题

401

帖子

0

精华

高级会员

Rank: 4

积分
779
金钱
779
注册时间
2015-3-26
在线时间
146 小时
发表于 2018-3-20 16:53:20 | 显示全部楼层
你打开方式不对,我用着好好的
回复 支持 反对

使用道具 举报

  离线 

62

主题

5135

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
6555
金钱
6555
注册时间
2012-11-26
在线时间
1492 小时
 楼主| 发表于 2018-3-20 17:26:03 | 显示全部楼层
xyl210xyl 发表于 2018-3-20 16:53
你打开方式不对,我用着好好的

你按照我的条件,你去用看看,没问题再来回答!
道不同,不相与为谋
回复 支持 反对

使用道具 举报

  离线 

14

主题

401

帖子

0

精华

高级会员

Rank: 4

积分
779
金钱
779
注册时间
2015-3-26
在线时间
146 小时
发表于 2018-3-22 10:07:42 | 显示全部楼层
jermy_z 发表于 2018-3-20 17:26
你按照我的条件,你去用看看,没问题再来回答!

我擦你还不让我回答了,哪怕是坨屎我也拉在这里了,瞧你那骄傲样,出来提问还那么拽,继续装B
回复 支持 反对

使用道具 举报

  离线 

62

主题

5135

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
6555
金钱
6555
注册时间
2012-11-26
在线时间
1492 小时
 楼主| 发表于 2018-3-22 10:08:48 | 显示全部楼层
xyl210xyl 发表于 2018-3-22 10:07
我擦你还不让我回答了,哪怕是坨屎我也拉在这里了,瞧你那骄傲样,出来提问还那么拽,继续装B

傻逼一样
道不同,不相与为谋
回复 支持 反对

使用道具 举报

  离线 

0

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
300
金钱
300
注册时间
2016-2-20
在线时间
71 小时
发表于 2018-3-23 13:19:00 | 显示全部楼层
说好的毒呢。。。。。。
不见了???
回复 支持 反对

使用道具 举报

  离线 

0

主题

3

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2017-11-27
在线时间
1 小时
发表于 2018-3-23 13:19:45 | 显示全部楼层
6666666
回复 支持 反对

使用道具 举报

  离线 

0

主题

3

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2017-11-27
在线时间
1 小时
发表于 2018-3-23 13:19:58 | 显示全部楼层
6666666666
回复 支持 反对

使用道具 举报

  离线 

23

主题

323

帖子

0

精华

高级会员

Rank: 4

积分
952
金钱
952
注册时间
2016-11-8
在线时间
227 小时
发表于 2018-3-23 13:23:00 | 显示全部楼层

看你俩吵架突然笑出声
亦余心之所善,
虽九死其犹未悔。
回复 支持 反对

使用道具 举报

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

本版积分规则




关闭

正点原子STM32/FPGA资料免费洗澡上一条 /1 下一条

正点原子公众号

QQ|联系我们|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-12-11 16:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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