- void usart2_Init(u32 bound)
- {
- GPIO_InitTypeDef GPIO_InitStuer;
- USART_InitTypeDef USART_InitStuer;
- NVIC_InitTypeDef NVIC_InitStuer;
-
- RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE); //ʹÄÜGPIOAʱÖÓ
- RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);//ʹÄÜUSART2ʱÖÓ
-
- GPIO_PinAFConfig(GPIOA,GPIO_PinSource2,GPIO_AF_USART2); //GPIOA2¸´ÓÃΪUSART2
- GPIO_PinAFConfig(GPIOA,GPIO_PinSource3,GPIO_AF_USART2); //GPIOA3¸´ÓÃΪUSART2
-
- GPIO_InitStuer.GPIO_Mode=GPIO_Mode_AF;
- GPIO_InitStuer.GPIO_OType=GPIO_OType_PP;
- GPIO_InitStuer.GPIO_Pin=GPIO_Pin_2 | GPIO_Pin_3;
- GPIO_InitStuer.GPIO_PuPd=GPIO_PuPd_UP;
- GPIO_InitStuer.GPIO_Speed=GPIO_Speed_100MHz;
- GPIO_Init(GPIOA,&GPIO_InitStuer);
-
- USART_InitStuer.USART_BaudRate=bound;
- USART_InitStuer.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
- USART_InitStuer.USART_Mode= USART_Mode_Rx | USART_Mode_Tx;
- USART_InitStuer.USART_Parity=USART_Parity_No; //ÎÞÆæżУÑéλ
- USART_InitStuer.USART_StopBits=USART_StopBits_1; //ÎÞÓ²¼þÁ÷¿ØÖÆ
- USART_InitStuer.USART_WordLength=USART_WordLength_8b;
- USART_Init(USART2,&USART_InitStuer);
-
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
-
- NVIC_InitStuer.NVIC_IRQChannel=USART2_IRQn;
- NVIC_InitStuer.NVIC_IRQChannelCmd=ENABLE;
- NVIC_InitStuer.NVIC_IRQChannelPreemptionPriority=2;
- NVIC_InitStuer.NVIC_IRQChannelSubPriority=2;
- NVIC_Init(&NVIC_InitStuer);
-
- USART_ITConfig(USART2,USART_IT_RXNE,ENABLE); //½ÓÊÜÖжÏ
- USART_Cmd(USART2,ENABLE); //ʹÄÜ´®¿Ú2
- }
复制代码 来帮忙找找错误吧,程序看着没有问题啊。
主函数发送0x11电脑都收不到。
- USART_SendData(USART2,0x11);
- while(USART_GetFlagStatus(USART2,USART_FLAG_TXE) != RESET);
复制代码 不清楚,有能帮忙检查下的嘛。
多谢了
|
2、用示波器查看波形。。。
评分
查看全部评分
GPIO_InitStuer.GPIO_PuPd=GPIO_PuPd_UP;
初始化发送IO复用推挽输出,接收IO复用浮空输入。
评分
查看全部评分
F4的配置和F1的一样吗。我看的F4例程里面给的是发送和接受都是复用推挽
官方demo串口初始化
电脑RX接MCUTX,TX接MCURX
评分
查看全部评分