硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4059|回复: 5
收起左侧

关于V6板子USART1发送的问题

[复制链接]

14

主题

118

回帖

160

积分

初级会员

积分
160
发表于 2016-2-17 16:02:20 | 显示全部楼层 |阅读模式
我用例程上的程序能正确通过串口1发送数据,但是用我自己写的串口代码就发送不正确,例如发送个0x01,上位机显示的是0x1C
我的代码如下:
void Usart1_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);

GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1);
GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1);

GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_Init(GPIOA,&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;
GPIO_Init(GPIOA,&GPIO_InitStructure);

USART_InitStructure.USART_BaudRate=USART1_BAUND;
USART_InitStructure.USART_WordLength=USART_WordLength_8b;
USART_InitStructure.USART_StopBits=USART_StopBits_1;
USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;
USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
USART_InitStructure.USART_Parity=USART_Parity_No;

USART_Init(USART1,&USART_InitStructure);

USART_Cmd(USART1,ENABLE);
//USART_ClearFlag(USART1,USART_FLAG_TC);//ÏÈÇå³ý·¢ËÍÍê³ɱêÖ¾£¬·ÀÖ¹ÔÚ¸ÕÅäÖÃÍê´®¿ÚºóµÚÒ»¸ö×Ö½Ú·¢ËͲ»³öÈ¥£¨BUG£©

}

int main(void)
{
SystemCoreClockUpdate();

Usart1_Init();
while(1)
{
   Delay(0xfff);
   USART_SendData(USART1, 0x01);
  while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
}


}
我的keil上选的是stm32f429BI型号,这个应该不影响吧
回复

使用道具 举报

14

主题

118

回帖

160

积分

初级会员

积分
160
 楼主| 发表于 2016-2-17 16:02:53 | 显示全部楼层
好纠结,感觉没地方错的啊
回复

使用道具 举报

14

主题

118

回帖

160

积分

初级会员

积分
160
 楼主| 发表于 2016-2-17 16:03:16 | 显示全部楼层
波特率是115200
回复

使用道具 举报

14

主题

118

回帖

160

积分

初级会员

积分
160
 楼主| 发表于 2016-2-17 16:13:56 | 显示全部楼层
试着将系统频率改为168M,结果对了,但是180M的为什么不正确呢?
回复

使用道具 举报

14

主题

118

回帖

160

积分

初级会员

积分
160
 楼主| 发表于 2016-2-17 16:38:38 | 显示全部楼层
知道原因了,原来开始没有修改库函数的时钟配置,导致系统本身的时钟就不正常,现在改为180M了,能正常运行了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117530
QQ
发表于 2016-2-18 10:36:51 | 显示全部楼层

回 fswyt 的帖子

fswyt:知道原因了,原来开始没有修改库函数的时钟配置,导致系统本身的时钟就不正常,现在改为180M了,能正常运行了 (2016-02-17 16:38) 
[s:151][s:151][s:151]
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 18:14 , Processed in 0.038956 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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