本帖最后由 eagle0754 于 2015-3-24 21:22 编辑 现在用STM32F0芯片,做串口接收实验。初始化中只是开了接收中断。接收中断如下所示:
程序运行后,在中断服务程序的(1)和(2)位置设置断点后全速运行。电脑使用串口助手首次发送256个字节到STM32F0可以正常运行到断点(2)。 然后电脑上串口助手再次发送256字节后,就停在断点(1)了。这是为什么? 网上说中断服务中判断到ORE时,读一次接收缓冲就行了。但是没作用啊 if(USART_GetFlagStatus(USART1, USART_FLAG_ORE) != RESET) { USART_ReceiveData(USART1); } |
【STM32F0开发日志/评测/笔记】+互补PWM波的产生
STM32F030 PB14和PB15无法输出PWM求助
【STM32F030探索套件】序列之五 外部中断
【STM32F0开发日志---二】+ucosii.2.92移植在STM32F030
上传个STM32F0+5110+内部温度传感器的菜鸟实例
【STM32F030探索套件使用问题】STM32F030 SPI方式驱动ST7565LCD失败
求一份STM32F051 I2C驱动LCD 12864的例程
STM32F0 M0 向结构体赋值进入HardFault异常
STM32F0 ADC-DMA方式采集2路数据时出现问题
STM32F030C8T6,TIM16定时慢很多问题?
谢谢版主,这个中断没有问题。是外部清接收完标志时出错
{
Usart1RxBuffer[Usart1RxCount++] = SART_ReceiveData(USART1);
}
这里注意,你把Usart1RxTerm = 1;数据不在接收,这里可以改为,
c=SART_ReceiveData(USART1);
if (0 == Usart1RxTerm)
{
Usart1RxBuffer[Usart1RxCount++] = c;
}
这样就可以了.