本帖最后由 Alden 于 2023-11-6 13:58 编辑
#技术资源# #申请原创#
APM32F411是极海最新的高性价比Contex-M4F核MCU。
在做到兼容替代ST411的基础上,APM32F411系列还增加了很多外设。
比如更多的串口,更多的SPI接口,两个CAN接口,以及ADC也增加了一个ADC2。
使用极海官方APM32F4xx_SDK_V1.4 简单测试了下是可以正常使用ADC2的。
然后就想在ST标准库中也尝试配置ADC2,开始直接配置没跑通,研究了下手册发现还是有些差异需要注意。
APM32F411的ADC2中断是与ADC1共用ADC_IRQHandler,所以启动文件不需要进行修改。
而对比APM32F411手册的外设基址地址发现,APM31F411的ADC2基址地址与其他M4系列ADC2的基址地址不同。
由数据手册可以看到,APM32F411的基址地址是0x40012400,其他M4系列ADC2基址地址为0x40012100
所以在极海SDK中,对ADC的地址根据宏定义做了区分。
而使用ST库的情况下,就需要修改库函数。
将ADC2对应的0x2100改成0x2400
这样配置ADC2才能正常使用。
由于APM32F411的ADC2与ADC1是独立的,只能作为两个ADC独立使用,无法使用双重模式和三重模式。
所以多ADC外设的特殊功能,比如407可以做的规则同步和交替模式是无法使用的,这点需要注意。
在用户手册的寄存器功能中可以看到相关点。
可以看到APM32F411的ADC 通用控制寄存器(ADC_CCTRL)少了双重模式三重模式的配置。
411也没有适用于双重和三重模式的 ADC 通用规则数据寄存器(ADC_CDATA)
以上就是APM32F411新增的ADC2使用上的注意点。
|
奖励500家园币