搞开发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刷图很慢 而我目前的项目要求刷图很快
不知道有没有大神给
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>