在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 8909|回复: 13

[求助] keil+proteus仿真arm,keil设置导致串口乱码问题

[复制链接]
发表于 2014-8-8 10:47:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

我依据百度文库的一篇文章,尝试以下仿真:

proteus电路图:

细节:

期望的仿真结果是LED灯闪烁,同时虚拟终端显示"The LED is down!\n"或者"The LED is up!\n"。

keil代码:

#include "LPC21XX.H"

#define CR 0x0D

char ledDown[]={"The LED is down!\n"};

char ledUp[]={"The LED is up!\n"};

int putchar (int ch)  

{/* 向串口输出一个字符 */

  if (ch == '\n')  

{

    while (!(U1LSR & 0x20));

    U1THR = CR;

  }

         while (!(U1LSR & 0x20));

  return (U1THR = ch);

}

void delay (void)  

{                        

  unsigned volatile long i,j;

  for(i=0;i<60000;i++)

  for(j=0;j<5;j++);

}

void serialPuts(char *p)

{/* 向串口输出字符串 */

  while (*p != '\0')

{

  putchar(*p++);

  }

}

int main (void)  

{

/* 开始初始化串口 */

  PINSEL0 = 0x00050000;/* 设置引脚,开串口功能 */

  U1LCR = 0x83;/* 8位数据,无校验,一个停止位 */

  U1DLL = 97;/* VPB 15MHz的时候波特率为9600 */

  U1LCR = 0x03;/* DLAB = 0 */

/* 结束初始化串口 */

  IO0DIR = 0x000001;/*将P0.0设置为输出 */

  while (1)  

{

  IO0CLR = 0x000001;

serialPuts(ledUp);

delay();

  IO0SET = 0x000001;

serialPuts(ledDown);

delay();

  }

}         

在用keil生成hex文件时,如果不选择project菜单下【Options for Target 'Target1'】的【Linker】选项卡中

【Use Memory Layout From Target】,再用proteus仿真,结果正确:

如果选择project菜单下【Options for Target 'Target1'】的【Linker】选项卡中

【Use Memory Layout From Target】,再用proteus仿真,LED闪烁正常,但虚拟终端显示乱码:

其中的符号“@”是随LED闪烁逐个出现的。请问这是怎么回事?感激不尽!

发表于 2014-8-10 10:58:18 | 显示全部楼层
支持楼主的做法
发表于 2014-8-11 14:35:14 | 显示全部楼层
设置的可能有问题啊,好好对一下datasheet
发表于 2015-7-28 17:46:11 | 显示全部楼层
感谢分享!!
发表于 2015-7-28 17:47:10 | 显示全部楼层
感谢分享!!
发表于 2015-7-28 17:48:35 | 显示全部楼层
感谢分享!!
发表于 2015-7-28 17:56:24 | 显示全部楼层
感谢分享!!
发表于 2015-7-28 17:57:13 | 显示全部楼层
感谢分享!!
发表于 2015-7-28 18:09:09 | 显示全部楼层
感谢分享!!
发表于 2015-7-28 22:01:07 | 显示全部楼层
zhao了好久了,感谢!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-22 16:32 , Processed in 0.026637 second(s), 11 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表