
求助STM32的程序问题
voidda_cnverter(vu16data);intmain(){vu16da_value=0;vu16i;vu16Sine16bit[32]={0x7FFF,0x...
void da_cnverter(vu16 data);
int main()
{
vu16 da_value = 0;
vu16 i;
vu16 Sine16bit[32] = { 0x7FFF,0x98F8,0xB0FB,0xC71C,
0xDA81,0xEA6C,0xF640,0xFD89,
0xFFFE,0xFD89,0xF640,0xEA6C,
0xDA81,0xC71C,0xB0FB,0x98F8,
0x7FFF,0x6706,0x4F03,0x38E2,
0x257D,0x1592,0x09BE,0x0275,
0x0000,0x0275,0x09BE,0x1592,
0x257D,0x38E2,0x4F03,0x6706};
管脚定义(略)
while(1)
{ GPIO_SetBits(GPIOF, GPIO_Pin_6); // 输出1 灭
GPIO_SetBits(GPIOF, GPIO_Pin_7); // 输出1 灭
/* if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)==0)
{
da_value = da_value + 1;
GPIO_ResetBits(GPIOF, GPIO_Pin_6); // 输出0 亮
}
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8)==0)
{
da_value = da_value - 1;
GPIO_ResetBits(GPIOF, GPIO_Pin_7); // 输出0 亮
}
*/
for(i=0;i<32;i++)
da_cnverter((Sine16bit)/10);
}
// return 0;
}
我用STM32做的DAC,输出正弦波,这是部分程序,我想把输出的正弦波峰峰值调到1V以内,请大家帮帮忙 展开
int main()
{
vu16 da_value = 0;
vu16 i;
vu16 Sine16bit[32] = { 0x7FFF,0x98F8,0xB0FB,0xC71C,
0xDA81,0xEA6C,0xF640,0xFD89,
0xFFFE,0xFD89,0xF640,0xEA6C,
0xDA81,0xC71C,0xB0FB,0x98F8,
0x7FFF,0x6706,0x4F03,0x38E2,
0x257D,0x1592,0x09BE,0x0275,
0x0000,0x0275,0x09BE,0x1592,
0x257D,0x38E2,0x4F03,0x6706};
管脚定义(略)
while(1)
{ GPIO_SetBits(GPIOF, GPIO_Pin_6); // 输出1 灭
GPIO_SetBits(GPIOF, GPIO_Pin_7); // 输出1 灭
/* if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)==0)
{
da_value = da_value + 1;
GPIO_ResetBits(GPIOF, GPIO_Pin_6); // 输出0 亮
}
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8)==0)
{
da_value = da_value - 1;
GPIO_ResetBits(GPIOF, GPIO_Pin_7); // 输出0 亮
}
*/
for(i=0;i<32;i++)
da_cnverter((Sine16bit)/10);
}
// return 0;
}
我用STM32做的DAC,输出正弦波,这是部分程序,我想把输出的正弦波峰峰值调到1V以内,请大家帮帮忙 展开
1个回答
展开全部
你都没有给出基准电压。大家也看不出来。
简单的方法,你先测出现在的正弦信号的峰值。
然后把
vu16 Sine16bit[32] = { 0x7FFF,0x98F8,0xB0FB,0xC71C,
0xDA81,0xEA6C,0xF640,0xFD89,
0xFFFE,0xFD89,0xF640,0xEA6C,
0xDA81,0xC71C,0xB0FB,0x98F8,
0x7FFF,0x6706,0x4F03,0x38E2,
0x257D,0x1592,0x09BE,0x0275,
0x0000,0x0275,0x09BE,0x1592,
0x257D,0x38E2,0x4F03,0x6706};
例如你现在的峰值是2V.就 把里面的所有数转除以2就可以了。如果峰值是3V就除3.
简单的方法,你先测出现在的正弦信号的峰值。
然后把
vu16 Sine16bit[32] = { 0x7FFF,0x98F8,0xB0FB,0xC71C,
0xDA81,0xEA6C,0xF640,0xFD89,
0xFFFE,0xFD89,0xF640,0xEA6C,
0xDA81,0xC71C,0xB0FB,0x98F8,
0x7FFF,0x6706,0x4F03,0x38E2,
0x257D,0x1592,0x09BE,0x0275,
0x0000,0x0275,0x09BE,0x1592,
0x257D,0x38E2,0x4F03,0x6706};
例如你现在的峰值是2V.就 把里面的所有数转除以2就可以了。如果峰值是3V就除3.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询