大家好,最近在使用GD32F130单片机遇到一个问题与一个难点
第一个问题是 我使用串口并开启了流控位,在使用串口助手对单片机发送数据的时候(串口助手我也开启了流控位RTS CTS),单片机很及时的给出了流控位(收到停止位就给出了流控位),但是串口助手始终会在流控位给出后继续发送一个字节才会停止,我尝试过停止位设置为2位还是不行,由于多发一个字节出来,这个时候我没有缓存接收,因此会丢掉一个字节。
遇到的一个难点是,因为我串口需要有大数据流的发送,因此我使用DMA来进行接收,但是出现一个问题,当我DMA设置的传输次数完毕,则会进入dma中断,然后我需要等待这个数据被使用了,才继续接收串口数据,然后出现的问题就是,如果进入DMA中断后,不立即开启DMA以允许继续接收数据的话,会造成单片机的串口接收寄存器为空,RTS自动设置为低,这样串口就会接收一个字节,但是这个时候dma并没有开启,则没法接收数据,等待我之后开启DMA,开启后,这个数据也并不会自动传输,因此没法接收这个数据。
|