前序
看了AI8051U的广告被骗进来了~~~~~~~~~~~~~~
记得大学本科的时候,课堂上学STC-51系列课程,那就是我的噩梦,十多年过去了,现在再回来前依旧是噩梦啊~
当时看到其繁琐的寄存器调用过程,点个灯都要花很多行代码去实现,根本记不住,导致还没入门就放弃了,后来转去学STM32和Linux去了。
关于速成上的问题
1,系统时钟指定问题,系统时钟使用片内时钟或者是片上时钟需要在代码和ISP工具上同时指定。
2,通用API接口问题,可以理解有多套接口,但是不理解一个系列芯片一套接口。
3,初学使用困难;一套MCU就像是一个公式一样,按它的模板来,依葫芦画瓢,就应该是很简单的事情。
由于API接口缺乏统一、完整、集成的问题,导致重复学习和不确定性增加;平台也需要整理出自己的通用应用指导手册。
4,调试问题-基础程序过程的调试一般是通过串口打印输出log来看。下载和调试复用也需要ISP勾选。。。。打印输出需要自己造轮子来支持printf?
5,如何让每一个初学者都能站在巨人的肩膀上,更多时间专注自己的Idea实现?
6,对第三方IDE的过度依赖,目前开发STC系列,大多都用的Keil,STC系列还没有自己的使用生态。导致从安装到使用过程的步骤繁琐。而且使用过程步骤过于零散。
STC完全可以自己使用一套IDE或者直接集成到VSCode; 统一上层应用接口,让用户按需配置自己的MCU,到编译执行调试
7,面向应用的封装问题,稍微瞄了一下STC提供的库系列每一个库虽然接口保持一致性,但是结构体没有抽象出来。
8,三天可以入门STM32和ESP32系列,却入门不了STC系列,着实有点难过了。
建议
如果STC能有自己的IDE,简化用户上手难度,集成所有系列的MCU的API,统一上层接口,通过宏控制匹配各个型号的MCU , 完成一套代码轻微修改就能在各个系列上的芯片轻松运行,那将是极大的进步,也会吸引更多的人来实用STC系列单片机。
就像操作系统一样,我们很多嵌入式工程师为什么都很喜欢Linux操作系统,因为它完全是按Unix接口规范来实现它的系统接口,大大增加了可移植性,减少了重复差异化的繁琐工作。可以让不同的人同时协作,完成一件庞大的工程。
不过相比以往,STC有自己的库了,其库的结构体基本保持一致,使用上也会变得比较简单,通过库的封装,日常使用上大大增加了代码的可读性,减少了主要逻辑的代码量,让每个用户专注自己的IDEA实现。
CPU执行效率VS初学者上手难度:CPU的频率提高,对代码效率的影响才是最大的,不需要用户的编程习惯来节省几个时钟节拍。应该执着的让用户从入门到精通的时间变得更短才是MCU厂首要关注的问题。
大道至简,越简单就越容易入门,越通用就越能让用户自己举一反三。
你觉得STC目前怎么样呢,大家一起来吐槽吧
其他
讨论技术没有阵营问题,也没有必要在个别点上争个对错。
发贴为新入门的朋友吐槽下,然后还需要继续学习,找到合适自己的方法,最后能将STC应用到实际项目中去。