国产成人av人人爽人人澡-亚洲国产日韩欧美一区-好吊日视频这里只有精品-日本高清精品视频在线

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當(dāng)前位置:首頁 >> 技術(shù)中心 >> 單片機(jī)入門 >> STM32的串口配置(中斷方式)

STM32的串口配置(中斷方式)

關(guān)鍵字:STM 串口 中斷方式 作者:admin 來源:不詳 發(fā)布時(shí)間:2018-05-19  瀏覽:5

STM32的串口中斷配置,也是很簡(jiǎn)單的.

首先是配置UART的GPIO口

首先是配置UART的GPIO口

/*******************************************************************************

* Name : UART1_GPIO_Configuration

* Deion : Configures the uart1 GPIO ports.

* Input : None

* Output : None

* Return : None

*******************************************************************************/

void UART1_GPIO_Configuration(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

// Configure USART1_Tx as alternate push-pull

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

GPIO_Init(GPIOA, &GPIO_InitStructure);

// Configure USART1_Rx as input floating

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

GPIO_Init(GPIOA, &GPIO_InitStructure);

}

然后是配置串口參數(shù)

/*******************************************************************************

* Name : UART1_Configuration

* Deion : Configures the uart1

* Input : None

* Output : None

* Return : None

*******************************************************************************/

void USART_Configuration(void)

{

USART_InitTypeDef USART_InitStructure;

USART_ClockInitTypeDef USART_ClockInitStructure;

Uart1_GPIO_Configuration();

USART_ClockInitStructure.USART_Clock = USART_Clock_Disable;

USART_ClockInitStructure.USART_CPOL = USART_CPOL_Low;

USART_ClockInitStructure.USART_CPHA = USART_CPHA_2Edge;

USART_ClockInitStructure.USART_LastBit = USART_LastBit_Disable;

/* Configure the USART1 synchronous paramters */

USART_ClockInit(USART1, &USART_ClockInitStructure);

USART_InitStructure.USART_BaudRate = 9600;

USART_InitStructure.USART_WordLength = USART_WordLength_8b;

USART_InitStructure.USART_StopBits = USART_StopBits_1;

USART_InitStructure.USART_Parity = USART_Parity_No ;

USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;

USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;

/* Configure USART1 basic and asynchronous paramters */

USART_Init(USART1, &USART_InitStructure);

/* Enable USART1 Receive interrupts */

USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);

/* Enable USART1 */

USART_Cmd(USART1, ENABLE);

}

然后是在中斷設(shè)置,需要修改stm32f10x_it.c 中的串口中斷函數(shù) 并且需要修改void NVIC_Configuration(void)函數(shù)

修改NVIC_Configuration函數(shù)

/*******************************************************************************

* Name : NVIC_Configuration

* Deion : Configures NVIC and Vector Table base location.

* Input : None

* Output : None

* Return : None

*******************************************************************************/

void NVIC_Configuration(void)

{

NVIC_InitTypeDef NVIC_InitStructure;

#ifdef VECT_TAB_RAM

/* Set the Vector Table base location at 0x20000000 */

NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);

#else /* VECT_TAB_FLASH */

/* Set the Vector Table base location at 0x08000000 */

NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);

#endif

/* Configure the NVIC Preemption Priority Bits */

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);

/* Enable the USART1 Interrupt */

NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQChannel;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

}

//串口中斷

void USART1_IRQHandler(void)

{

//處理接收到的數(shù)據(jù)

if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)

{

/* Clear the USART1 Receive interrupt */

USART_ClearITPendingBit(USART1, USART_IT_RXNE);

}

//發(fā)送中斷

if (USART_GetITStatus(USART1, USART_IT_TXE) != RESET)

{

USART_SendData(USART1, Send_Data[Send_Length++]);

if (Send_Length==SEND_LENGTH)

{

//發(fā)送字節(jié)結(jié)束

USART_ClearITPendingBit(USART1,USART_IT_TXE);

USART_ITConfig(USART1, USART_IT_TXE, DISABLE);

USART_ITConfig(USART1, USART_IT_TC, ENABLE);

}

}

//發(fā)送完成

if (USART_GetITStatus(USART1, USART_IT_TC) != RESET)

{

USART_ClearITPendingBit(USART1,USART_IT_TC);

USART_ITConfig(USART1, USART_IT_TC, DISABLE);

}

}

在需要發(fā)送的程序里Send_Data[SEND_LENGTH]和發(fā)送長(zhǎng)度設(shè)置好,

void Send_to_PC(void)

{

//設(shè)置好Send_Data[SEND_LENGTH]數(shù)組

//打開發(fā)送中斷

USART_ITConfig(USART1, USART_IT_TXE, ENABLE);

}

至此 串口就可以工作起來了!~

擴(kuò)展閱讀:?jiǎn)纹瑱C(jī)串行接口

編輯:admin  最后修改時(shí)間:2018-05-19

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤(rùn)豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號(hào)-4

青青久久亚洲婷婷中文网| 国语对白刺激高潮在线视频| 人妻精品一区二区三区视频免精| 亚洲中文字幕在线观看黑人| 国产精品99一区二区三区| 亚洲欧美日韩网友自拍| 欧美性高清一区二区三区视频| 免费一区二区三区少妇| 国产精品欧美一区两区| 亚洲日本加勒比在线播放| 久久国产精品熟女一区二区三区| 国产日韩综合一区在线观看| 蜜桃传媒视频麻豆第一区| 欧美做爰猛烈叫床大尺度| 日本一品道在线免费观看| 好吊妞视频免费在线观看| 国产精品久久三级精品| 女生更色还是男生更色| 国产又粗又猛又大爽又黄| 国产香蕉国产精品偷在线观看| 国产精品不卡免费视频| 小草少妇视频免费看视频| 亚洲国产另类久久精品| 爽到高潮嗷嗷叫之在现观看| 伊人久久青草地综合婷婷| 成人精品日韩专区在线观看 | 熟女高潮一区二区三区| 亚洲精品中文字幕熟女| 亚洲精品深夜福利视频| 在线观看中文字幕91| 久久99青青精品免费| 我的性感妹妹在线观看| 亚洲天堂国产精品久久精品| 国产精品免费无遮挡不卡视频| 欧美一级片日韩一级片| 日韩18一区二区三区| 国产精品日韩精品最新| 欧美成人国产精品高清| 久久亚洲精品中文字幕| 国产欧美日产中文一区| 亚洲国产色婷婷久久精品 |