负电压的学习

方法一:
在这里插入图片描述这个是以中间10V电压为公共部分,当需要-5v时,就把另一端接5V;需要+5V就把另一端接10V。该方案简单,但需要注意的是这个公共部分是10V,假如你要用32单片机与这种正负电压供电的模块通信,你32的VSS应该接这里的10V,而不是GND。
方案二:
采用电压反转芯片TP7660H.关于这款芯片自行百度去查资料。
在这里插入图片描述
这里你只需要输入+5v,就可以产生-5V的电压。但这个芯片Vin=2.5V~11V Vout=-11V~-2.5V 。如果想要产生正负不在此范围的低电压,可以加个运放电路。这里以产生正负1.5V为例。
在这里插入图片描述
这里的负5V用TP7660H产生的话,就可以达到5V输入供电产生-5v,+1.5v和-1.5V的效果。其他电压的话也可以通过改变电阻阻值来实现。

 

### STM32F103ZET6 实现 0-5V DAC 输出 为了使STM32F103ZET6能够输出0至5伏特的电压,需利用内部集成的DAC模块。该微控制器配备有两个DAC通道,分别为`DAC_OUT1(PA4)` 和 `DAC_OUT2(PA5)`[^2]。 考虑到STM32F103ZET6中的DAC具有12位分辨率,这意味着它可以处理的最大数字值为4095(即\(2^{12}-1\))。当设定参考电压(VREF+)等于期望的最大输出电压(这里是5V),则可通过调整输入给DAC的数据寄存器(DOR)来改变最终产生的模拟信号电平[^1]: \[ \text{DAC输出} = V_{\text{REF}} \times (\frac{\text{DOR}}{4095}) \] 因此,要生成特定范围内的任意电压水平,只需计算相应的DOR数值即可。例如,如果想要得到一半最大幅度也就是大约2.5V,则应将DOR设为约2047(\(\approx 4095/2\))。 #### 初始化配置过程 对于初始化设置部分,推荐采用STM32CubeMX工具来自动生成基础代码框架,并确保启用了必要的外设资源如DAC和GPIO端口映射。具体来说,应该选择合适的引脚作为DAC输出路径(`PA4`或`PA5`),并将这些引脚的功能定义为DAC用途。 接着,在软件层面完成进一步定制化操作之前,还需要确认系统的时钟源已经正确配置完毕以便支持后续功能需求。 最后一步是在应用程序中编写逻辑去控制DAC的行为,这通常涉及到调用HAL库函数来写入目标值到指定的数据寄存器内。以下是基于C语言的一个简单例子展示如何向DAC发送指令以产生不同级别的直流电压输出: ```c #include "main.h" // 假定已由STM32CubeMX完成了基本环境搭建... void Set_DAC_Output(uint16_t value){ HAL_DAC_SetValue(&hdac, DAC_CHANNEL_1, DAC_ALIGN_12B_R, value); } int main(void){ /* 用户应用入口 */ // 启动系统... SystemClock_Config(); MX_GPIO_Init(); MX_DMA_Init(); MX_DAC_Init(); while (1){ // 设置DAC输出为中间点电压 (~2.5V) Set_DAC_Output(2047); // 这里可以根据实际应用场景加入延时或其他业务逻辑... HAL_Delay(1000); // 测试其他可能的输出值... Set_DAC_Output(4095); // 接近于5V HAL_Delay(1000); } } ``` 上述程序片段展示了怎样通过修改传递给`Set_DAC_Output()`函数参数的方式轻松切换不同的固定电压等级输出。当然,在真实项目实施过程中还可能会涉及更多复杂的动态调节策略以及误差校正措施等额外考量因素。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值