|
怎么同时使能USART3并保持I2C2的非使能状态?
看看我的串口配置参数吧,有什么不对吗?485芯片用的2483。还是调不同,用示波器能看到发送的数据进入了CPU管脚,可就是进不去串口3的中断。
#define RS485_1_Rx_CS GPIO_SetBits(GPIOA, GPIO_Pin_15) //PA15 #define RS485_1_Tx_CS GPIO_ResetBits(GPIOA, GPIO_Pin_15)
void COM_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; //串口参数
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); //因PA15还有调试功能,所以要关掉 /*RS485通讯接口*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; //配置RX(PB11) GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //配置Tx(PB10) GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; //配置收发切换管脚 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); USART_InitStructure.USART_BaudRate= 9600; //串口参数设置 USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_Parity = USART_Parity_No ; //无校验 USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART3, &USART_InitStructure); USART_ITConfig(USART3, USART_IT_RXNE, ENABLE); //打开接收中断
USART_Cmd(USART3, ENABLE); RS485_1_Rx_CS; //打开485的接收中断 } |
|