HI, ALL AND JOEL! i am debugging the stm32 uart, found that the idle interrupt will effect the RX have cleared the idle flag by pragma but now i can not receive uart data, i don't know what's the error
uint32_t *USART2_SR = (uint32_t *)0x40004400; uint32_t *USART2_DR = (uint32_t *)0x40004404; #pragma GCC push_options #pragma GCC optimize ("O0") rtems_isr USART2_handler(rtems_vector_number vector) { uint32_t temp = temp; uint32_t SR = *USART2_SR; if((*USART2_SR) & (1<<5)) { //printk("into int\n"); if(uart2_index < 100) uart2_buf[uart2_index++] = (uint8_t)(*USART2_DR)&0xff; else temp = *USART2_DR; //printk("%02X ", uart2_buf[uart2_index - 1]); } if((*USART2_SR) & (1<<4)) // idle { //printk("idle "); temp = (*USART2_SR); temp = (*USART2_DR); //temp = temp; uart2_rev_flag = 1; //printk("fla %08X", *USART2_SR); } if((*USART2_SR) & (1<<3)) { //int temp = (*USART2_DR)&0xff; temp = *USART2_SR; temp = *USART2_DR; } //temp = (*USART2_SR); //temp = (*USART2_DR); } #pragma GCC pop_options my history mail post link https://lists.rtems.org/pipermail/users/2019-April/033147.html
_______________________________________________ users mailing list users@rtems.org http://lists.rtems.org/mailman/listinfo/users