写一个程序,串口收到图片,利用STemWin显示图片。程序先初始化GUI,然后进入主体,存放图片的大小设为64K.
刚开始我是直接申请了一个大数组,能完成接收和显示,但是后来考虑到数组太大,考虑到可能由于数组太大的缘故,
就尝试malloc和free函数处理一下,具体程序见下,但是调试时malloc怎么也申请不成功,总是进入GUI_Delay(1000)
我用的是
STM32F429DISCOVERY,看手册片上256K,还有64MBit片外SDRAM,应该够用吧,请教一下是为什么?
uint8_t * databuf;
databuf = (uint8_t *)malloc(63354*sizeof(uint8_t));
if(databuf == NULL){
GUI_Delay(1000);
}
HAL_UART_Receive_DMA(&Uart6Handle, databuf, 63354);
while(1){
if(UART_RECV_STA == 6){
UART_RECV_STA=0;
GUI_BMP_Draw(databuf,50,40);
break;
}
GUI_Delay(100);
}
全局变量,堆和栈空间全部定义到外部SRAM的方法和一个配套例子
局部变量应该在默认在栈中,你参考上面的例子修改下看行不行,我没有实测过。
一周热门 更多>