使用Cubemx 串口dma傳輸失敗發(fā)現(xiàn)的cubemx巨坑
不好使的工程,cubemx初始化部分的函數(shù)如下:

可以發(fā)現(xiàn),其中DMA初始化在UART初始化后面,由于uart初始化需要一部分dma的信息,如果uart初始化的時(shí)候dma尚未初始化,將出現(xiàn)問(wèn)題。
但問(wèn)題在于這個(gè)bug好像是隨機(jī)出現(xiàn)的,我另外幾個(gè)工程dma初始化均在uart之前,比如這個(gè):

有點(diǎn)離譜,現(xiàn)在我的解決方案就是在這一長(zhǎng)串初始化前面自己補(bǔ)一個(gè)dma初始化函數(shù),這樣無(wú)論他生成的是正的還是反的,最終都不影響使用,而且dma重復(fù)初始化也沒(méi)有任何問(wèn)題,否則,每次他生成出來(lái)無(wú)法使用的工程,都需要手操把這兩個(gè)函數(shù)換一下位置,我現(xiàn)在的寫(xiě)法如下:

最后翻了翻稚暉君的工程,人家的每個(gè)工程生成的都沒(méi)什么問(wèn)題,可能與cubemx版本有關(guān),我的cubemx使用的是6.5.0,這是能打開(kāi)稚暉君以往工程的最后一個(gè)版本,另外,網(wǎng)上有一位老哥使用6.3.0版本也遇到了同樣的問(wèn)題,望周知。
https://blog.csdn.net/ricefat609/article/details/119620557