你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

想請教有關於DA的問題

[复制链接]
sappppp 提问时间:2016-3-8 08:07 /
想要請問各位先進,如果我想要測試模組Reverse Park內的演算是否有錯誤,我用DA來將演算出來的數據接上示波器觀看,但是我發現我Reverse Park計算後的值和DA讀出來的數據有所不同,所以想要請問是哪裡出錯呢?我DA是為PA4, PA5兩隻Pin腳。程式中Theta從0~360度,Stat_Volt_q_d固定都給3.3V 。對於輸入電壓值,想要請問是直接給3.3還是我必須要做轉換呢?謝謝主程式如下
           Stat_Volt_q_d.qV_Component1 =3.3;
            Stat_Volt_q_d.qV_Component2 = 3.3;

           Stat_Volt_alfa_beta = ipark_calc(Stat_Volt_q_d, Theta);            
            Stat_Volt_alfa_beta.qV_Component1 = Stat_Volt_alfa_beta.qV_Component1 / 32766;
            Stat_Volt_alfa_beta.qV_Component2 = Stat_Volt_alfa_beta.qV_Component2 / 32766;

            DAC_SetChannel1Data(DAC_Align_12b_R, Stat_Volt_alfa_beta.qV_Component1);
            DacX = DAC_GetDataOutputValue(DAC_Channel_1);
            DacTemp = (float) DacX * (3.3/4096);

            DAC_SetChannel2Data(DAC_Align_12b_R, Stat_Volt_alfa_beta.qV_Component2);  
            DacX = DAC_GetDataOutputValue(DAC_Channel_2);
            DacTemp = (float) DacX * (3.3/409);

副程式

static void DAC_GPIO_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
        GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_4 | GPIO_Pin_5;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
}

static void DAC_TIM_Init(void)
{
        TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
        TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
        TIM_TimeBaseStructure.TIM_Period = 100;
        TIM_TimeBaseStructure.TIM_Prescaler = 0;
        TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
        TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
        TIM_SelectOutputTrigger(TIM2, TIM_TRGOSource_Update);
        TIM_Cmd(TIM2, ENABLE);
}

static void DAC_Init(void)
{
        DAC_InitTypeDef DAC_InitStructure;        
        DMA_InitTypeDef DMA_INIT;
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);
        DAC_InitStructure.DAC_Trigger = DAC_Trigger_None;
        DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;
        DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude = DAC_TriangleAmplitude_4095;   
        DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Disable;
        DAC_Init(DAC_Channel_1, &DAC_InitStructure);       
        DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude = DAC_TriangleAmplitude_4095;
        DAC_Init(DAC_Channel_2, &DAC_InitStructure);
        DAC_Cmd(DAC_Channel_1, ENABLE);
        DAC_Cmd(DAC_Channel_2, ENABLE);
        DAC_SetDualChannelData(DAC_Align_12b_R, 0x00, 0x00);      
}






收藏 评论0 发布时间:2016-3-8 08:07

举报

0个回答

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版