MicroPython内核开发笔记书内软件用例 :DAC相关实验

简 介: 本文给出了 MicroPython内核开发笔记:书内嵌入实验任务 中的 DAC模块相关 软件用例部分内容。

关键词 MicroPythonmm32f3277DAC

书稿内容
目 录
Contents
基础实验
两路DAC输
出电压信号
产生正弦波形
总 结

软件用例:
这部分书稿内容包括有:

  1. 基础的DAC电压输出实验。
  2. 输出正弦波信号。
  • 书稿内位置:

§01 稿内容


在 MM32F3277 单片机中,DAC 通道有两路输出,对应的端口分别为:

DAC端口:
DAC0:PA4
DAC1:PA5

一、基础实验

1、两路DAC输出电压信号

下面测试代码,分别在 DAC 两个通道输出两个不同电压。

from machine                import DAC

dac0 = DAC(0)
dac1 = DAC(1)

print('Test DAC ...')

dac0.write_u16(0x8000)
dac1.write_u16(0x4000)

上面代码演示了声明两个 DAC 通道对象,非常简单。 通过 write_u16 函数改变 DAC 输出电压,输出电压与写入的数值 n 之间的关系为: V o u t = n 0 x F F F F × 3.3 V V_{out} = {n \over {0xFFFF}} \times 3.3V Vout=0xFFFFn×3.3V 其中 3.3V 是单片机的模拟参考电压。

使用数字万用表,可以分别在 DAC0,DAC1对应的输出管脚测量对应的电压信号。

DAC输出电压:
DAC0(PA4):1.654V
DAC1(PA5):0.829V

2、产生正弦波形

下面代码将会在两个 DAC 通道产生相位相反的正弦波。

from machine                import DAC
from math                   import *

dac0 = DAC(0)
dac1 = DAC(1)
print('Test DAC ...')

angle = [int((sin(i * pi * 2 / 100)+1.0)/2*0x6000+0x2000) for i in range(100)]

while True:
    for a in angle:
        dac0.write_u16(a)
        dac1.write_u16(0xa000 - a)

下面是两个 DAC 通道输出的正弦波电压信号。

▲ 两个DAC通道的正弦波电压信号

▲ 两个DAC通道的正弦波电压信号

  结 ※


本文给出了 MicroPython内核开发笔记:书内嵌入实验任务 中的 DAC模块相关 软件用例部分内容。


■ 相关文献链接:

● 相关图表链接:

猜你喜欢

转载自blog.csdn.net/zhuoqingjoking97298/article/details/125547158