日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

歷史上的今天

今天是:2025年07月19日(星期六)

2020年07月19日 | STM32CubeMX:UART操作

發(fā)布者:ww313618 來源: eefocus關鍵字:STM32CubeMX  UART操  中斷方式 手機看文章 掃描二維碼
隨時隨地手機看文章

UART共有三種操作方式,輪詢方式、中斷方式以及DMA方式。


芯片STM32F103C8T6


應用管腳:


輸出:PA0、PA1


USART1


配置界面

添加中斷配置

添加DMA配置

代碼應用


1.實現printf函數


/* USER CODE BEGIN 0 */

#ifdef __GNUC__

/* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf

   set to 'Yes') calls __io_putchar() */

#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)

#else

#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)

#endif /* __GNUC__ */

/* USER CODE END 0 */



/* USER CODE BEGIN 4 */

/**

  * @brief  Retargets the C library printf function to the USART.

  * @param  None

  * @retval None

  */

PUTCHAR_PROTOTYPE

{

  /* Place your implementation of fputc here */

  /* e.g. write a character to the USART1 and Loop until the end of transmission */

  HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);

  return ch;

}

/* USER CODE END 4 */

2.輪詢方式發(fā)送與接收


發(fā)送數據


uint8_t senddata[20]="This use Transmit.rn";  

if(HAL_UART_Transmit(&huart1,senddata,sizeof(senddata),0xFFFF) != HAL_OK)

  {

    /* Transfer error in reception process */

    Error_Handler();

  }

輪詢接收采用阻塞式超時接收模式


  uint8_t huart1_RxBuffer[20];

  HAL_UART_Receive(&huart1, huart1_RxBuffer, 20,0x10);

3.中斷方式發(fā)送與接收

增加接收中斷回調函數


/* USER CODE BEGIN 4 */

/**

  * @brief  Rx Transfer completed callbacks.

  * @param  huart: Pointer to a UART_HandleTypeDef structure that contains

  *                the configuration information for the specified UART module.

  * @retval None

  */

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)

{

if(huart==&huart1)

{

Rx_flag=1;

HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,(GPIO_PinState)!HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0));

// if(HAL_UART_Receive_IT(&huart1, (uint8_t *)huart1_RxBuffer, Rx_size) != HAL_OK)

// {

// /* Transfer error in reception process */

// Error_Handler();

// }

}

}

 

/* USER CODE END 4 */

發(fā)送數據

uint8_t senddata_IT[23]="This use Transmit IT.rn";

if(HAL_UART_Transmit_IT(&huart1,senddata_IT, sizeof(senddata_IT)) != HAL_OK)

{

/* Transfer error in reception process */

Error_Handler();

}

接收數據,調用此函數后,接收中斷可執(zhí)行一次。

uint8_t huart1_RxBuffer[20];	

if(HAL_UART_Transmit_DMA(&huart1,senddata_DMA, sizeof(senddata_DMA))!= HAL_OK)

{

Error_Handler();

}


if(HAL_UART_Receive_IT(&huart1, (uint8_t *)huart1_RxBuffer, Rx_size) != HAL_OK) {/* Transfer error in reception process */ Error_Handler(); }

3.DMA方式發(fā)送與接收

增加接收中斷回調函數(與中斷方式相同)


發(fā)送數據


uint8_t senddata_DMA[24]="This use Transmit DMA.rn";

if(HAL_UART_Receive_DMA(&huart1, (uint8_t *)huart1_RxBuffer, Rx_size) != HAL_OK)

  {

    /* Transfer error in reception process */

    Error_Handler();

  }


接收數據(特征與中斷方式相同)

if(HAL_UART_Receive_DMA(&huart1, (uint8_t *)huart1_RxBuffer, Rx_size) != HAL_OK)

  {

    /* Transfer error in reception process */

    Error_Handler();

  }

關鍵字:STM32CubeMX  UART操  中斷方式 引用地址:STM32CubeMX:UART操作

上一篇:基于STM32的HAL庫學習(2)UART串口學習
下一篇:最后一頁

推薦閱讀

Cube Mx使用較新版本 Version:4.24.0MDK v5.20STM32F429ZGT6兩年以前記得試過SD卡讀寫,好像不是單純的Read和Write,應該是用了文件系統(tǒng),很順利的試驗成功了,所以源碼和記錄都沒留,這次要做一個新的板子,真所謂苦難重重啊,到現在32.768K的晶振一直沒起振,由原來的10P電容換了6P的,還是不行,應該說偶爾可以,但生產代碼中MX_RTC_Init() 依然...
正在底特律舉辦的美國國防部高級研究計劃局(DARPA)電子復興峰會上,英特爾公司展示了其最新的可模擬800多萬個神經元的Pohoiki Beach芯片系統(tǒng)。該神經擬態(tài)系統(tǒng)的問世,預示著人類向“模擬大腦”這一目標邁出了一大步。 該全新神經擬態(tài)系統(tǒng)包含多達64顆Loihi芯片,集成了1320億個晶體管,總面積3840平方毫米,擁有800多萬個“神經元”(相當于某些小型嚙...
IDE和MCC庫這種,勸大家盡量用最近版的,雖然無比臃腫巨大,但好待廠家一直維護到最新,修了很多bug,在調試一顆PIC16F1704的模擬外設時,用了mcc給外設生成代碼,省時省力,非常優(yōu)雅。但發(fā)現比較器死活調試不對,最后仔細對比檢查datasheet發(fā)現,有一個寄存器給錯了。比較器1的負通道選擇里,C1NCH choose C1IN1-MCC給的代碼是 CM1CON0 = 0xA8; 而...
要改變全世界對傳染病的檢測、診斷和監(jiān)測,并開發(fā)一種能夠快速得出準確、可靠結果的設備,需要做些什么?面對COVID-19新冠肺炎疫情的全球蔓延,當前迫切需要更好的一線普篩方法,以遏制微生物病原體的傳播。現今使用的通過測量額溫確認是否發(fā)熱的方法無法檢測出無癥狀感染或癥狀發(fā)生前的感染,也無法將這種致命的新型冠狀病毒和威脅較小的呼吸系統(tǒng)疾病區(qū)分...

史海拾趣

問答坊 | AI 解惑

2009年全國大學生電子設計競賽進度安排

本帖最后由 paulhyde 于 2014-9-15 09:38 編輯 一、第一階段(3月至6月) 1、2月底召開2009年全國大學生電子設計競賽啟動工作會議,并由全國競賽組委會發(fā)出《關于組織2009年全國大學生電子設計競賽的通知》。 2、3月中旬各賽區(qū)按《關于組織2009 ...…

查看全部問答∨

LINUX u-boot 命令大全

Printenv 打印環(huán)境變量。 Uboot> printenv baudrate=115200 ipaddr=192.168.1.1 ethaddr=12:34:56:78:9A:BC serverip=192.168.1.5 Environment size: 80/8188 bytes Setenv 配置新的變量 Uboot> setenv myboard AT91RM9200DK Uboot> printenv baudr ...…

查看全部問答∨

電子設計競賽失敗了,談談自己的感想

本帖最后由 paulhyde 于 2014-9-15 08:57 編輯 忙了兩個多月,比賽四天三夜里只睡了10個小時,一天基本上就吃一個漢堡。雖然說比賽過去了,遺憾,惋惜沒什么意義,但失敗了,總要總結下經驗教訓。 我們做的是B題,控制類的??刂祁愐郧暗念}目都是 ...…

查看全部問答∨

VGA典型示例

VGA典型例子,希望對有需要的你有所幫助…

查看全部問答∨

異常處理問題

ARM的異常向量表 地址                 異常 0x0000,0000       復位 0x0000,0004       未定義指令 ...... 當發(fā)生異常時(未定義指令 ...…

查看全部問答∨

STM32之怪現象-存儲結構篇

閑來沒事,寫了個測試STM32存儲結構的程序,如下:void OSWriteUsart(u8 UsartNum,u8 *Buf,,u16 Len);具體代碼就不寫了,就是將Buf里的字節(jié)通過串口發(fā)送Len個.    u32 tmp;   &n ...…

查看全部問答∨

誰有最全的免費各單片機的資源下載?

誰亦最全的免費各單片機的資源下載(主要針對51和arm的)謝謝!…

查看全部問答∨

招FPGA/ASIC硬件高級工程師 硬件設計高級工程師 嵌入式高級工程師

國內領先的音視頻圖像技術廠商,以產品自主設計研發(fā)為主的生產型企業(yè),在全國設有華北、華東、華南、西南、西北、東北6大分支。 我們現在繼續(xù)多個崗位人才,尤其FPGA/ASIC硬件工程師,硬件設計工程師(熟悉Capture),嵌入式工程師(熟悉linux內核 ...…

查看全部問答∨

關于GSM和msp430連接的問題

向各位大神求助了,我在用msp430串口連接GSM模塊(TC35)的時候產生了重大問題。請聽我細細道來。 我寫了一個小程序,發(fā)送一個GSM的命令,然后GSM收到的話回返回數據的。可是GSM不返回。一開始我以為是電平問題,接了一塊74ls244,再送給GSM。我確 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發(fā)板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統(tǒng)推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved