问答

汇集网友智慧,解决技术难题

xiaoqilo

TA的家园币:34  

  • APM32F107串口中断接收丢包

    APM32F107在串口同时发送和接收的情况下串口接收丢字节,具体表现为偶发进入串口接收中断了,但是USART_FLAG_RXBNE标志位没有触发,导致读不到这个字节进而丢字节,通过计数发现进入中断的次数与实际应该收到的字节数一致。1、发送是阻塞式发送的,没有用发送中断,排除进入的是发送中断的可能。2、出现这种情况时打断点看了,其他的溢出及错误标志位并没有置位,也打印检查了,没有置位。3、排查代码了没有在其他地方主动调用USART_RxDatad读取。4、串口中断优先级已调至最高。5、只接收不发送不会丢字节,挂一晚上都不丢,只要一发送接收就会丢。发送代码:voidUart1_Send(charbuf){uint16_tdata_9th=buf;dog_feed_count_clean();//循环清除喂狗变量,超过DOG_PROTECT_TIME_100MS不清除则认为主循环异常,并停止喂狗。if(g_rParameters.sPort[0].ucParity==UART_CHK_MARK){data_9th|=(1

    MCU。APM32

    2025-04-24 2
  • APM32F107的串口接收中断丢字节问题

    APM32F107在串口同时发送和接收的情况下串口接收丢字节,具体表现为偶发进入串口接收中断了,但是USART_FLAG_RXBNE标志位没有触发,导致读不到这个字节进而丢字节,通过计数发现进入中断的次数与实际应该收到的字节数一致。1、发送是阻塞式发送的,没有用发送中断,排除进入的是发送中断的可能。2、出现这种情况时打断点看了,其他的溢出及错误标志位并没有置位,也打印检查了,没有置位。3、排查代码了没有在其他地方主动调用USART_RxDatad读取。4、串口中断优先级已调至最高。5、只接收不发送不会丢字节,挂一晚上都不丢,只要一发送接收就会丢。发送代码:voidUart1_Send(charbuf){uint16_tdata_9th=buf;dog_feed_count_clean();//循环清除喂狗变量,超过DOG_PROTECT_TIME_100MS不清除则认为主循环异常,并停止喂狗。if(g_rParameters.sPort[0].ucParity==UART_CHK_MARK){data_9th|=(1

  • 有没有APM32F107RC以太网问题

    开发板用的的是PD8、PD9、PD10复用引脚,我板子上用的是PA7、PC4、PC5不管怎么调就是不好使,确认PHY正常运行通过MDIO可以读取到PHY状态,以下是初始化代码:voidEthernet_GPIOConfig(void){GPIO_Config_TconfigStruct;/**ETH_RESET#PB15*ETH_INTPB14*ETH_MDIOPA2*ETH_MDCPC1*ETH_MCOPA8*//*EnableGPIOsclocks*/RCM_EnableAPB2PeriphClock(ETH_MDC_GPIO_CLK|ETH_MDIO_GPIO_CLK|ETH_RESET_GPIO_CLK|ETH_INT_GPIO_CLK|ETH_MCO_GPIO_CLK);/*EnableSYSCFGclock*/RCM_EnableAPB2PeriphClock(RCM_APB2_PERIPH_AFIO);/*ConfigureETH_RESET#*/GPIO_ConfigStructInit(&configStruct);configStruct.pin=ETH_INT_PIN;configStruct.speed=GPIO_SPEED_50MHz;configStruct.mode=GPIO_MODE_OUT_PP;GPIO_Config(ETH_RESET_PORT,&configStruct);/*ConfigureETH_MII_INT*/configStruct.pin=ETH_INT_PIN;GPIO_Config(ETH_INT_PORT,&configStruct);ETH_INT_PIN_HIGH();/*ConfigureETH_MDC*/configStruct.pin=ETH_MDC_PIN;configStruct.mode=GPIO_MODE_AF_PP;GPIO_Config(ETH_MDC_PORT,&configStruct);/*ConfigureETH_MDIO*/configStruct.pin=ETH_MDIO_PIN;GPIO_Config(ETH_MDIO_PORT,&configStruct);/*RESETETHPHY*/ETH_RESET_PIN_LOW();Ethernet_ResetDelay(DP83848_RESET_DELAY);ETH_RESET_PIN_HIGH();Ethernet_ResetDelay(DP83848_RESET_DELAY);/*ConfigurePB10,PB11,PB12,PB13asalternatefunctionpush-pull*/configStruct.pin=GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13;GPIO_Config(GPIOB,&configStruct);/**ETH_RMII_REF_CLKPA1*ETH_RMII_CRS_DVPD8->PA7*ETH_RMII_RXD0PD9->PC4*ETH_RMII_RXD1PD10->PC5*ETH_RMII_TX_ENPB11*ETH_RMII_TXD0PB12*ETH_RMII_TXD1PB13*//*EnableGPIOsclocks*/RCM_EnableAPB2PeriphClock(RCM_APB2_PERIPH_GPIOA|RCM_APB2_PERIPH_GPIOB|RCM_APB2_PERIPH_GPIOC|RCM_APB2_PERIPH_GPIOD);/*ETHERNETpinsremappinAPM32107

    APM32F107 以太网 rc pi IO ig

    2025-04-13 4