电子说
#1
ADC读取
今天来看看先楫HPM5361的ADC读取例程,先楫HPM5361的ADC是支持16位的模数转换的,精度比一般的MCU 12位/10位的ADC都要高;采样精度更高。
打开了HPM5361的ADC16的程序
程序实例包括了ADC的四种读取模式
/** @brief Define ADC16 conversion modes. */
typedef enum {
adc16_conv_mode_oneshot = 0, 单次转换
adc16_conv_mode_period,
adc16_conv_mode_sequence,
adc16_conv_mode_preemption
} adc16_conversion_mode_t;
查看程序中使能的ADC口,可以在board.h里找到定义的ADC 口;这里使用的是ADC0.11;也可以自行修改。
ADC0.11在板子上是左边接口的ADC-A
程序默认输出是16位的数,为了直观点输出电压,我这里在第一种转换下修改了读取的处理,将读到的ADC值转化为电压值;
修改后通过串口的返回值就可以很直观的看到测试的电压值啦。
#2
互补PWM生成
PWM的全称是脉冲宽度调制,常用于设备控制,例如驱动电机,LED调光,无源蜂鸣器发声等等。
HPM5361硬件上PWM的引脚参考原理图是以下的引脚
首先是初始化IO口配置成PWM输出
板上配置PWM的PWM0 ,时钟,PWM输出的通道
PWM的时钟是连接在AHB外设的频率160MHz,从规格书上查到
加载reload是PWM的周期时间,设置为20 Khz的载波周期时间是50us,其他PWM周期可以调整参数
我想配置输出PWM互补模式,带死区输出;参考了例子的
generate_central_aligned_waveform_in_pair】
对于PWM需要配置好STA起始寄存器,RLD重载寄存器,比较寄存器CMP,互补的配置,死区时间
具体的配置程序
PWM 互补占空比更新程序;配置CMP1,CMP2的值;CMP1~CMP2的差值是正占空比的大小。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !