我正在使用AVR Studio 5的EVK1105開發板作爲我的AVR項目的開發IDE。 我正在使用FreeRTOS。我在這個電路板上有3個USART端口。一個外部模塊通過USART-RS232模式連接到我的AVR32板。它以19230波特率,7位數據,奇校驗,停止位1和常規通道模式向USART0發送連續的串行數據。我爲此創建了一項新任務。每發送9個數據字節後,它會發送'\ n'和'\ r'。所以在我的任務中,我繼續收集字符串緩衝區中的9個數據字節,然後在USART1上傳輸它。我正在使用輪詢方法從USAR0收集端口數據。但是我在接收數據時遇到問題。我不知道它的計時問題,或者調度程序在收集數據的同時切換任務。但我沒有得到所需的數據。在FreeRTOS中創建用於USART接收的新任務
以下是我已經檢查爲故障排除的事情 1.將我的外部模塊連接到我的PC超級終端,這給了我完美的結果。 2.實現使用從USART0接收的相同內容以及接收到的任何內容作爲沒有FreeRTOS的傳輸到USART1。它的工作很好。
請提出一些想法可能是錯誤的。我正在使用隊列在Tx和Rx任務之間進行通信,以將字符串緩衝區從USART0傳遞到USART1。處理隊列問題嗎?如何解決隊列問題?
我在Rx Task的無限任務循環中使用了50ms的延遲。它可以造成問題嗎?如果我不使用任何延遲操作系統崩潰。請建議一些良好的做法,以在FreeRTOS中創建新任務,以便我不會遇到任何計時問題。