一.簡單了解
串口模式實現有三種
1.普通模式:在主函數中接收函數
2.中斷模式:產生的不影響主程序運行
3. DMA模式:與主函數互不影響,獨立運行
本文記錄第一種普通模式。
學習目標是:實現DMA串口的數據收發,發送數據時LED燈電平翻轉。
二.步驟
1-在原來工程基礎上,在stm32cubemx中增加dma,usart1中的DMA Settings,ADD
USART1_RX循環接收和USART1_TX單次發送
2-添加MDA宏定義代碼
#define UART1_DMA
uint8_t TdataDMA[]={"welcome to uart DMA!rn"};
uint8_t Rdata;
3-在主函數添加
#ifdef UART1_DMA
HAL_UART_Transmit_DMA(&huart1,TdataDMA,sizeof(TdataDMA));
HAL_UART_Receive_DMA(&huart1,&Rdata,1);
while(1)
{
#ifdef UART1_DMA
HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);
printf("WELCOME TO DMA test!rn");
HAL_Delay(2000);
#endif
}
4-回調函數添加
//回調函數
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
#ifdef UART1_DMA
//把接收到的數據發送回屏幕,發送函數要在接收函數前面
HAL_UART_Transmit(&huart1,&Rdata,1,0xff);
HAL_UART_Receive_DMA(&huart1,&Rdata,1);
#endif
}
三.總結
DMA的優先級別過高,使用HAL_UART_Transmit_DMA可能數據還沒接收完成的時候就被發送出去,所以采用普通發送,DMA接收,這樣就不會漏發接收到的數據,所以在中斷回調中使用了HAL_UART_Transmit(&huart1,&Rdata,1,0xff);
上一篇:STM32HAL庫使用DAC輸出任意指定電壓
下一篇:STM32HAL庫中斷模式串口收發
推薦閱讀
史海拾趣
Denyo Europa Gmbh公司一直將產品質量視為企業的生命線。公司建立了嚴格的質量管理體系,從原材料采購到生產流程,再到產品檢測,每一個環節都嚴格把關。公司還定期對員工進行質量意識培訓,確保每一個員工都能深刻理解質量對于企業發展的重要性。這種對質量的執著追求,使公司的產品在市場上贏得了良好的口碑。
Denyo Europa Gmbh公司在電子行業中嶄露頭角,始于一次技術創新的突破。公司研發團隊經過數年的努力,成功開發出一種新型高效能電池技術,這種電池不僅容量大,而且充電速度快,安全性能高。這一技術的推出,迅速贏得了市場的認可,也為公司帶來了可觀的收益。公司因此逐漸在電子行業中建立了自己的技術領先地位。
在穩步發展國內市場的同時,CST積極拓展國際市場。公司建立了分布世界各地的銷售渠道,與多家國際知名企業建立了長期穩定的合作關系。通過不斷的市場拓展和品牌建設,CST在國際市場上樹立了良好的企業形象和品牌形象。
深圳市永豐盈電子有限公司(CST)成立于2003年,初始階段,公司只有幾名員工和幾臺設備,專注于電子接插件產品的生產與銷售。在創始人堅定的信念和團隊不懈的努力下,CST逐步在市場上嶄露頭角。公司秉持“誠信、踏實、齊心、努力”的經營理念,通過嚴格的質量控制和持續的技術創新,贏得了客戶的信任。
CONTTEK Group GmbH公司深知品質是企業的生命線。因此,公司建立了嚴格的質量管理體系,從原材料的采購到產品的生產、檢測、包裝等每一個環節都進行嚴格把控。這種對品質的執著追求,使得公司的產品贏得了客戶的廣泛信賴和好評。許多知名電子企業都選擇與CONTTEK Group GmbH公司建立長期合作關系,共同推動電子行業的發展。
隨著市場競爭的加劇,CONTTEK Group GmbH公司意識到只有不斷創新才能在行業中立足。因此,公司加大了對研發的投入,積極引進新技術、新材料和新工藝,不斷推動產品的升級換代。通過持續的技術創新,公司成功推出了一系列具有創新性和競爭力的新產品,進一步鞏固了其在電子連接器領域的領先地位。
3、什么是綠色產品? 答:一般意義上,把符合歐盟RoHS指令要求的產品稱為綠色產品。在此之前,先有過無鉛產品(Pb-Free),主要是針對電子元器件的引腳及焊接工藝而言的。 ...… 查看全部問答∨ |
|
有沒有人做機臺自動化控制的程序啊(Equipment Automation Program) 在EAP的程序規范中,看了一些說法說應該在函數入口處加入記錄這個函數名,輸入變量值,在函數出口處記錄函數輸入值.這個對于生產中遇到的問題解決的時候查找錯誤很方便有用,不知道這些對入口和出口的記錄可不可以寫一個通用 ...… 查看全部問答∨ |
請教VS2005 連接開發板進行WINCE 開發, 請教各位,怎么樣去查看wince里面的進程呀,EVC里面有remote process viewer,vs里面有沒有呀, 在哪個里面???… 查看全部問答∨ |
vs2005+wince5.0模擬器,sqlce數據庫不能創建 vs2005+wince5.0模擬器,sqlce數據庫文件放到\\MyDocuments目錄下時可以正常創建,當數據庫文件放到存儲卡的目錄時,則顯示不能創建。存儲卡是winc50模擬器通過共享文件夾映射的,不知各位有何建議? 另外,sqlce的客戶端工具可否單獨安裝?我的 ...… 查看全部問答∨ |
Start = 0x81100004, range = (0x81100000,0x825eb4fb), format = SREC YAMON> go 81100004 Windows CE Kernel for MIPS Built on Jun 24 2004 at 18:24:50 +OEMInit AMD Alchemy Au1200/Db1200 Cold Boot Using RTCTICK tick source yan: ...… 查看全部問答∨ |
好像說WinCE .NET 中IE 可以支持比較多的web page的JS效果,比winCE 5.0強。 我要下個試試,怎么也找不到,搜到的有些鏈接是無效網頁。 麻煩哪位知道得提供一個,很急! … 查看全部問答∨ |
公司轉讓一個 IP ,用戶的平臺是基于 51 核的。我的任務是把目前 32 位機的代碼改寫成 51 的 8 位機代碼。 初次接觸 Keil 51,轉換的代碼有 C 和 匯編。程序所涉及的主要是數學運算,還有一些存儲器訪問(硬件接口均等效于內存訪問)。 這樣的 ...… 查看全部問答∨ |
我不知道證明回事,以前昨天還好用的針式打印機,今天再打印東西時,無論把字體設的有多大,打印出來的內容很小一點點,是不是針式打印機有縮放功能啊,該怎么更改過來啊?… 查看全部問答∨ |
本帖最后由 paulhyde 于 2014-9-15 09:13 編輯 元旦三天徹底頹廢了,除了玩就是睡了,馬上上班了,想了好久的事還沒干,現在補上!! 對于電子大賽,我一直建議對試題進行分類分 ...… 查看全部問答∨ |