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

STM32 F103C8T6學(xué)習(xí)筆記3:串口配置—串口收發(fā)—自定義Printf函數(shù)

這篇具有很好參考價值的文章主要介紹了STM32 F103C8T6學(xué)習(xí)筆記3:串口配置—串口收發(fā)—自定義Printf函數(shù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

今日學(xué)習(xí)使用STM32 C8T6的串口,我們在經(jīng)過學(xué)習(xí)筆記2的總結(jié)歸納可知,STM32 C8T6最小系統(tǒng)板上有三路串口,如下圖:

STM32 F103C8T6學(xué)習(xí)筆記3:串口配置—串口收發(fā)—自定義Printf函數(shù),STM32 F103 C8T6筆記,stm32,學(xué)習(xí),筆記,arm開發(fā),嵌入式硬件

?今日我們就著手學(xué)習(xí)如何配置開通這些串口進(jìn)行收發(fā),這里不講串口通信概念與基礎(chǔ),可以自行網(wǎng)上查找,本文直接開始介紹庫函數(shù)與編程實現(xiàn):

串口配置相關(guān)庫函數(shù)介紹:

?

打開串口GPIO的時鐘:

void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState)
/*
#define RCC_APB2Periph_GPIOA             ((uint32_t)0x00000004)
#define RCC_APB2Periph_GPIOB             ((uint32_t)0x00000008)
#define RCC_APB2Periph_GPIOC             ((uint32_t)0x00000010)
#define RCC_APB2Periph_GPIOD             ((uint32_t)0x00000020)
#define RCC_APB2Periph_GPIOE             ((uint32_t)0x00000040)
#define RCC_APB2Periph_GPIOF             ((uint32_t)0x00000080)
#define RCC_APB2Periph_GPIOG             ((uint32_t)0x00000100)
*/

?

打開串口外設(shè)的時鐘:

void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState)
/*
#define RCC_APB2Periph_USART1            ((uint32_t)0x00004000)
#define RCC_APB1Periph_USART2            ((uint32_t)0x00020000)
#define RCC_APB1Periph_USART3            ((uint32_t)0x00040000)
#define RCC_APB1Periph_UART4             ((uint32_t)0x00080000)
#define RCC_APB1Periph_UART5             ((uint32_t)0x00100000)
*/

?

串口的初始化配置:

void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct)
/*
USART1 USART2 USART3

*/

?

向量中斷控制器組選擇:

void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup)

?

初始化配置NVIC:

void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct)

?

串口接收:

USART_ReceiveData(USART1)

串口配置編程:

首先創(chuàng)建好要用的幾個文件.c 與.h,在添加進(jìn)工程,別忘了添加路徑~

STM32 F103C8T6學(xué)習(xí)筆記3:串口配置—串口收發(fā)—自定義Printf函數(shù),STM32 F103 C8T6筆記,stm32,學(xué)習(xí),筆記,arm開發(fā),嵌入式硬件

?

串口的初始化:

以下是串口1的初始化以及配置中斷優(yōu)先級,中斷優(yōu)先級的配置分為主優(yōu)先和子優(yōu)先,有關(guān)中斷優(yōu)先級的配置這放在以后再說~~~,

測試工程文件我還編寫了串口2,3的初始化,可以下載測試觀察~

#include "USART_init.h"


void Usart1_Init(unsigned int baud)
{
 
	GPIO_InitTypeDef gpio_initstruct;
	USART_InitTypeDef usart_initstruct;
	NVIC_InitTypeDef nvic_initstruct;
	
  // 打開串口GPIO的時鐘
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
	// 打開串口外設(shè)的時鐘	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
	
	
	//PA9	TXD	// 將USART Tx的GPIO配置為推挽復(fù)用模式
	gpio_initstruct.GPIO_Mode = GPIO_Mode_AF_PP;
	gpio_initstruct.GPIO_Pin = GPIO_Pin_9;
	gpio_initstruct.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA, &gpio_initstruct);
	
	//PA10	RXD  // 將USART Rx的GPIO配置為浮空輸入模式
	gpio_initstruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;
	gpio_initstruct.GPIO_Pin = GPIO_Pin_10;
	gpio_initstruct.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA, &gpio_initstruct);
	
	usart_initstruct.USART_BaudRate = baud;                                 	      //配置波特率
	usart_initstruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None;		//無硬件流控	
	usart_initstruct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;						        //接收和發(fā)送	
	usart_initstruct.USART_Parity = USART_Parity_No;									              //無校驗
	usart_initstruct.USART_StopBits = USART_StopBits_1;								              //配置停止位 1位停止位
	usart_initstruct.USART_WordLength = USART_WordLength_8b;							          //配置 針數(shù)據(jù)字長 8位數(shù)據(jù)位
	// 完成串口的初始化配置
	USART_Init(USART1, &usart_initstruct);

	USART_Cmd(USART1, ENABLE);														                           //使能串口
	USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);									                 //使能接收中斷
	
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);                                  /* 嵌套向量中斷控制器組選擇 */
	nvic_initstruct.NVIC_IRQChannel = USART1_IRQn;                                   /* 配置USART為中斷源 */
	nvic_initstruct.NVIC_IRQChannelCmd = ENABLE;                                     /* 使能中斷 */
	nvic_initstruct.NVIC_IRQChannelPreemptionPriority = 0;                           /* 搶斷優(yōu)先級*/
	nvic_initstruct.NVIC_IRQChannelSubPriority = 2;                                  /* 子優(yōu)先級 */
	
	NVIC_Init(&nvic_initstruct);                                                     /* 初始化配置NVIC */
 
}

?

串口中斷服務(wù)函數(shù)的編寫:

首先在啟動文件找到三個串口的中斷服務(wù)函數(shù):

STM32 F103C8T6學(xué)習(xí)筆記3:串口配置—串口收發(fā)—自定義Printf函數(shù),STM32 F103 C8T6筆記,stm32,學(xué)習(xí),筆記,arm開發(fā),嵌入式硬件

void USART1_IRQHandler(void)
{
 
	if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中斷
	{USART_ClearFlag(USART1, USART_FLAG_RXNE);}
	//返回收到的任意數(shù)據(jù)
	USART_SendData(USART1,USART_ReceiveData(USART1)); 
	
}

測試結(jié)果截圖:

STM32 F103C8T6學(xué)習(xí)筆記3:串口配置—串口收發(fā)—自定義Printf函數(shù),STM32 F103 C8T6筆記,stm32,學(xué)習(xí),筆記,arm開發(fā),嵌入式硬件

?

工程下載:

https://download.csdn.net/download/qq_64257614/88201777?spm=1001.2014.3001.5503文章來源地址http://www.zghlxwxcb.cn/news/detail-686550.html

到了這里,關(guān)于STM32 F103C8T6學(xué)習(xí)筆記3:串口配置—串口收發(fā)—自定義Printf函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • STM32 F103C8T6學(xué)習(xí)筆記4:時鐘樹、滴答計時器、定時器定時中斷

    STM32 F103C8T6學(xué)習(xí)筆記4:時鐘樹、滴答計時器、定時器定時中斷

    今日理解一下STM32F103 C8T6的時鐘與時鐘系統(tǒng)、滴答計時器、定時器計時中斷的配置,文章提供原理,代碼,測試工程下載。 目錄 時鐘樹與時鐘系統(tǒng): 滴答計時器: 定時器計時中斷: 測試結(jié)果: 測試工程下載: 該系統(tǒng)介紹在 STM32F10x-中文參考手冊 P56頁開始 微控制器的時鐘系

    2024年02月13日
    瀏覽(32)
  • STM32 F103C8T6學(xué)習(xí)筆記8:0.96寸單色OLED顯示屏顯示字符

    STM32 F103C8T6學(xué)習(xí)筆記8:0.96寸單色OLED顯示屏顯示字符

    使用STM32F103 C8T6 驅(qū)動0.96寸單色OLED顯示屏: OLED顯示屏的驅(qū)動,在設(shè)計開發(fā)中OLED顯示屏十分常見,因此今日學(xué)習(xí)一下。一篇文章從程序到顯示都講通。 文章提供源碼、原理解釋、測試工程下載,測試效果圖展示。 ? 目錄 OLED驅(qū)動原理—IIC通信: SSD1306 單色 0.96 OLED 顯示屏特性

    2024年02月12日
    瀏覽(24)
  • STM32 F103C8T6學(xué)習(xí)筆記13:IIC通信—AHT10溫濕度傳感器模塊

    STM32 F103C8T6學(xué)習(xí)筆記13:IIC通信—AHT10溫濕度傳感器模塊

    今日學(xué)習(xí)一下這款A(yù)HT10 溫濕度傳感器模塊,給我的OLED手環(huán)添加上測溫濕度的功能。 文章提供源碼、測試工程下載、測試效果圖。 目錄 AHT10溫濕度傳感器: 特性: 連接方式: 適用場所范圍: 程序設(shè)計: 設(shè)計目標(biāo): ?程序設(shè)計注意點: AHT10代碼: ?主函數(shù)代碼: 測試效果:

    2024年02月11日
    瀏覽(26)
  • STM32 F103C8T6學(xué)習(xí)筆記5:定時器輸出不同占空比PWM驅(qū)動舵機(jī)旋轉(zhuǎn)角度

    現(xiàn)在學(xué)習(xí)使用STM32 F103C8T6的定時器PWM模式,使用PWM驅(qū)動舵機(jī)轉(zhuǎn)動不同角度,文章提供源碼,測試工程,測試動態(tài)效果圖。 目錄 基礎(chǔ)原理: ?實驗?zāi)繕?biāo): 測試視頻結(jié)果: 測試工程下載: 這次依舊拿出之前學(xué)習(xí)過的舵機(jī)DS3115,它的基礎(chǔ)原理不多加介紹,在往期講MSP432的文章有所

    2024年02月13日
    瀏覽(25)
  • STM32 F103C8T6學(xué)習(xí)筆記2:GPIO的認(rèn)識—GPIO的基本輸入輸出—點亮一個LED

    STM32 F103C8T6學(xué)習(xí)筆記2:GPIO的認(rèn)識—GPIO的基本輸入輸出—點亮一個LED

    今日繼續(xù)學(xué)習(xí)使用? STM32 F103C8T6開發(fā)板 點亮一個LED燈,文章提供源碼,測試工程,實驗效果圖,希望我的歸納總結(jié)會對大家有幫助~ 目錄 GPIO的認(rèn)識與分類 : 引腳安排整理: 定時器的引腳例舉: 串口的引腳例舉: ?CAN串口通信: SPI通信: IIC通信: ?其余引腳: 燒錄引腳:

    2024年02月11日
    瀏覽(19)
  • STM32 HAL庫 CubeMX配置 定時器學(xué)習(xí) F103C8T6

    STM32 HAL庫 CubeMX配置 定時器學(xué)習(xí) F103C8T6

    開發(fā)板: STM32F103C8T6最小系統(tǒng)板 編譯環(huán)境: Keil5 MDK 輔助軟件: STM32 CubeMX 課程教學(xué): 基于正點原子HAL庫學(xué)習(xí)教程 其余配件: 江科大STM32配件包?和 示波器一臺 備注: ?因為這塊開發(fā)板沒有基本定時器,所以本文也 沒有基本定時器的內(nèi)容 ????????????本文1.3和2.1部分的

    2024年04月26日
    瀏覽(21)
  • STM32 F103C8T6學(xué)習(xí)筆記10:OLED顯示屏GIF動圖取?!喴讜r鐘—動圖手表的制作~

    STM32 F103C8T6學(xué)習(xí)筆記10:OLED顯示屏GIF動圖取?!喴讜r鐘—動圖手表的制作~

    今日嘗試做一款有動圖的OLED實時時鐘,本文需要現(xiàn)學(xué)一個OLED的GIF動圖取模 其余需要的知識點有不會的可以去我? STM32 F103C8T6學(xué)習(xí)筆記? 系列專欄自己查閱把,閑話不多,直接開肝~~~ 文章提供源碼,測試工程下載,測試效果圖。 做個簡易的時鐘,就不把RTC實時時鐘放進(jìn)來學(xué)了

    2024年02月12日
    瀏覽(42)
  • STM32 F103C8T6學(xué)習(xí)筆記6:IIC通信__驅(qū)動MPU6050 6軸運動處理組件—一階互補(bǔ)濾波

    STM32 F103C8T6學(xué)習(xí)筆記6:IIC通信__驅(qū)動MPU6050 6軸運動處理組件—一階互補(bǔ)濾波

    今日主要學(xué)習(xí)一款傾角傳感器——MPU6050,往后對單片機(jī)原理基礎(chǔ)講的會比較少,更傾向于簡單粗暴地貼代碼,因為經(jīng)過前些日子對MSP432的學(xué)習(xí),對原理方面也有些熟絡(luò)了,除了在新接觸它時會對其引腳、時鐘、總線等進(jìn)行仔細(xì)一些的研究之外,其余驅(qū)動方面便是照搬經(jīng)驗了~

    2024年02月13日
    瀏覽(24)
  • STM32 F103C8T6學(xué)習(xí)筆記9:0.96寸單色OLED顯示屏—自由取模顯示—顯示漢字與圖片

    STM32 F103C8T6學(xué)習(xí)筆記9:0.96寸單色OLED顯示屏—自由取模顯示—顯示漢字與圖片

    今日學(xué)習(xí)0.96寸單色OLED顯示屏的自由取模顯示: 宋體漢字比較復(fù)雜,常用字符可以直接復(fù)制存下來,畢竟只有那么幾十個字母字符,但漢字實在太多了,基本不會全部放在單片機(jī)里存著,一般用到多少個字就取幾個字的模,因此漢字放在這里與自由取模一起講。 文章提供源碼

    2024年02月11日
    瀏覽(25)
  • STM32系列(HAL庫)——F103C8T6獲取DHT11溫濕度串口打印

    STM32系列(HAL庫)——F103C8T6獲取DHT11溫濕度串口打印

    在此特別鳴謝原文博主! (1)編程平臺:Keil5 (2)CubeMX (3)XCOM(串口調(diào)試助手) (1)F1的板子,本例使用經(jīng)典F103C8T6 ?(2)DHT11——溫濕度傳感器 (3)ST-link?下載器 (4)USB-TTL模塊 (5)杜邦線若干 (1)芯片選擇 STM32F103C8T6 ?(2)配置RCC、SYS、時鐘樹 配置RCC 配置SYS 配置時鐘樹 (3) 配置GPIO ?(4)配置

    2023年04月08日
    瀏覽(17)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包