【汉字显示】【指针】多次调用显示汉字的函数之后汉字显示乱码问题

2019-07-21 00:37发布

小弟使用原子哥的Show_Str函数显示汉字,使用原来的字库,使用指针传递要显示的内容。

使用过程中,前几次操作没问题,多次操作后就会出现汉字显示为乱码(其实也不算是乱码,类似方块的显示)

附上函数和出现问题的图片,求各位指点。

对了,开发板用的是精英STM32F103ZET6开发板。 [mw_shl_code=c,true]void LCD_Button(u16 sx,u16 sy,u16 ex,u16 ey,u16 r,u16 color,u16 ncolor,u8* str,u8 width) { u16 wx,wy,temp; u8* name; name=(u8*)mymalloc(SRAMIN,200); name=str; temp=POINT_COLOR; wx=sx+(ex-sx-width)/2; wy=sy+(ey-sy-16)/2; LCD_FillRound(sx,sy,ex,ey,r,color); POINT_COLOR=ncolor; Show_Str(wx,wy,width,16,name,16,1); myfree(SRAMIN,name); POINT_COLOR=temp; }[/mw_shl_code]


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
FreeRTOS
1楼-- · 2019-07-21 04:06
你是跑了系统吧?如果多个任务里都有调用写屏幕操作的话,一定要给这个操作加一个互斥锁,否则在1任务写屏过程当中,有可能被2任务抢占并执行另一个写屏操作,最后返回1任务时就错乱了,我的解决方法就像刚才说的那样,加个互斥锁,类似打印机那样排队等待获取写屏幕的权限
井底观天
2楼-- · 2019-07-21 07:47
回复【2楼】FreeRTOS:
---------------------------------
应该不是这个问题,并没有其他写屏幕的中断。我重复点上十几次就会出现这个问题。
不过直接调用显示文字的函数没有问题,我觉得是这个函数的问题。可能传递过程中这个指针出了什么错。
Theone
3楼-- · 2019-07-21 13:21
 精彩回答 2  元偷偷看……
井底观天
4楼-- · 2019-07-21 18:19
 精彩回答 2  元偷偷看……
guset_03
5楼-- · 2019-07-21 22:09
你更新一下字库试一下罗
Theone
6楼-- · 2019-07-21 22:17
 精彩回答 2  元偷偷看……

一周热门 更多>