新手入门
- 积分
- 16
- 金钱
- 16
- 注册时间
- 2019-5-16
- 在线时间
- 3 小时
|
2金钱
我遇到一个实际运用问题想向大佬们求助,我的板子是stm32f407,我用dac通道输出模拟信号来控制伺服电机,伺服器型号台达ASDA-B2。当我在空载(未将伺服器与单片机连接)情况下,测试dac通道电压能够正常通过调试助手控制(例如:输入4095,电压为3.3v),单当板子与伺服器通讯连接上时,输入4095,测量端子两端电压只有1.5v。(板子用适配器12v电源供电,伺服器外接220v电源)
主程序如下:
int main(void)
{
u16 res;
u16 FN = 0;
u8 len;
u8 i =0;
u16 dacval=0;
char c_dat[10] = {0};
char sed_buf[10] = {0};
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
delay_init(168);
uart_init(115200);
LED_Init();
Adc_Init();
Dac1_Init();
while(1)
{
if(USART_RX_STA&0x8000)
{
len=USART_RX_STA&0x3fff;
for(i=0;i<len ;i++)
{
c_dat[i]=USART_RX_BUF[i];
}
c_dat[i] = 0;
USART_RX_STA=0;
res = atoi(c_dat);
if(res>=4095)
{
dacval=4095;
DAC_SetChannel1Data(DAC_Align_12b_R, dacval);
}else if( res<4095)
{
dacval=res;
DAC_SetChannel1Data(DAC_Align_12b_R, dacval);
}
}
FN = Get_Adc_Average(ADC_Channel_5,20);
printf("%d",FN);
LED0=!LED0;
delay_ms(100);
}
}
|
|