找回密码
 立即注册
查看: 6781|回复: 29

关于STC函数库的建议

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-02-03 11:23:12

2

主题

4

回帖

28

积分

新手上路

积分
28
发表于 2022-12-13 11:07:58 | 显示全部楼层 |阅读模式

我下面提出的问题会有些举例,并不是说问题只是我举的例子,这些例子只是有代表性的一些。

1是要做版本管理,我拿stc8h的库举例,现在还是20220509的版本,但是问题却很多,功能也不全,最大的问题就是版本有问题!比如stc8的库,如图:库函数文件夹和独立例程文件夹的版本是不同的,这会为开发带来误解。而且这两个版本的库内容也是不同的!比如独立库就没有宏定义配置IO的方式!!!!!而综合例程的库就有。我认为结构体配置io在51上大可不必,虽然可以有,但是必须有简洁的函数化配置方式。

关于STC函数库的建议-1.png 关于STC函数库的建议-2.png
版本管理怎么做?建议STC使用github、gitee,整版本管理,而不是官网一个压缩包,(压缩包依然可以保留但是一定要搞版本管理),允许用户贡献代码(可以不),提issue,而不是只能找技术,销售或者在论坛在群里问。这样才能让开发者开发起来更容易。
2.库的管理要做好,建议大量增加ifdef等语句,帮用户做好很多工作(不重复造轮子),比如让用户define自己的芯片型号,由ifdef来判断使用STC8G的库还是STC8H的库,让用户define芯片版本,固件版本,if判断该芯片版本是否有这个功能,是否存在问题,在编译时就报错,防止用户因为版本不同在量产时出问题
3.将timer interrupt等需要配置的函数、定义从库文件中拿出来,让用户非必要不改库,减少问题出现
4.记得stc以前推出过cubx,但似乎已经没了,stc自己也是有考虑的吧!!我认为还是可以有,直接省去用户下载库配置工程的时间。有人认为51就应该用寄存器开发,前期有人认为stm32也应该用寄存器,这样才更根本,但如今stm32的库开发已经相当方便。是我认为,stc现在的51,性能已经比较强悍,不应该把工程师的时间浪费在查寄存器上,应大力推广库开发,提高竞争力。毕竟以更短的时间落地产品,何乐而不为?
5.官方的库一定要全,比如chipID的功能,库就没有,例程也太少,远少于试验箱的例程。
5.库显然还很多有问题,比如,在程序开始的时候先将P_SW2第一位写1(P_SW2 |= 0x80;  //使能访问XFR)不知道初始化啥外设的时候,P_SW2寄存器第一位(XFR)会重新变成0,而无法访问CHIPID;
听别人说还有别的问题但是记不起来了。官方也要积极更新库,以后stc出ARM核的,用寄存器开发就太累了,所以建议尽早落实库的版本管理等。




回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2022-12-13 11:40:37 | 显示全部楼层
我们会逐渐完善库函数的。您所提的要求,我们会逐步推进。
实际上,好多用户都没用过ARM,所以用库就显吃力。
STC最早于2013年提供STC15系列的库函数,风格和STM32的风格一致。

后来好多用户说寄存器来的更直接高效。
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2023-12-06 15:33:02

20

主题

110

回帖

771

积分

荣誉版主

积分
771
发表于 2022-12-16 11:07:18 | 显示全部楼层
我完善了一下关于io中断还有外部中断的库上传到论坛,结果都没人吱声:sleepy:
  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2022-12-16 12:34:01 | 显示全部楼层
感谢,持续改善,持续进步,一箭双雕之USB转双串口,6M bps 请笑纳
  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

冲哥视频教程和各种开源资料QQ交流群884047237,可群

积分
8058
QQ
发表于 2022-12-16 13:17:33 | 显示全部楼层
ch*** 发表于 2022-12-16 11:07
我完善了一下关于io中断还有外部中断的库上传到论坛,结果都没人吱声 ...

因为51真没几个用库的~
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2023-12-06 15:33:02

20

主题

110

回帖

771

积分

荣誉版主

积分
771
发表于 2022-12-16 14:49:22 | 显示全部楼层
电子DI*** 发表于 2022-12-16 13:17
因为51真没几个用库的~

之前我都是自己封装常用外设的初始化代码,官方没有好用的库当然没几个用:lol
  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-03-26 10:27:44

0

主题

14

回帖

140

积分

注册会员

积分
140
发表于 2022-12-16 15:47:41 | 显示全部楼层
我用官方库整理了一套自己的框架,感觉越来越喜欢了,就是后期发现官方库实在有些地方不好:
其中一个CPU的头文件里包含了好多额外的定义,而且不同的官方例程头文件居然不通用,害得我重新改来改去;
再一个官方的库函数版本的例程也不统一,比如有的中断函数拿出来了,有的却在驱动库里,有的驱动库结构体定义居然还不同,比如有的库函数中中断使能及优先级是结构体的成员,有的居然有采用的是中断设置函数

官方不重视库函数的维护也会影响到很多人的使用的,但也别指望刚推出就有大批人去支持和使用

STM32用的人多,库函数丰富完善好用也是一个重要原因(降低了开发使用门槛)
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2023-12-06 15:33:02

20

主题

110

回帖

771

积分

荣誉版主

积分
771
发表于 2022-12-16 17:42:56 | 显示全部楼层
之前官网里面那个逐飞科技做的库那个风格挺不错的,外设初始化一个函数搞定
  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2022-12-16 19:37:23 | 显示全部楼层
1.png
已绑定手机

4

主题

11

回帖

250

积分

中级会员

积分
250
发表于 2022-12-16 20:11:39 | 显示全部楼层
ch*** 发表于 2022-12-16 11:07
我完善了一下关于io中断还有外部中断的库上传到论坛,结果都没人吱声 ...

悦己达人,进德修业~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 04:23 , Processed in 0.145117 second(s), 112 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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