打印

STM32 串口收发数据

[复制链接]
3557|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
树下好乘凉|  楼主 | 2011-3-22 12:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我尝试用下面的代码发数据,但是一直得到的是00 00。。。。。望好心人指教!!
int main(void)
{
int i, RX_status = 0;

SystemInit();
GPIO_Configuration();
USART1_Config();
   while (1)
{

  RX_status = USART_GetFlagStatus(USART1, USART_FLAG_RXNE);
  if(RX_status == SET)
   {
     USART_SendData(USART1 , USART_ReceiveData(USART1));
     while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);
    }
}
}

void USART1_Config(void)
{
USART_InitTypeDef USART_InitStructure;
    USART_InitStructure.USART_BaudRate = 115200;
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_Rx | USART_Mode_Tx;
USART_Init(USART1, &USART_InitStructure);
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
USART_ITConfig(USART1, USART_IT_TXE, ENABLE);
USART_Cmd(USART1, ENABLE);
}

void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_USART1 |RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
                         RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD |
                         RCC_APB2Periph_GPIOE, ENABLE);
     
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;    //LED4
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOE, &GPIO_InitStructure);      
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;         
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  
GPIO_Init(GPIOA, &GPIO_InitStructure);     
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;         
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;   
GPIO_Init(GPIOA, &GPIO_InitStructure);
     
}
沙发
ST_ARM| | 2011-3-22 23:38 | 只看该作者
你先看看你收到的数据是否正确.

使用特权

评论回复
板凳
树下好乘凉|  楼主 | 2011-3-23 09:28 | 只看该作者
不正确,如果以16进制接收,显示的全是00 00 00

使用特权

评论回复
地板
ST_ARM| | 2011-3-23 09:41 | 只看该作者
用示波器查看一下RX引脚上的数据(包括PC端的TX),看看信号是否正确。

使用特权

评论回复
5
zztishan| | 2012-2-13 16:17 | 只看该作者
本帖最后由 zztishan 于 2012-2-13 16:23 编辑

接受的数据不能直接在函数里发送,应该要通过变量保存转换,而且, while (USART_GetFlagStatus(USART1,USART_FLAG_TXE) == RESET);

使用特权

评论回复
6
xlhtracy| | 2012-2-13 16:40 | 只看该作者
这是个啥

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

12

帖子

1

粉丝