本帖最后由 edan_lee 于 2021-4-25 08:51 编辑
最近搞到一小批HC32L130J8TA用到产品上,原来用的是STM32F030C8T6。因为第一脚接了电容并用了二极管接入VCC,所以可以不需要重新画板,只需要把二极管取下就可以硬件兼容。现在已经调试完成,下面讲讲我的经验。
1、华大的这个版本的低功耗做得很好,静态功耗好低。这个必须要点赞。对于一些代码量大的应用着实不好。
2、SPI的读驱动要加delay实在让我困惑,实际上我也是抄了这个例程。
while(Spi_GetStatus(M0P_SPI0, SpiTxe) == FALSE); //等待发送缓冲器空
Spi_SendData(M0P_SPI0, 0); //发送空数据
delay10us(20);
while(Spi_GetStatus(M0P_SPI0, SpiRxne) == FALSE);
rx_buf[rx_cnt++] = Spi_ReceiveData(M0P_SPI0);
3、ADC用10位貌似才比较可靠,12位的结果需右移2位。
4、休眠例程中的休眠参数用了“TRUE",在这里掉了个坑,我的应用是系统周期唤醒检测一些状态然后在返回休眠。如果休眠参数用了"TRUE"则只会处理中断中的任务然后直接返回休眠。把参数"改成FALSE"就可以了。这也是因为没有仔细看库里的注释。希望后来人可以避免这个问题。 5、关闭串口,不像其它产品有一个enable位。这个产品上要关闭串口,只需要关闭CLK,并且把串口的I/O重新配置一下就可以。
6、失能ADC的同时需要失能BGR模块,否则会有40uA左右的功耗。
7、串口失能I/O输出低电平到配置为串口状态会收到一个数据。
其它功能没有使用到,不知如何。
|