求助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以内,请大家帮帮忙
展开
 我来答
azurysky
2012-06-07 · TA获得超过673个赞
知道小有建树答主
回答量:349
采纳率:0%
帮助的人:334万
展开全部
你都没有给出基准电压。大家也看不出来。
简单的方法,你先测出现在的正弦信号的峰值。
然后把
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.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式