使用RTThreadStudio生成工程代码,os版本4.1.1,在配置rtthread串口参数时,会将uart->dma_rx.last_index清零。如果该串口已经正常通讯使用,突然重新配置参数,会导致DMA接收异常?
你好,我是在串口DMA接收8个字节后,重新配置波特率,然后发8字节,中断认为接收到16字节(last_index清0,当时DMA寄存器计数还有put_index等都保留上一次值),这样一来put_index和get_index都比实际多8字节,不能指向DMA缓存的正确地址。
修改方式:在open里重新配置dma参数,在这里见last_index参数清零。