| 
在线时间11 小时
UID1872770
注册时间2015-11-14
NXP金币0 
 该用户从未签到 注册会员 
 
 
	积分76 
最后登录2017-1-2 | 
 
| 使用飞思卡尔MK22芯片做数据采集,使用RS232做数据采集的通讯口,开始的一段时间内采集的数据正常,一段时间后数据采集不正常,重启以后数据又可以采集正常,检查发现是中断没有进入导致的,这个可能是什么原因导致的呢?求大神指导!(采集数据的现场电磁干扰比较大,有时候烧写程序的时候都烧写不进)。 附录:
 UART初始化程序和中断子程序
 void UART1_Init(word BaudRate) {
 Peripheral_Clock_Enable(UART1_INDEX);
 delayMS(50);
 UART1_TimeOut_Cnt = 2500000 / BaudRate;                                                                                                                // Initialize TimeOut
 SBR  = (word)(CORE_CLOCK_Hz / 16 / BaudRate);
 BRFA = 2 * CORE_CLOCK_Hz / BaudRate - 32 * SBR;
 UART1->C2  = 0;
 UART1->BDH = (byte)((SBR & 0x1F00)>>8);
 UART1->BDL = (byte)( SBR & 0x00FF);
 UART1->C4  = (byte)(BRFA & 0x001F);
 UART1->C1  = 0;
 UART1->C2  = UART_C2_RIE_MASK | UART_C2_TE_MASK | UART_C2_RE_MASK;
 NVIC_SetPriority(UART1_RX_TX_IRQn, UART1_INT_PRIORITY);                                                // Configurate NVIC
 NVIC_ClearPendingIRQ(UART1_RX_TX_IRQn);
 NVIC_EnableIRQ(UART1_RX_TX_IRQn);
 }
 
 // UART1 Interrupt Service Routine, RS232Ch1
 void UART1_RX_TX_IRQHandler(void) {
 if(UART1->S1 & UART_S1_RDRF_MASK) {
 UART1_TimeOut = UART1_TimeOut_Cnt;
 UART1_RX_buf[UART1_RX_num] = UART1->D;
 UART1_RX_num++;
 FJHY_ReceiveData();      //数据接收处理程序
 }
 }
 
 
 
 | 
 |