对于讨论说,寄存器好,还是固件库好,我想说这两个方案,各有各的好,任何事物都有两面性。只是工程师习惯用或者喜欢用那种。
但实际上,这两种都有它的实用范围,
我先简单说下这两个方案,大家都知道的特点:
固件库,优点是,前期开发简单,容易较快实现项目所需要功能。缺点,代码量大。精细化功能实现。
寄存器,前期开发复杂,前期调试时间对比固件库。
就我个人而言,我目前主要使用寄存器,当时有一个项目,在做单片机选型时候。采集高频率的方波,误差要求正负3,使用固件库,编译时间很长,误差只能说在正负3 ,4的样子。
后面在真正上项目的时候,发现编译下来的执行文件很大,超出了128k,升级同系列256k的stm32,
又因为成本控制,试想下,每个芯片差几毛钱,每年一百多万台的销售量,就等于差了好几十万块钱,没办法,就优化代码,使用寄存器,终于最终编译下来的code在100k左右,而且发现采集零度在正负2左右,精度也提升了,皆大欢喜。
上面我说不是说固件库不好,毕竟我现在在有些部分也是调用别人写好的代码,比如usb部分,还有fatfs等,自己写太麻烦了
整体来说我是寄存器为主,固件库为辅,两者都有用。在调试分析代码时候也得心应手。
如果对于成本不是很敏感,功能要求不非常精细,都是可以选用固件库的。各个工程师也各有喜好习惯。