国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32F407 --USART使用

這篇具有很好參考價值的文章主要介紹了STM32F407 --USART使用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

1. 串口配置--普通模式

2. 實現(xiàn)數(shù)據(jù)的傳輸主函數(shù)

1)單引號雙引號的應用&數(shù)組傳輸

2)將調(diào)試信息用串口打印傳送到電腦上


1. 串口配置--普通模式

F407使用的M4內(nèi)核與F103使用的M3內(nèi)核不一樣,導致在使用配置上有區(qū)別。需要在F103配置的基礎(chǔ)上專門將GPIO的PIN配置成復用功能USART。具體配置代碼如下:

void USART_Config(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	USART_InitTypeDef USART_InitStructure;
	
	//時鐘
	DEBUG_USART_GPIO_APBxClkCmd(DEBUG_USART_GPIO_CLK,ENABLE);
	
	DEBUG_USART_APBxClkCmd(DEBUG_USART_CLK,ENABLE);  //打開外設(shè)對應的RCC時鐘
	
	//將PIN口配置成復用功能UART4 與F103不同
	GPIO_PinAFConfig(GPIOC,GPIO_PinSource10,GPIO_AF_UART4);
	GPIO_PinAFConfig(GPIOC,GPIO_PinSource11,GPIO_AF_UART4);	
	
	//接口配置,初始化
	//TX & RX一起配置,與F103不同
	GPIO_InitStructure.GPIO_Pin=DEBUG_USART_TX_GPIO_PIN | DEBUG_USART_RX_GPIO_PIN;
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;	
	GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
	GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;
	GPIO_Init(DEBUG_USART_TX_GPIO_PORT,&GPIO_InitStructure);
	
	//USART配置,初始化
	USART_InitStructure.USART_BaudRate=DEBUG_USART_BAUDRATE;
	USART_InitStructure.USART_WordLength=USART_WordLength_8b;
	USART_InitStructure.USART_StopBits=USART_StopBits_1;
	USART_InitStructure.USART_Parity=USART_Parity_No;
	USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;
	USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
	USART_Init(DEBUG_USARTx,& USART_InitStructure);
	
	//中斷優(yōu)先級配置
	NVIC_Configuration();

	//中斷源,接收產(chǎn)生中斷
	USART_ITConfig(DEBUG_USARTx,USART_IT_RXNE,ENABLE);
	
	//串口使能,開啟串口
	USART_Cmd(DEBUG_USARTx,ENABLE); //相當于開啟USART工作時鐘,讓USART工作		
}

? ? ? ? 檢查到串口是否接收到數(shù)據(jù)可以通過接收中斷或者查看標志位。

2. 實現(xiàn)數(shù)據(jù)的傳輸主函數(shù)

1)單引號雙引號的應用&數(shù)組傳輸
	usart_send_byte(DEBUG_USARTx,'a');	//單引號只能放單個字節(jié)
	usart_send_byte(DEBUG_USARTx,'\n');	
	usart_send_string(DEBUG_USARTx,"yanghaizhu\n"); //雙引號使能放字符串
	
	//傳輸數(shù)組
	char array[5]={'0','2','4','6','8'};
	usart_send_array(DEBUG_USARTx, array, sizeof(array));
2)將調(diào)試信息用串口打印傳送到電腦上

即,重新編寫printf函數(shù)中的fputc()和fgetc()這兩個函數(shù),使得直接調(diào)用printf函數(shù)就可以將相應的信息通過串口輸出。文章來源地址http://www.zghlxwxcb.cn/news/detail-574878.html

///重定向c庫函數(shù)printf到串口,重定向后可使用printf函數(shù)
int fputc(int ch, FILE *f)
{
		/* 發(fā)送一個字節(jié)數(shù)據(jù)到串口 */
		USART_SendData(DEBUG_USARTx, (uint8_t) ch);
		
		/* 等待發(fā)送完畢 */
		while (USART_GetFlagStatus(DEBUG_USARTx, USART_FLAG_TXE) == RESET);		
	
		return (ch);
}

///重定向c庫函數(shù)scanf到串口,重寫向后可使用scanf、getchar等函數(shù)
int fgetc(FILE *f)
{
		/* 等待串口輸入數(shù)據(jù) */
		while (USART_GetFlagStatus(DEBUG_USARTx, USART_FLAG_RXNE) == RESET);

		return (int)USART_ReceiveData(DEBUG_USARTx);
}

到了這里,關(guān)于STM32F407 --USART使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 從STM32F407到AT32F407(一)

    從STM32F407到AT32F407(一)

    雅特力公司的MCU有著性能超群,價格優(yōu)越的巨大優(yōu)勢,缺點是相關(guān)資料少一些,我們可以充分利用ST的現(xiàn)有資源來開發(fā)它。 我用雅特力的STM32F437開發(fā)板,使用原子?stm32f407的開發(fā)板自帶程序,測試串口程序,原設(shè)定串口波特率為115200,但是輸出亂碼,波特率改成230400,串口輸

    2024年02月02日
    瀏覽(29)
  • stm32f407 st-link v2的正確使用

    stm32f407 st-link v2的正確使用

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 一、安裝ST-LINK/V2 二、使用步驟 1.接線 2.配置 總結(jié) 之前一直在用串口下載,比較麻煩。在淘寶上看到10多塊的ST-LINK/V2下載器,小巧,接線少,還可以在線調(diào)試。但是到貨后使用卻一直連不上,

    2024年02月15日
    瀏覽(22)
  • 初識 STM32和STM32F407簡介

    初識 STM32和STM32F407簡介

    2007 年 6 月,ST 在北京發(fā)布了全球第一款基于 ARM Cortex M3 內(nèi)核的 32 位通用微控制 器芯片:STM32F103,以優(yōu)異的性能,豐富的資源,超高的性價比,迅速占領(lǐng)市場,從此一鳴 驚人,一發(fā)不可收拾,截止到 2020 年 6 月,STM32 累計出貨量超過 45 億顆。 戰(zhàn)艦開發(fā)板使用的 STM32F103ZET6

    2023年04月08日
    瀏覽(22)
  • STM32F407——串口通信

    STM32F407——串口通信

    本文將對串口通信的分類和基于 stm32 的串口配置進行介紹,以及如何使用串口調(diào)試助手進行串口收發(fā)功能的調(diào)試,旨在幫助還不會使用 stm32 單片機串口資源進行通信的家人們快速學會如何使用串口來進行通信。 (純干貨、快速上手、零基礎(chǔ)也能會!?。。?(1)串口,即串

    2023年04月08日
    瀏覽(44)
  • STM32F407的時鐘

    STM32F407的時鐘

    時鐘源用來為環(huán)形脈沖發(fā)生器提供頻率穩(wěn)定且電平匹配的方波時鐘脈沖信號。它通常由石英 晶體振蕩器和與非門組成的正反饋振蕩電路組成,其輸出送至環(huán)形脈沖發(fā)生器。 F4開發(fā)指南P107 F4開發(fā)指南P108 HSI高速內(nèi)部時鐘源 High Speed Internal。RC 振蕩器,頻率為 16MHz??梢灾苯幼鳛?/p>

    2024年02月10日
    瀏覽(38)
  • STM32F407的介紹

    STM32F407的介紹

    內(nèi)核 32位 高性能ARM Cortex-M4處理器 時鐘: 高達168MHz,實際還可以超頻一點點 stm32f407的主頻通過PLL倍頻后能夠達到168MHz,而且芯片內(nèi)置一個16MHz的晶振和一個32KHz的晶振,可以滿足不同功耗的需求。 支持FPU(浮點運算)和DSP指令 144引腳 114個IO口 存儲器容量: 1024K FLASH, 192K

    2024年02月10日
    瀏覽(30)
  • RT-Thread使用PWM實現(xiàn)燈亮度調(diào)節(jié)——STM32F407

    RT-Thread使用PWM實現(xiàn)燈亮度調(diào)節(jié)——STM32F407

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 RT-Thread使用PWM實現(xiàn)燈亮度調(diào)節(jié)——STM32F407ZG 作為新入門的嵌入式選手,最近在學習RT-Thread操作系統(tǒng),鑒于自己健忘的記性,打算記錄下來后面好回顧學習。 今天要總結(jié)的是RT-Thread使用PWM實現(xiàn)燈亮度調(diào)節(jié)

    2024年02月15日
    瀏覽(16)
  • STM32F407的PWM

    STM32F407的PWM

    泉水 STM32 的定時器除了 TIM6 和 7。其他的定時器都可以用來產(chǎn)生 PWM 輸出。 高級定時器 TIM1 和 TIM8 可以同時產(chǎn)生多達 7 路的 PWM 輸出。 通用定時器也能同時產(chǎn)生多達 4路的 PWM 輸出 STM32F407 最多可以同時產(chǎn)生 30 路 PWM 輸出! 這里我們僅利用 TIM14的 CH1 產(chǎn)生一路 PWM 輸出。 如上所

    2024年02月17日
    瀏覽(20)
  • STM32F407 移植 FreeRTOS

    STM32F407 移植 FreeRTOS

    本實驗是基于正點原子 STM32F407ZG 探索者開發(fā)板完成的,所以需要一個STM32F407ZG 探索者開發(fā)板 用于移植的基礎(chǔ)工程(下面會講) FreeRTOS源碼(下面會講) 本實驗所有用到的代碼:基于正點原子STM32F407的FreeRTOS移植工程.zip 1.1 移植前準備 1.1.1 基礎(chǔ)工程 由于后續(xù)需要用到 LED、

    2024年02月08日
    瀏覽(28)
  • [STM32] - STM32F407VET6使用STM32CubeMX配置FatFs,以及掛載時返回03錯誤碼問題的解決

    [STM32] - STM32F407VET6使用STM32CubeMX配置FatFs,以及掛載時返回03錯誤碼問題的解決

    為測試新買的開發(fā)板TF卡讀寫是否正常,使用STM32CubeMX(后簡稱CubeMX)進行代碼構(gòu)建。生成代碼后燒錄測試,發(fā)現(xiàn)在掛載TF卡時無法成功,返回值為錯誤3( FR_NOT_READY )。經(jīng)排查后問題已解決,遂記錄配置過程供大家參考,并講解掛載時返回錯誤3的解決方式。 ①為了輸出TF卡(

    2024年02月22日
    瀏覽(35)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包