一、定时器输出一路PWM波形
1.1 PWM简介
PWM(Pulse Width Modulation)控制——脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值)。
对模拟信号电平进行数字编码,也就是说通过调节占空比的变化来调节信号、能量等的变化,占空比就是指在一个周期内,信号处于高电平的时间占据整个信号周期的百分比,例如方波的占空比就是50%。
脉宽调制(PWM)基本原理:控制方式就是对逆变威廉希尔官方网站
开关器件的通断进行控制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需要的波形。也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出平滑且低次谐波少。按一定的规则对各脉冲的宽度进行调制,即可改变逆变威廉希尔官方网站
输出电压的大小,也可改变输出频率。
1.2 代码生成
直接下载野火或者正点原子的代码,找到相应的PWM输出代码,再进行相关操作。
方法一:
野火官网慢慢找或者往期文章有链接;
方法二:
打开STM32cubemx,找到STM32103RB(指南者),设置芯片PWM功能,生成keil5代码(华清远见实训);
1.3 示波器波形
打开keil5(野火)
第一步:先编译,否则会报错,找不到.axf文件:
第二步:直接点击魔法棒(options for target),按照如图所示选中:
只需要点一个,其他不要随便更改,否则容易报错。
第三步:按照下图点击Debug:(这个已经成功了,个别地方与图不符)
第四步:按照下图所示点击Analysis window:
接着按照下图点击左上角set up添加信号:GPIOA_IDR.6
输入信号GPIOA_IDR.6之后自动变成上图那个样子;
第五步:点击运行RUN:
结果如下所示:
烧录到板子,连接示波器,调频之后得到如图所示的结果:
二、DAC输出正弦波
2.1 DAC简介
数模转换器,又称D/A转换器,简称DAC,它是把数字量转变成模拟的器件。D/A转换器基本上由4个部分组成,即权电阻网络、运算放大器、基准电源和模拟开关。模数转换器中一般都要用到数模转换器,模数转换器即A/D转换器,简称ADC,它是把连续的模拟信号转变为离散的数字信号的器件。
STM32具有片上DAC外设,它的分辯率可配置为8位或12位的数字输入信号,具有两个DAC输出通道,这两个通道互不影响,每个通道都可以使用DMA功能,都具有出错检测能力,可外部触发。DAC可以通过引脚输入参考电压VREF+以获得更精确的转换结果。
DAC主要特征
2个DAC转换器:每个转换器对应1个输出通道
8位或者12位单调输出
12位模式下数据左对齐或者右对齐
同步更新功能
噪声波形生成
三角波形生成
双DAC通道同时或者分别转换
每个通道都有DMA功能
外部触发转换
输入参考电压VREF+
2.2 代码生成
下载野火或者正点原子的代码,找到相应的DAC功能,输出正弦波,在此基础上更改代码,进行相关操作。
方法同上,这次采用野火的《38-DAC—输出正弦波》文件。
2.3 生成正弦波
第一步:打开keil5文件,找到bsp.dac.c文件,再找到第90行代码:(先放着不管)
第二步:打开文件夹,按图所示,找到.m文件:
用matlab打开修改:
将32改为3600;
点击运行,输出结果如下图所示:
与此同时,dac.sinvave.c生成了3600个数据,如图所示:
回到工程当中,如图所示修改:
仍然将32改为3600,否则报错,之后编译,成功后烧录到板子上,连接示波器,通过调频得到结果:
2.4 数字音频数据转换为模拟音频波形输出
在Adobe Audtion中打开自己下载好的音乐,按照如图所示截取选段,
右击点击选取另存为,
选择格式为.wav格式:
将保存的.wav文件在转换软件中打开:
按如图所示转换:
将生成的文件用.TXT形式打开:
粘贴到代码中(与本博客上面的正弦波过程相同,这里不做赘述)
编译烧录到板子,连接示波器。
一、定时器输出一路PWM波形
1.1 PWM简介
PWM(Pulse Width Modulation)控制——脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值)。
对模拟信号电平进行数字编码,也就是说通过调节占空比的变化来调节信号、能量等的变化,占空比就是指在一个周期内,信号处于高电平的时间占据整个信号周期的百分比,例如方波的占空比就是50%。
脉宽调制(PWM)基本原理:控制方式就是对逆变威廉希尔官方网站
开关器件的通断进行控制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需要的波形。也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出平滑且低次谐波少。按一定的规则对各脉冲的宽度进行调制,即可改变逆变威廉希尔官方网站
输出电压的大小,也可改变输出频率。
1.2 代码生成
直接下载野火或者正点原子的代码,找到相应的PWM输出代码,再进行相关操作。
方法一:
野火官网慢慢找或者往期文章有链接;
方法二:
打开STM32cubemx,找到STM32103RB(指南者),设置芯片PWM功能,生成keil5代码(华清远见实训);
1.3 示波器波形
打开keil5(野火)
第一步:先编译,否则会报错,找不到.axf文件:
第二步:直接点击魔法棒(options for target),按照如图所示选中:
只需要点一个,其他不要随便更改,否则容易报错。
第三步:按照下图点击Debug:(这个已经成功了,个别地方与图不符)
第四步:按照下图所示点击Analysis window:
接着按照下图点击左上角set up添加信号:GPIOA_IDR.6
输入信号GPIOA_IDR.6之后自动变成上图那个样子;
第五步:点击运行RUN:
结果如下所示:
烧录到板子,连接示波器,调频之后得到如图所示的结果:
二、DAC输出正弦波
2.1 DAC简介
数模转换器,又称D/A转换器,简称DAC,它是把数字量转变成模拟的器件。D/A转换器基本上由4个部分组成,即权电阻网络、运算放大器、基准电源和模拟开关。模数转换器中一般都要用到数模转换器,模数转换器即A/D转换器,简称ADC,它是把连续的模拟信号转变为离散的数字信号的器件。
STM32具有片上DAC外设,它的分辯率可配置为8位或12位的数字输入信号,具有两个DAC输出通道,这两个通道互不影响,每个通道都可以使用DMA功能,都具有出错检测能力,可外部触发。DAC可以通过引脚输入参考电压VREF+以获得更精确的转换结果。
DAC主要特征
2个DAC转换器:每个转换器对应1个输出通道
8位或者12位单调输出
12位模式下数据左对齐或者右对齐
同步更新功能
噪声波形生成
三角波形生成
双DAC通道同时或者分别转换
每个通道都有DMA功能
外部触发转换
输入参考电压VREF+
2.2 代码生成
下载野火或者正点原子的代码,找到相应的DAC功能,输出正弦波,在此基础上更改代码,进行相关操作。
方法同上,这次采用野火的《38-DAC—输出正弦波》文件。
2.3 生成正弦波
第一步:打开keil5文件,找到bsp.dac.c文件,再找到第90行代码:(先放着不管)
第二步:打开文件夹,按图所示,找到.m文件:
用matlab打开修改:
将32改为3600;
点击运行,输出结果如下图所示:
与此同时,dac.sinvave.c生成了3600个数据,如图所示:
回到工程当中,如图所示修改:
仍然将32改为3600,否则报错,之后编译,成功后烧录到板子上,连接示波器,通过调频得到结果:
2.4 数字音频数据转换为模拟音频波形输出
在Adobe Audtion中打开自己下载好的音乐,按照如图所示截取选段,
右击点击选取另存为,
选择格式为.wav格式:
将保存的.wav文件在转换软件中打开:
按如图所示转换:
将生成的文件用.TXT形式打开:
粘贴到代码中(与本博客上面的正弦波过程相同,这里不做赘述)
编译烧录到板子,连接示波器。
举报