OpenEdv-开源电子网

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

串口传送汉字,lcd显示,显示上下两个字!

[复制链接]

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2013-7-22
在线时间
0 小时
发表于 2013-7-23 16:42:21 | 显示全部楼层 |阅读模式

部分代码如下

u16  RxData,data_RxData, data_str16[512],data_str8[512];   //串口接收数据


int main(void)
{
//    int num,n;      /* 显示lcd型号 n 扇区开始数*/
 u8 i,j;         /* ifor循环使用,j判断数据高低位 */
 u8 s1,s2;  /* s汉字字符串长度   h,w 16*16汉字换行使用*/
    int y = 50, x = 0;


// u8 data_read[512], data_write[512];
 unsigned char TxBuf[100] = "\rARM第八组\r\n";
// u8 data_read[512], data_write[512] , *ptr;
// n= 500; //数据从扇区数500开始写
// ptr=(u8 *)data_str8;
// int q=0;
 s1 = s2 = 0;    /*汉字字符串长度*/ 
 j=0;     /*j判断数据高低位*/
   /* System clocks configuration ---------------------------------------------*/
   SystemInit();
   /* Initialize the LCD */
   STM3210C_LCD_Init();
   /* Clear the LCD */
   LCD_Clear(White);
   /* Set the LCD Text Color */
   LCD_SetTextColor(Black);
 
     USART_Configuration(); 
        printf("\rHello contex-M3\r\n");

 


 /* 串口提示信息 */
 for (i = 0; TxBuf !='\0'; i++)
 {   
  USART_SendData(USART2, TxBuf);
  while (USART_GetFlagStatus(USART2,USART_FLAG_TC) == RESET);
 }
// ili9320_PutChineseString(80, 0,  "欢迎使用ARM3组记事本" ,0x07E0,0xF800);   //16*16的汉字  
// ili9320_PutChineseString(96, 0,  "专注于嵌入式开发" ,0x07E0,0x001F);

 while (1)
 { 
  /*PD7 灯亮,可以从串口输入数据*/
  GPIO_ResetBits(GPIOD , GPIO_Pin_7);

  /* 从串口接收数据, */
     while (USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == RESET){}
     RxData = USART_ReceiveData(USART2);     //汉字存的区位码
  while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET){}
     USART_SendData(USART2, RxData);
//   printf("RxData:%x",RxData);

  if(RxData>= 0x00 && RxData<=0x7f)     // ascii 码对照表
  {
//   LCD_DisplayChar(Line2,2,RxData); //显示ascii码值
  printf("%c",RxData);

  } 
  /*显示汉字*/
   else    
  {
   /*将高低字节组合在一起*/ 
    if (j == 0)
     {data_RxData = RxData; j=1;}    //低字节
   else if(j == 1)
   {
    data_RxData += RxData<<8;  j = 0; //高字节
    
    /*将每个字 存入字符组*/
    data_str16[s1++] = data_RxData;     
    data_str8[s2++] = RxData;
       /*控制x,y,将汉字显示在同一行,并到行尾时换行*/
//    if(x<320)
//    {
//     ili9320_PutChinese(y, x, data_RxData,0x0000,0xF800);
//     x+=16;
//    }else
//    {
//     y+=18; x = 0;
//     ili9320_PutChinese(y, x, data_RxData,0x07E0,0xF800);
//    }
   if(y<239)
   {
    if(x<319)
    {
     ili9320_PutChinese(y, x, data_RxData,0x0000,0xFFFF);
     x+=16;
    }
    else
    {
     x=0;
     y+=36;
    }
   }
   else{
      y=0;
      LCD_Clear(White);
    }
   }
  } 

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

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2013-7-22
在线时间
0 小时
 楼主| 发表于 2013-7-23 16:44:09 | 显示全部楼层
意思就是,从串口助手输入的汉字,在板子的lcd上面显示的是上下两个汉字!比如输入“啊”,lcd显示的效果是


回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2013-7-9
在线时间
0 小时
发表于 2013-7-23 17:40:37 | 显示全部楼层
函数调用字库时  函数里面的具体设置问题    好好看看细节
回复 支持 反对

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2013-7-22
在线时间
0 小时
 楼主| 发表于 2013-7-23 18:00:03 | 显示全部楼层
回复【3楼】小石:
---------------------------------
实在是弄不出来了,烦请您给点指示~~~
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-23 19:05:29 | 显示全部楼层
有没有仿真器啊?
仿真器仿真一下,就很容易找到问题了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2013-7-22
在线时间
0 小时
 楼主| 发表于 2013-7-24 08:39:16 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
原子哥,我们刚开始学,老师没有说过仿真!!!恩恩~~~我现在去找找仿真的东西看看,然后再试着改改~~~~
回复 支持 反对

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2013-7-22
在线时间
0 小时
 楼主| 发表于 2013-7-24 11:09:59 | 显示全部楼层
我不会了~~~~哎,,不会用仿真~~~看了一些资料,找不到有用的地方~~~
回复 支持 反对

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2013-7-22
在线时间
0 小时
 楼主| 发表于 2013-7-24 12:35:37 | 显示全部楼层
改出来了~~~~很弱智的问题~~~~~丢人!!!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-17 00:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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