OpenEdv-开源电子网

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

原子F4系列开发板的一些问题,另我遇到的一个F429带RGB屏刷位图慢的问题

[复制链接]

3

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
123
金钱
123
注册时间
2015-4-27
在线时间
21 小时
发表于 2016-7-18 11:01:37 | 显示全部楼层 |阅读模式
搞开发10多年了   STM32页用了大概六七年了
原子的开发板购买了F407和F429的
例程和资料都十分完整给我也有很大的帮助

现说一下我在使用测试原子程序是遇到的一些小问题
1   原子的串口中断接收例程都是以0d0a 为结束   判断是否收到一阵完整的数据
    但是程序再收到0d后就开始等待0a的到来    并不是检测到连续的0d0a才认为结束
    所以如果你串口收到的数字中间有0d将导致数据接收不完整
2  原子的2,ATK-NEO-6M GPS模块例程的驱动做的很好   我现在还在用
   不过中间有一个时速问题   即GPS测得的时速在结构体中是一个16位变量且取小数点后3位,
   这样导致一个问题,如果此时出现(提别是车载时)时速大于65.535公里则数据溢出变为0
   修改跟简单将结构体中的时速变量有u16修改为u32即可
3 这个是我在429调试中遇到的一个GUI刷位图慢的情况    现在还不知道是什么问题
  我购买的是429开发板+7寸RGB1024*600的屏
  使用例程自带的GUI刷全屏位图
  GUI_DrawBitmap(&bmpbuffer1,0,0);
bmpbuffer1是我申请的一个外部内存指针  1024*600*2字节大小   里面的数据是事先读取存储到SD卡的位图数据
这一句的下来的刷屏时间大约为1秒左右

而用我自己写的一个程序(调用的也是例程自带的打点函数)
子程序
//veryzhou程序
//显示位图
//x0起始横坐标 y0起始纵坐标
//x1结束横坐标 y1结束纵坐标
//PixelIndex 数据缓存
void LTDC_BITBMP_Display_(u16 x0,u16 y0,u16 x1,u16 y1,u8 *PixelIndex)
{
    u16 i,j;
    u8 *x;
    x=PixelIndex;
    for(j=y0;j<y1;j++)
    {
        for(i=x0;i<x1;i++)
        {
            //ltdc_lcd_framebuf[j]=*(__IO uint16_t*)(x);
            //LTDC_Draw_Point(i,j,*(__IO uint16_t*)(x));//这里如果能不调用他的打点函数将会很快
            *(u16*)((u32)ltdc_framebuf[/*lcdltdc.activelayer*/0]+/*lcdltdc.pixsize*/2*(lcdltdc.pwidth/*1024*/*j+i))=*(__IO uint16_t*)(x);
            x+=2;
        }
    }
}

调用方法为    LTDC_BITBMP_Display(0,0,1024,600,bmpbuffer1);
此时的刷屏时间为150ms左右(定时器计算的时间   开始时定时器计数清零  结束刷图后读计数值)

而后我把GUI调用的打点函数和Draw Bitmap 16 BPP函数都修改为我自己写的程序   位图还是刷的很慢基本还是1秒左右
由于无法进入GUI的刷位图的函数查看      

到目前为止还不知道为什么GUI刷图很慢   而我目前的项目要求刷图很快
不知道有没有大神给

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

使用道具 举报

3

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
123
金钱
123
注册时间
2015-4-27
在线时间
21 小时
 楼主| 发表于 2016-7-18 11:04:41 | 显示全部楼层
怎么发完帖子找不到重新编辑按钮    那位大神给答疑解惑一下
回复 支持 反对

使用道具 举报

3

主题

126

帖子

0

精华

高级会员

Rank: 4

积分
776
金钱
776
注册时间
2015-2-28
在线时间
251 小时
发表于 2016-7-18 14:54:51 | 显示全部楼层
veryzhou 发表于 2016-7-18 11:04
怎么发完帖子找不到重新编辑按钮    那位大神给答疑解惑一下

可以编辑的吧   回复后面应该有编辑的
回复 支持 反对

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2016-7-18
在线时间
9 小时
发表于 2016-7-18 15:44:16 | 显示全部楼层
整个逻辑个人理解,1--先判断上一次接收到的数据第15位是不是0x0a,如果&0x8000为0的话也就是接收没完成进入循环判断,2--进而判断if(USART_RX_STA&0x4000)也就是上一次接收到的数据第14位是否为1(是否为0x0d),如果是的话,进入循环,判断这一次接收的数据是否为0x0a,如果是的话接收就完成了,如果不是标志位就清0!!!,这个地方如果接收到的不是0x0a就清0了,也就是说接下来的数据又进行了重新判断,应该不会存在数据不完整吧,我按例子输入测试了下没丢数据,个人理解应该是没错吧
回复 支持 反对

使用道具 举报

37

主题

89

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
383
金钱
383
注册时间
2011-7-25
在线时间
31 小时
发表于 2016-8-30 11:46:52 | 显示全部楼层
你好, 请问你的GUI刷屏解决了没? 我也遇到同样的问题
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-28 07:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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