clwn.net
当前位置:首页 >> STM8L的usArt中断问题 >>

STM8L的usArt中断问题

最后一句USART_ClearITPendingBit( USART1, USART_IT_RXNE);改为 USART_ITConfig(USART1, USART_IT_RXNE, DISABLE);

不知道你的uart_SendByte(REV);函数实现是不是等待发送完成才返回的,还是立即返回 如果是立即返回,那么后面的清除完标志之后,发送标志会在发送完成之后置位,然后会再进入中断,至于REV仍然存在数据1,大概是因为没有其它的操作覆盖掉数据。

这是stm32f2系列的中断可参考 void UART4_IRQHandler(void) { uint8_t Rx_buffer_num = 0; if (UART4_Get_Flag) { USART_ClearITPendingBit(UART4, USART_IT_RXNE); //清标志 return; } if(USART_GetITStatus(UART4, USART_IT_RXNE) == SET) //...

关注这个问题

程序从Main进入 1、管脚初始化; 2、时钟初始化; 3、配置芯片的UART模块; 4、死循环一直等待; 5、若有串口数据进来,会触发中断函数,执行中断,把接收到的数据取出来,再通过发送函数发送出去;

模拟串口很简单,你定时时间要准,否则数据容易出错,其他的没了,协议格式固定的。用过单片机内部rc的振荡器做时钟,因为不太准所以波特率不能太高,高了就有时乱码,希望对你有帮助

程序看了没什么问题,仿真一下把断点放在for循环里面,看看什么问题。

最后一句USART_ClearITPendingBit( USART1, USART_IT_RXNE);改为 USART_ITConfig(USART1, USART_IT_RXNE, DISABLE);

计数是按照接收与发送之和,你直接把间隔设置为5秒。

路径 = 相对路径 | 绝对路径 XPath路径表达式 = 步进表达式 | 相对路径 "/"步进表达式。 步进表达式=轴 节点测试 谓词

网站首页 | 网站地图
All rights reserved Powered by www.clwn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com