- 主题:stm32串口接收的问题
115200
一次性从电脑端发19个字节可以正常接收 并且中间要按数据格式解析
长度变23个后 就不能正常接收的感觉
是中断的问题吗 还是时间上有限制 19个的时候时间够用 23个就不行了 串口配置里速度是50MHz 串口通过中断接收 接收到的存好 直到接收到23个为止做一次解析处理
外部中断10ms一次 和这个是否也有关呢
对硬件了解较少 请指点一下
int USART1_IRQHandler(void)
{
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
{
static ON_count;
if (ON_Flag == 0)
{
if (++ON_Count > 23) // 23 bytes in total
ON_Flag = 3; // set ON_Flag
}
}
}
--
修改:scanworld FROM 114.250.179.*
FROM 114.250.179.*
dma+idle中断
【 在 scanworld (臭蛋超人) 的大作中提到: 】
: 115200
: 一次性从电脑端发19个字节可以正常接收 并且中间要按数据格式解析
: 长度变23个后 就不能正常接收的感觉
: ...................
--
FROM 101.41.146.*
【 在 scanworld 的大作中提到: 】
: 115200
: 一次性从电脑端发19个字节可以正常接收 并且中间要按数据格式解析
: 长度变23个后 就不能正常接收的感觉
: ...................
建议在串口中断中只做接收读数。 在主函数中,集中处理。 这样,逻辑要清晰一些。
--
FROM 223.104.44.*
这个和外部中断是否就不那么影响了 搜索的时候看到有人说过类似
【 在 tom6bj 的大作中提到: 】
: dma+idle中断
:
--
FROM 106.39.0.*
这个可能没法避免了 串口接收到特定数据的内容 要在外部中断里处理 所以有一个因定ms时间一次的外部中断
【 在 iliketolearn 的大作中提到: 】
: 建议在串口中断中只做接收读数。 在主函数中,集中处理。 这样,逻辑要清晰一些。
--
FROM 106.39.0.*