首先用一个正确的程序试一下确保软件本身没有什么问题,

然后再依次检查波特率和VPB时钟频率是否匹配,因为它们不匹配的时候同样会出现乱码。

如果最后还是乱码的话,可能就是程序的问题了,需要检查程序是否有语法以外的错误。

自己今天下午调了一个串口发送字符串的程序,就是因为没有把波特率和VPB时钟频率匹配好,导致一直出现乱码

当 UART_BPS 设为9600,Fpclk 为(Fosc/4)*1时是正确的组合,

错误一:UART_BPS 设为9600,Fpclk为 (Fosc/4)*2,出现了乱码,

错误二:UART_BPS 设为115200,Fpclk 为(Fosc/4)*1,出现了乱码

错误三:UART_BPS 设为115200,Fpclk 为(Fosc/4)*2,出现了乱码

程序如下所示:

方法一:

#include <NXP/iolpc2148.h>

void UART1_Init(void);
void UART1_SendStr(char *Str);
void UART1_SendByte(char byte);
void delayn(unsigned long n);
#define UART_BPS  9600 //设置串口通信波特率

#define Fosc 12000000   //晶振频率

#define Fpclk (Fosc/4)*1 //VPB时钟频率,MD此处公式写错了,导致字符串显示不出

//UART1串口初始化
void UART1_Init(void)
{
  //unsigned char Fdiv;
  U1FCR=1;     //FIFO使能
  U1LCR=0x83;  //使能访问除数锁存,8位字符长度,1个停止位,禁止奇偶产生和校验,
  //Fdiv=(Fpclk/16)/UART_BPS; //设置波特率
  U1DLL=Fpclk/(16*9600);   //除数的底8位
  U1DLM=(Fpclk/(16*9600))>>8;   //除数的高8位
  U1LCR=0x03;       //禁止访问除数锁存器
}
//发送字符串
void UART1_SendStr(char *Str)  
{
  while((*Str)!='\0')  //遇到结束符,退出
  {
    UART1_SendByte(*Str); //发送数据
    Str++;
  }
}
//发送单个字符
void UART1_SendByte(char byte)
{
  while((U1LSR&0x20)==0); //等待数据发送完毕
   U1THR=byte;  //写入数据
}
//延时函数
void delayn(unsigned long n)
{
  while(n--);
}
int main(void)
{
  PINSEL0=0x00050000; //P0.8,P0.9选择UART0
  UART1_Init();      //UART1串口初始化
  while(1)
  {
    UART1_SendStr("UART1 TEST.\n");
    delayn(100000);
  }
}

方法二:

#include <NXP/iolpc2148.h>

void UART1_Init(void);
void UART1_SendStr(char *Str);
void UART1_SendByte(char byte);
void delayn(unsigned long n);
#define UART_BPS  9600 //设置串口通信波特率

#define Fosc 12000000   //晶振频率
//#define Fcclk (Fosc*4)  //系统频率
#define Fpclk (Fosc/4)*1 //VPB时钟频率,MD此处公式写错了,导致字符串显示不出
//unsigned char Fdiv;
typedef unsigned short U16;
/*************************串口1初始化******************************************/
void UART1_Init ()
{
  U16 Fdiv;
  U0LCR = 0x83;                   // DLAB = 1,可设置波特率
  Fdiv =(Fpclk/16)/UART_BPS;
  U0DLL = Fdiv%256;
  U0DLM = Fdiv/256;
  U0LCR = 0x03;
}
//发送字符串
void UART1_SendStr(char *Str)  
{
  while((*Str)!='\0')  //遇到结束符,退出
  {
    UART1_SendByte(*Str); //发送数据
    Str++;
  }
}
//发送单个字符
void UART1_SendByte(char byte)
{
  while((U1LSR&0x20)==0); //等待数据发送完毕
   U1THR=byte;  //写入数据
}
//延时函数
void delayn(unsigned long n)
{
  while(n--);
}
int main(void)
{
  PINSEL0=0x00050000; //P0.8,P0.9选择UART0
  UART1_Init();      //UART1串口初始化
  while(1)
  {
    UART1_SendStr("xiao mu lang shi ge da duan dan.haha\n");
    delayn(1000000);
  }
}

串口调试助手出现乱码相关推荐

  1. keil5中文乱码,编译中文乱码,串口调试助手接收中文乱码

    keil5中文乱码,编译中文乱码,串口调试助手接收中文乱码 keil5的文本编辑器输入中文乱码 一般更改编码就可以解决 打开设置界面 更改编码,可以是GBK码,也可以是UTF-8编码 编辑器中文没有乱 ...

  2. linux串口文件传输助手怎么用,SerialTool: SerialTool是一个实用的串口调试工具,这款工具支持串口调试助手、波形显示和文件传输等功能...

    SerialTool A practical Serial-Port/TCP/UDP debugging tool. 简介 SerialTool是一个跨平台的串口/网络调试工具.此工具支持串口调试助手 ...

  3. ESP8266连接阿里云(串口调试助手)

    参考链接:ESP8266 AT MQTT 透传指令接入阿里云物联网平台笔记 刷AT固件 参考链接:ESP8266连接阿里云 需要注意: 有时可能会出现下载失败的情况,注意一下FLASH SIZE那里, ...

  4. 利用VSPD、串口调试助手、Keil做串口调试

    下面详细介绍下如何用虚拟串口调试串口发送接收程序. 需要用到三个软件:KEIL.VSPD XP5(virtual serial ports driver xp5.1虚拟串口软件).串口调试助手(个人感 ...

  5. 串口调试助手-打开报错

    问题:串口调试助手sscom33打开报错,报错信息如下图 解决方法: 1.将串口设备连接到电脑 1)若是台式机,则直接用串口线连接电脑和串口设备 2)若是笔记本电脑,则用一个USB转串口线连接串口设备 ...

  6. 8266串口调试助手_开源软件分享-基于WPF的串口调试工具

    最近同事在调试硬件的串口通讯功能,由于PLC暂时还没到,所以准备用USB转串口线连接在终端上,通过电脑USB口模拟串口收发功能.一开始同事下载了一款串口调试工具,发现没有自定义功能,比如通讯串口收到终 ...

  7. 485串口测试工具软件下载_串口调试助手详细讲解(结合实操),通讯问题不再是问题...

    经常会有学员问我,老师老师,我的plc和变频器通讯不上了,不知道什么原因,您能帮我看看么. 其实吧,这个一般远程是帮不上你什么的,还是要你自己去测试,找出问题,那么怎么测试呢,今天就给大家做一个详细的 ...

  8. java串口助手_java 串口调试助手 源码

    [实例简介]简单的串口调试助手 [实例截图] [核心代码]import gnu.io.CommPortIdentifier; import gnu.io.NoSuchPortException; im ...

  9. 【Qt串口调试助手】1.8 - 修改Qt应用图标和窗口图标

    修改Qt应用图标和窗口图标. GitHub源码:Qt串口调试助手下载 修改应用图标 首先选择一张喜欢的图片,来作为应用图标,图片格式必须为 .ico. easyicon.net 有很多可供下载的资源. ...

  10. 【Qt串口调试助手】1.7 - QLabel标签插入链接,修改Qt应用图标

    QLabel标签添加超链接,点击 即可通过默认浏览器打开网页. GitHub源码:Qt串口调试助手下载 QLabel标签添加链接 Qt支持 HTML语音,所以可以对链接颜色.字体.有无下划线等进行设置 ...

最新文章

  1. sass文件编译的三种方式【舒】
  2. MySQL基础篇:单行函数
  3. SAP MM PR 审批中的REJECT
  4. 中国平民百姓与富翁的五大差距
  5. SAP UI5的source code map(源代码映射)机制
  6. php 错误日志 redis' already loaded in Unknown on line 0
  7. Python 3实现k-邻近算法以及 iris 数据集分类应用
  8. MySQL基础入门学习【2】数据类型
  9. 题库明细 使用HTML+CSS开发商业站点
  10. 李洪强iOS之集成极光推送二iOS 证书 设置指南
  11. 西瓜书+实战+吴恩达机器学习(五)监督学习之线性判别分析 Linear Discriminant Analysis
  12. 实验报告-python文库_Python实验报告
  13. CSS3 常用选择器
  14. scrapy 的依赖库安装和出现def write(self, data, async=False):的解决方法
  15. 【软件工程】山东大学软件工程复习提纲
  16. STM32串口通讯——中断方式
  17. python灰色关联度分析代码_GRA灰色关联度分析学习 附python代码
  18. XCTF-Cat+Bug
  19. 【转载】Web2.0创业时代将终结
  20. Java给pdf添加页码(这是我之前的一篇文章)出现内存溢出Java heap space

热门文章

  1. Python迭代器基本方法iter()及其魔法方法__iter__()原理详解
  2. 光滑曲线_使用Python实现贝塞尔曲线连接多点形成光滑曲线
  3. 大陆、港澳台身份证、护照、军官证、户口本的正则表达式
  4. python队列的实现
  5. 揭开WebDriver面纱
  6. 咬文嚼字撕下抖音背后虚伪的面纱
  7. QGIS空间数据分析——空间数据基本处理与计算
  8. 自然语言三兄弟NLP、NLU、NLG傻傻分不清?一文搞懂它们的区别
  9. 【浪漫程序员系列】情人节给女友写代码表达爱意,让她感动到哭
  10. javaweb实现个人博客系统