哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32的串口中斷配置

電子工程師 ? 2018-04-06 07:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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);

}

至此 串口就可以工作起來(lái)了!~

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2312

    文章

    11187

    瀏覽量

    374424
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    cs32A010串口通訊問(wèn)題

    串口中斷接收數(shù)據(jù),第一個(gè)數(shù)據(jù)是0,第二個(gè)才是正確的數(shù)據(jù),而且最后一個(gè)字節(jié)放到了下一幀數(shù)據(jù)第一個(gè)。 pack包的串口中斷例程跑的也有問(wèn)題,讀取串口數(shù)據(jù)為什么是兩條一樣的語(yǔ)句,是什么意思?
    發(fā)表于 04-13 12:35

    STM32驅(qū)動(dòng)串口屏,STM32F103C8T6串口發(fā)送指令控制HMI串口

    僅是一部分常用的基礎(chǔ)指令,更多更仔細(xì)的指令或者函數(shù)可以訪問(wèn)陶晶馳資料官網(wǎng)。 硬件和接線 硬件需要一塊STM32F103C8T6的開發(fā)板,杜邦線諾干,2.4寸串口屏一塊 接線 串口STM32
    的頭像 發(fā)表于 02-10 17:07 ?490次閱讀
    <b class='flag-5'>STM32</b>驅(qū)動(dòng)<b class='flag-5'>串口</b>屏,<b class='flag-5'>STM32</b>F103C8T6<b class='flag-5'>串口</b>發(fā)送指令控制HMI<b class='flag-5'>串口</b>屏

    RK3588平臺(tái)串口配置修改指南:切換至串口8

    在嵌入式開發(fā)中,串口作為基礎(chǔ)調(diào)試接口至關(guān)重要。本文檔針對(duì) RK3588 平臺(tái),詳細(xì)介紹如何將系統(tǒng)默認(rèn)串口修改為串口 8(UART8),包括 U-Boot 階段和內(nèi)核階段的配置調(diào)整。該修
    的頭像 發(fā)表于 02-01 16:37 ?1341次閱讀

    CW32L083demo板,用串口中斷去喚醒的話,如果波特率高于9600,會(huì)丟字節(jié)嗎?

    請(qǐng)問(wèn)各位大神,CW32L083demo板,用串口中斷去喚醒的話,如果波特率高于9600,會(huì)丟字節(jié)嗎?
    發(fā)表于 01-29 06:22

    串口中斷和定時(shí)中斷,外部中斷在一起如何調(diào)用?

    當(dāng)系統(tǒng)有個(gè)定時(shí)中斷。 比如定時(shí)采集溫度值,然后通過(guò)串口發(fā)送到上位機(jī)。這樣程序里要用到定時(shí)中斷串口中斷 比如定時(shí)1s采樣一次。那么是1s內(nèi)調(diào)用串口中
    發(fā)表于 01-14 06:25

    CS32L010系列能否支持串口的發(fā)送和接收中斷單獨(dú)配置?不同中斷中斷優(yōu)先級(jí)如何設(shè)置?

    1、串口能否配置成阻塞式發(fā)送和中斷式接收。 2、不同中斷中斷優(yōu)先級(jí)如何設(shè)置?我在開啟中斷函數(shù)代
    發(fā)表于 12-10 18:46

    串口空閑中斷串口超時(shí)中斷介紹

    1. 空閑中斷(Idle Interrupt) 觸發(fā)條件 當(dāng)串口總線在接收數(shù)據(jù)后持續(xù)保持空閑狀態(tài)(如高電平)超過(guò)一幀時(shí)間(即一個(gè)字符傳輸時(shí)間)時(shí)觸發(fā)。 硬件自動(dòng)檢測(cè)總線空閑狀態(tài),與數(shù)據(jù)長(zhǎng)度無(wú)關(guān)
    發(fā)表于 11-21 08:31

    串口中斷觸發(fā)卡死怎么解決?

    當(dāng)用下列代碼運(yùn)行時(shí),串口中斷可以正常觸發(fā),回環(huán)數(shù)據(jù)接受正常。 #define UART_BAUDRATE 115200static void uart_pinmux_init(void
    發(fā)表于 11-11 06:17

    E203串口中斷使用總結(jié)

    一、串口中斷參數(shù)設(shè)置 與STM32串口中斷不同,E203的串口中斷標(biāo)志位是自動(dòng)清零的,也就是說(shuō),只要進(jìn)入了串口中斷服務(wù)函數(shù)并且執(zhí)行完
    發(fā)表于 10-22 07:34

    使用串口485線程,發(fā)現(xiàn)收到數(shù)據(jù)回調(diào)函數(shù)一直沒(méi)有運(yùn)行是怎么回事?

    ,引腳PB6和PB7,串口配置沒(méi)有問(wèn)題,開機(jī)可以正常打印,如下圖。 發(fā)送485指令,通過(guò)打印和debug發(fā)現(xiàn)信號(hào)量一直為-2,且收到數(shù)據(jù)會(huì)自動(dòng)進(jìn)入串口中斷函數(shù),不會(huì)進(jìn)入我寫的線程中接收。 我這邊硬件上有485自動(dòng)引腳切
    發(fā)表于 09-18 06:03

    求助,關(guān)于stm32H7多DMA數(shù)據(jù)流問(wèn)題求解

    情況如下:stm32H7配置了一個(gè)adc進(jìn)行采樣,通過(guò)dma進(jìn)行數(shù)據(jù)傳輸,串口接收和發(fā)送命令,用兩個(gè)dma數(shù)據(jù)流通道,采用的空閑中斷。 問(wèn)題:adc一直在
    發(fā)表于 07-29 15:02

    STM32L431偶發(fā)串口亂碼的原因?怎么解決?

    項(xiàng)目現(xiàn)場(chǎng)發(fā)現(xiàn)有些設(shè)備有時(shí)下發(fā)數(shù)據(jù)沒(méi)反應(yīng),該設(shè)備由STM32L431外接模塊來(lái)接收網(wǎng)絡(luò)數(shù)據(jù)。經(jīng)過(guò)排查,發(fā)現(xiàn)亂碼發(fā)生時(shí),外接設(shè)備發(fā)出的數(shù)據(jù)無(wú)亂碼,STM32L431的對(duì)應(yīng)該外接設(shè)備的串口中斷服務(wù)程序
    發(fā)表于 06-19 06:46

    STM32CubeMX配置STM32G070RBT6TR時(shí)為什么無(wú)法使能PVD中斷

    STM32CubeMX 配置STM32G070RBT6TR時(shí)無(wú)法使能PVD中斷
    發(fā)表于 06-18 07:59

    stm32N657配置USART2,可以發(fā)送,但是為什么無(wú)法進(jìn)入接收中斷呢?

    串口2,中斷配置了,編寫接收回調(diào)函數(shù),無(wú)法進(jìn)入,但是可以正常發(fā)送。請(qǐng)問(wèn)大家能不能幫我看看代碼?。空伊艘惶鞗](méi)找到問(wèn)題。
    發(fā)表于 06-18 07:13

    STM32CubeMX配置STM32G070RBT6TR時(shí)無(wú)法使能PVD中斷怎么辦?

    STM32CubeMX 配置STM32G070RBT6TR時(shí)無(wú)法使能PVD中斷
    發(fā)表于 06-16 06:32
    日照市| 阿尔山市| 应用必备| 高邑县| 合水县| 邵东县| 通化市| 板桥市| 商城县| 历史| 梁平县| 土默特右旗| 德惠市| 会泽县| 杭锦后旗| 灵山县| 景谷| 三明市| 瓮安县| 屯留县| 都昌县| 师宗县| 中西区| 东辽县| 闽侯县| 阳山县| 武威市| 开原市| 永安市| 韶山市| 崇左市| 定结县| 南宫市| 海伦市| 福建省| 沂源县| 麻城市| 谷城县| 绵阳市| 普定县| 阿图什市|