1. main函数里执行LCD_Clear(LIGHTBLUE),将LCD画成LIGHTBLUE颜 {MOD};
2. 按照定时器中断例子,main函数初始化Tim3: Timerx_Init(5000,7199);
3. 中断处理函数 void TIM3_IRQHandler(void)
{
if(TIM3->SR&0X0001)//溢出中断
{
LCD_ShowString(40, 40, "Tim3");
}
TIM3->SR&=~(1<<0);//清除中断标志位
}
4. main函数
int main(void)
{
Stm32_Clock_Init(9);//系统时钟设置
delay_init(72); //延时初始化
LCD_Init();
LCD_Clear(LIGHTBLUE);
Timerx_Init(5000,7199);
while(1)
{
LCD_ShowString(20, 20, "Main");
}
}
现在出现的状况是Timer里显示的"Tim3"字串周围有很多杂点。
这是什么原因啊?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
1. 单独在main里面调用LCD_ShowString(40, 40, "Tim3");
会有杂点么?
***单独调用不会有杂点
2. 如果main里的LCD_ShowString(20, 20, "Main");不是while(1)循环,也不会有杂点
3. 我的理解:main里的LCD_ShowString(20, 20, "Main");与Tim3的LCD_ShowString(40, 40, "Tim3"); 是属于不同的时钟线程。
如果两者同时drawpiont画同一个点,可能有问题。但是我现在画的一个是从(20,20)开始,另一个是(40,40)开始,一定不会有重合的点啊。为什么会有状况呢?
4. 另外,杂点出现的位置是有规律的。LCD_ShowString(40, 40, "Tim3"); 是从(40,40)开始,高16个点,宽8*4=32个点,画的是(40,40)到(72,56)的区域。
我发现杂点都是出现在(72, Y),(X, 56)的两条直线上。真是奇怪啊。
我看了LCD_DrawPoint的函数内容,是一个点一个点画的,怎么会影响的其他的位置的?
一周热门 更多>