سلام
من دارم روی uart کار میکنم و با cmsis یوارت 0 و irq اون رو فعال کردم(از برنامه های اماده کمک گرفتم) و مرحله بعد uart 1 رو راه انداختم و حالا میخام irq1 رو فعال کنم که نمیدونم چکار کنم!
به فکرم رسید که از همون کد irq0 استفاده کنم و تغیرش بدم که ارور میده و نمیشه و تضمیم گرفتم بدونم کار این زیر برنامه چیه که متوجه نمیشم و نیازمند کمک شما هستم!
این کد
اسم زیر برنامه هست که موقع ای که میخاد اطلاعات جدید بیاد میپره به این زیر برنامه!
مونده بقیش که ممنون میشم راهنمای کنین.
در مورد اروری که گفتم وقتی توی اون خط بالا uart0 رو به uart1 تغیر میدم این ارور رو دارم!
من دارم روی uart کار میکنم و با cmsis یوارت 0 و irq اون رو فعال کردم(از برنامه های اماده کمک گرفتم) و مرحله بعد uart 1 رو راه انداختم و حالا میخام irq1 رو فعال کنم که نمیدونم چکار کنم!
به فکرم رسید که از همون کد irq0 استفاده کنم و تغیرش بدم که ارور میده و نمیشه و تضمیم گرفتم بدونم کار این زیر برنامه چیه که متوجه نمیشم و نیازمند کمک شما هستم!
این کد
void UART0_IRQHandler(void)
{
uint32_t intsrc, tmp, tmp1;
//gotoxy(0,0);print_string("IRQ "
;
/* Determine the interrupt source */
intsrc = UART_GetIntId(LPC_UART0);
tmp = intsrc & UART_IIR_INTID_MASK;
// Receive Line Status
if (tmp == UART_IIR_INTID_RLS){
// Check line status
tmp1 = UART_GetLineStatus(LPC_UART0);
// Mask out the Receive Ready and Transmit Holding empty status
tmp1 &= (UART_LSR_OE | UART_LSR_PE | UART_LSR_FE \
| UART_LSR_BI | UART_LSR_RXFE);
// If any error exist
if (tmp1) {
UART_IntErr(tmp1);
}
}
// Receive Data Available or Character time-out
if ((tmp == UART_IIR_INTID_RDA) || (tmp == UART_IIR_INTID_CTI)){
UART_IntReceive();
}
// Transmit Holding Empty
if (tmp == UART_IIR_INTID_THRE){
UART_IntTransmit();
}
sprintf(buf,"IRQ_uart0 %c %u ",rb.rx[contt++],contt);
gotoxy(0,0);print_string(buf);
}
خوب خط اول رو خودم میگم !{
uint32_t intsrc, tmp, tmp1;
//gotoxy(0,0);print_string("IRQ "

/* Determine the interrupt source */
intsrc = UART_GetIntId(LPC_UART0);
tmp = intsrc & UART_IIR_INTID_MASK;
// Receive Line Status
if (tmp == UART_IIR_INTID_RLS){
// Check line status
tmp1 = UART_GetLineStatus(LPC_UART0);
// Mask out the Receive Ready and Transmit Holding empty status
tmp1 &= (UART_LSR_OE | UART_LSR_PE | UART_LSR_FE \
| UART_LSR_BI | UART_LSR_RXFE);
// If any error exist
if (tmp1) {
UART_IntErr(tmp1);
}
}
// Receive Data Available or Character time-out
if ((tmp == UART_IIR_INTID_RDA) || (tmp == UART_IIR_INTID_CTI)){
UART_IntReceive();
}
// Transmit Holding Empty
if (tmp == UART_IIR_INTID_THRE){
UART_IntTransmit();
}
sprintf(buf,"IRQ_uart0 %c %u ",rb.rx[contt++],contt);
gotoxy(0,0);print_string(buf);
}
اسم زیر برنامه هست که موقع ای که میخاد اطلاعات جدید بیاد میپره به این زیر برنامه!
مونده بقیش که ممنون میشم راهنمای کنین.
در مورد اروری که گفتم وقتی توی اون خط بالا uart0 رو به uart1 تغیر میدم این ارور رو دارم!
Build target 'LPC1700 FLASH'
assembling startup_LPC17xx.s...
compiling core_cm3.c...
compiling system_LPC17xx.c...
compiling lpc17xx_clkpwr.c...
compiling lpc17xx_pinsel.c...
compiling lpc17xx_uart.c...
compiling uart_interrupt_test.c...
..\uart_interrupt_test.c(151): error: #167: argument of type "LPC_UART1_TypeDef *" is incompatible with parameter of type "LPC_UART_TypeDef *"
Target not created
assembling startup_LPC17xx.s...
compiling core_cm3.c...
compiling system_LPC17xx.c...
compiling lpc17xx_clkpwr.c...
compiling lpc17xx_pinsel.c...
compiling lpc17xx_uart.c...
compiling uart_interrupt_test.c...
..\uart_interrupt_test.c(151): error: #167: argument of type "LPC_UART1_TypeDef *" is incompatible with parameter of type "LPC_UART_TypeDef *"
Target not created
دیدگاه