最近做一个项目,需要用到大的RAM和比较高速的ADC配合数据采集,应广单片机已经无能无力了。因此选用了普冉的030单片机。对于习惯使用应广单片机进行处理的人来说,突然转向M0操作,有电不适应,通过对比发现有不一样的地方。下面最做一个小的总结。其中M0使用的是HAL库。
总体感觉:就是应广开发是好比是原子操作,除了数据运算之外,所有的操作都围绕IO和寄存器在转,因此熟悉手册寄存器尤其重要。M0的开发好好比是分子操作,必须熟悉HAL结构体说明,所以的操作基本围绕结构体在转,因此熟悉结构体所表述的意思尤为重要。
1.应广单片机开发必须熟悉规格书和寄存器操作。M0单片机已经把寄存器封装成结构体和对应的意义了,熟悉外设功能和结构体就OK了
2.应广单片机基本所有操作都必须手搓,而M0单片机很多的功能都已经模块化了,只有配置相应的结构体就行了。
3.应广单片机数据运算能力有限,需要注意运算时间和关注数据溢出问题,M0单片机数据运算能力强,可以直接调库使用,虽然是32bit长度,但仍要关注数据溢出问题,因为数据长度变长了,数据溢出问题可能会更加隐秘。
4.应广单片机不用考虑回调函数问题,M0单片机可能涉及到回调函数,回调函数有个个好处就是使程序更加集中,方便查看和管理。
5.应广单片机仿真不是所见即所得,需要用到仿真器进行仿真,然后烧录芯片测试。而M0单片机是在芯片上调试,所见即所得,开发调试也非常方便。
6.应广单片机的代码量一般比较少,任何细节都需要精雕细琢,因此需要对手册非常熟悉,即配即用比较多。而M0单片机经过数据机构的封装之后,基本操作都是先配置,再启动。
7.应广单片机内部时钟简单,一般即配即用,而M0单片机时钟比较复杂和庞大,很多时候再配置参数之前一定要记得打开时钟开关,否则可能出现配置好,无法启动/或是启动无效的问题。
8.应广单片机的外设只能说是够用的样子,而M0单片机有很多外设可以使用,比如Tmr都有N个,而且每个TM都有各自的身手,可以组合使用,配合使用,比如DMA,很多时候配置好了就放在那边不用管了,等中断或是检测完成标记就可以了。
总之,一个是原子操作,一个是分子操作。一个要熟悉手册,要多配寄存器,调试功能;一个要熟悉功能,多改demo,熟悉结构体应用。