//?UART初始化 void?uart4_init(u32?bound) { //GPIO端口設(shè)置 GPIO_InitTypeDef?GPIO_InitStructure; USART_InitTypeDef?USART_InitStructure; NVIC_InitTypeDef?NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,?ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4,?ENABLE); //UART4_TX???GPIOC10 GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_10;?//PC10 GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_AF_PP; //復(fù)用推挽輸出 GPIO_Init(GPIOC,?&GPIO_InitStructure);//初始化GPIOC10 //UART4_RX ??GPIOC11初始化 GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_11;//PC11 GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_IN_FLOATING;//浮空輸入 GPIO_Init(GPIOC,?&GPIO_InitStructure);//初始化GPIOC11 //USART?初始化設(shè)置 USART_InitStructure.USART_BaudRate?=?bound;//串口波特率 USART_InitStructure.USART_WordLength?=?USART_WordLength_8b;//字長為8位數(shù)據(jù)格式 USART_InitStructure.USART_StopBits?=?USART_StopBits_1;//一個停止位 USART_InitStructure.USART_Parity?=?USART_Parity_No;//無奇偶校驗位 USART_InitStructure.USART_HardwareFlowControl?=?USART_HardwareFlowControl_None;//無硬件數(shù)據(jù)流控制 USART_InitStructure.USART_Mode?=?USART_Mode_Rx?|?USART_Mode_Tx; //收發(fā)模式 USART_Init(UART4,?&USART_InitStructure);?//初始化串口1 USART_ITConfig(UART4,?USART_IT_RXNE,?ENABLE);//開啟串口接受中斷 USART_Cmd(UART4,?ENABLE);????????????????????//使能串口1? //USART?NVIC?配置 NVIC_InitStructure.NVIC_IRQChannel?=?UART4_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1?; NVIC_InitStructure.NVIC_IRQChannelSubPriority?=?1; NVIC_InitStructure.NVIC_IRQChannelCmd?=?ENABLE; //IRQ通道使能 NVIC_Init(&NVIC_InitStructure); //根據(jù)指定的參數(shù)初始化VIC寄存器 }
這個是我的初始化部分,發(fā)送數(shù)據(jù)進(jìn)不去串口中斷,串口發(fā)送數(shù)據(jù)后,串口4狀態(tài)寄存器從C0變?yōu)镕8再變會C0,表明收到數(shù)據(jù)后又不知道為什么被清零了
熱門產(chǎn)品 :
CH592: RISC-V內(nèi)核BLE5.4無線MCU