新手入门
- 积分
- 15
- 金钱
- 15
- 注册时间
- 2018-10-13
- 在线时间
- 1 小时
|
想问问各位前辈,我这样配置串口3,在战舰的板子上的COM3口接rs232转usb的线连接电脑,程序想要实现通过串口调试助手发送一个数据,mcu在把这个数据发送给电脑,怎么没有什么反应呢。
#include "stm32f10x.h"
void USART3_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
USART_InitTypeDef USART_InitStruct;
NVIC_InitTypeDef NVIC_InitStruct;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);//usart3ê±Öóê1Äü
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//GPIOBê±Öóê1Äü
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//¿aÆôòy½Å¸′óÃ1|Äü
GPIO_PinRemapConfig(GPIO_PartialRemap_USART3,ENABLE);
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;//íÆíìêä3ö
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_10;
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN_FLOATING;//¸¡¿Õêäèë
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_11;
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStruct);
USART_InitStruct.USART_BaudRate=115200;//′®¿úμÄÅäÖÃ
USART_InitStruct.USART_HardwareFlowControl=USART_HardwareFlowControl_None;//ÎTó2¼tá÷
USART_InitStruct.USART_Mode=USART_Mode_Rx;
USART_InitStruct.USART_Parity=USART_Parity_No;
USART_InitStruct.USART_StopBits=USART_StopBits_1;
USART_InitStruct.USART_WordLength=USART_WordLength_8b;//8λêy¾YÖ¡
USART_Init(USART3,&USART_InitStruct);
NVIC_InitStruct.NVIC_IRQChannel=USART3_IRQn;
NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=3;
NVIC_InitStruct.NVIC_IRQChannelSubPriority=3;
NVIC_Init(&NVIC_InitStruct);//3õê¼»ˉÖD¶Ï
USART_ITConfig(USART3,USART_IT_RXNE,ENABLE);//¿aÆôÖD¶Ï
USART_Cmd(USART3,ENABLE);//ê1Äü′®¿ú
}
void USART3_IRQHandle(void)//′®¿ú3μÄÖD¶Ï·tÎñoˉêy
{
u8 ret;
if(USART_GetITStatus(USART3,USART_IT_RXNE))
{
ret=USART_ReceiveData(USART3);
USART_SendData(USART3,ret);
}
}
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
USART3_Init();
while(1);
}
下载程序的时候用的st-link,把usart3处的跳接帽接在PB10(RX)&COM_RX 以及PB11(TX)&COM_TX上,打开出口调试助手,设置参数115200,8位,无奇偶,1个停止位。,发送‘a’,应该还会打印'a',但是什么结果都没有,怎么回事呢?
|
|