初级会员

- 积分
- 130
- 金钱
- 130
- 注册时间
- 2018-4-17
- 在线时间
- 24 小时
|
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
#include "timer.h"
u8 i=0,t,s=0;
u16 adc,AD_number=0,y=0;
u16 ADC_number[10]={0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11};
int main(void)
{
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化为115200
LED_Init(); //LED端口初始化
TIM3_Int_Init(4999,7199);//10Khz的计数频率,计数到5000为500ms
while(1);
}
void TIM3_IRQHandler(void) //TIM3中断
{
if(TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //检查TIM3更新中断发生与否
{
TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); //清除TIMx更新中断标志
for(t=0;t<3;t++)
{
y+=ADC_number[t];
}
// AD_number =ADC_number[0]+ADC_number[1]+ADC_number[2]+ADC_number[3];
AD_number=y/3;
USART_SendData(USART1,AD_number);//向串口1发送数据
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET); //等待发送结束
}
}
这个程序实现对数组前三个元素取平均值并串口发送,奇怪的是用for语句串口收到的值一直不对,而用下面注释掉的语句出来的值就没有问题,请问各位前辈我的for语句有错吗?求解
|
|