OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4521|回复: 5

STM32F0串口程序发送数据和串口助手的不一样

[复制链接]

24

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2012-10-20
在线时间
5 小时
发表于 2013-12-23 17:10:24 | 显示全部楼层 |阅读模式
在写F0的串口程序,发送出来的数据用串口助手看和程序设定的值不一样,串口助手波特率115200

void USART_InitConfig(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
        
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
        
  GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_1);
  GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_1);        
  /*
  *  USART1_TX -> PA9 , USART1_RX ->        PA10
  */                                
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;                 
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; 
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
  GPIO_Init(GPIOA, &GPIO_InitStructure);        
        
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;                
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   
  GPIO_Init(GPIOA, &GPIO_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, DISABLE);                                                                                                
  NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;   
  NVIC_InitStructure.NVIC_IRQChannelPriority = 0;                 
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
        USART_Cmd(USART1, ENABLE);
}
这个是主循环,很简单的一个发送
  while (1)
        {        
        
  USART_SendData(USART1,0x22);
                 USART_ClearFlag(USART1,USART_FLAG_TXE);

    Delay_ms(500);
  } 
}


附件的图是串口助手查看发送的数据,我发的是0X22,看到的不是,求高手指点下..
谢谢了。








正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

17

主题

470

帖子

1

精华

高级会员

Rank: 4

积分
718
金钱
718
注册时间
2013-11-23
在线时间
0 小时
发表于 2013-12-23 17:46:12 | 显示全部楼层
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2019-9-12
在线时间
10 小时
发表于 2019-9-30 18:22:30 | 显示全部楼层
hechao3225 发表于 2013-12-23 17:46
F0的GPIOA挂在AHB下么

是的
回复 支持 反对

使用道具 举报

0

主题

14

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2019-11-1
在线时间
11 小时
发表于 2019-12-16 09:20:30 | 显示全部楼层
不要hex显示
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2018-11-8
在线时间
10 小时
发表于 2019-12-26 10:55:09 | 显示全部楼层
串口输入引脚应该配置成浮空输入,你配置成上拉推挽输出了
回复 支持 反对

使用道具 举报

1

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2019-6-17
在线时间
29 小时
发表于 2019-12-26 14:39:18 | 显示全部楼层
void USART1_SendByte(uint8_t Data)
{
  while((USART1->ISR & USART_FLAG_TXE) == RESET);
  USART1->TDR = (Data & (uint16_t)0x01FF);
}
用这个试试发送,配置看了下,基本和我一致
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-27 00:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表