stm32f103c6t6输入设定电流从而改变dac输入电压的代码
时间: 2023-07-09 10:25:05 浏览: 93
stm32f103c6t6最小系统板,自制pcb,包含了RTC的外部低速时钟
以下是基于STM32F103C6T6芯片的DAC输出电压可以通过改变输入设定电流来实现的代码:
```c
#include "stm32f10x.h"
void DAC_Configuration(void);
void GPIO_Configuration(void);
int main(void)
{
GPIO_Configuration();
DAC_Configuration();
while(1)
{
//设置DAC输入电流
DAC_SetChannel1Data(DAC_Align_12b_R, 2048); //将12位数据写入DAC通道1数据寄存器,这里设置为2048,即50%的输出电压
//等待一段时间后继续改变DAC输入电流
//...
}
}
void DAC_Configuration(void)
{
DAC_InitTypeDef DAC_InitStructure;
//使能DAC时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);
//DAC通道1初始化
DAC_InitStructure.DAC_Trigger = DAC_Trigger_None; //软件触发
DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None; //无波形发生
DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable; //输出缓存使能
DAC_Init(DAC_Channel_1, &DAC_InitStructure); //初始化DAC通道1
//使能DAC通道1
DAC_Cmd(DAC_Channel_1, ENABLE);
}
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
//使能GPIOA时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
//配置PA4为模拟DAC输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; //模拟输入模式
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
```
在这里,我们使用了STM32F103C6T6芯片的DAC输出功能,将输入电流转化为相应的模拟输出电压。我们使用了DAC通道1,通过设置DAC输入电流来改变DAC输出电压。代码中使用了DAC_SetChannel1Data函数来设置DAC输入电流,实现了改变DAC输出电压的功能。
阅读全文