STM32的串口1通信问题
最近刚开始学习STM32,到USART部分的RS232,用USART1通信,模仿教学里的程序,也是一个利用串口中断,将PC端发送过来的数据加1,然后返回。编写好无报错,但是用串口助手调试时,数据发出去就石沉大海了,(发送了6次都没收到),串口初始化程序如下:
void Usart_Init()
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
SystemInit();
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_USART1,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
GPIO_InitStructure.GPIO_Pin=TXD; //头文件里已经定义 #define TXDGPIO_Pin_9
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=RXD; //头文件里已经定义 #define RXDGPIO_Pin_10
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA,&GPIO_InitStructure);
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_Tx | USART_Mode_Rx;
USART_Init(USART1, &USART_InitStructure);
USART_ClearFlag(USART1,USART_FLAG_TC);
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);
USART_Cmd(USART1, ENABLE);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
中断函数如下:
void USART1_IRQHandler(void) //′®¿ú1èë¿úoˉêy
{
static u8 rx_sbuf;
USART_ClearFlag(USART1,USART_FLAG_TC);
if(USART_GetITStatus(USART1,USART_IT_RXNE)!=Bit_RESET)
{
rx_sbuf=USART_ReceiveData(USART1);
rx_sbuf++;
USART_SendData(USART1,rx_sbuf);
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==Bit_RESET);
}
}
主函数如下:
int main()
{
Usart_Init();
while(1);
}
初学STM32,,求大神帮忙分析分析...
_jahleel 发表于 2017-4-17 15:08
问了售后,串口助手勾选一下DTR再去掉就行
这到底是为什么
能够更清楚的解释一下吗
liufudao 发表于 2017-4-18 23:39
这到底是为什么
能够更清楚的解释一下吗
DTR是数据终端设置,也就是把单片机和电脑进行连接,具体你可以百度一下。当然他视频里没有说,这是他的问题。而且他的视频做的确实比较差。 我下载他里面的例程,发送之后也没有回应。同求 一样啊没回复 看一下教程的pdf 我的也没有 J-PING 发表于 2017-1-22 16:45
我下载他里面的例程,发送之后也没有回应。同求
+1,准备去找售后 问了售后,串口助手勾选一下DTR再去掉就行 我的也是没有回复,就是提供地程序也没反应 把串口调试助手更新到最新,
页:
[1]
2