OpenEdv-开源电子网

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

奇怪的问题

[复制链接]

49

主题

110

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
477
金钱
477
注册时间
2012-9-17
在线时间
0 小时
发表于 2012-11-13 16:19:39 | 显示全部楼层 |阅读模式
今天我写程序如下:
    //设备初始化结束
    while(1)
    {
        TFT_show_hz40x40_string(160,0,dev_name[Devp->dev_id],W_COLOR,BL_COLOR);
        TFT_show_string40x40(160,40,Devp->volt,W_COLOR,BL_COLOR);
        TFT_show_string40x40(160,80,Devp->slaved,W_COLOR,BL_COLOR);
        TFT_show_string40x40(160,120,Devp->used,W_COLOR,BL_COLOR);
        TFT_show_string40x40(160,160,Devp->date,W_COLOR,BL_COLOR);
        systick_delay_ms(72,1000);
        Devp = Devp->next;
        if(Devp == (void*)0) Devp=Head;
    }
其中我用了外部按键中断,但是我发现,程序运行后串口1就不能发数据了(按键中断发送串口数据)
    //KEY2
void EXTI3_IRQHandler(void)
{
    u32 temp;
    while((temp++)<360000);    //粗略延时
    //KEY2
    if(!(GPIOA->IDR & (1<<3)))
    {
        uart1_send_string("key2\r\n");
    }
    EXTI->R |= (1<<3);    //清除KEY2挂起标志   
}
中断可以正常进入
后来把 systick_delay_ms(72,1000);这个函数去了,就没事了。。。
这个函数代码如下

void systick_delay_ms(unsigned char HCLK,unsigned int MS)
{
    unsigned char count_us;
    unsigned int temp;
    SysTick->CTRL =0x00; //选择外部时钟。作为时钟源。并且不产生中断动作,计数不开始
    count_us = HCLK/8;
    //上面的代码确定延时参数。这些代码,这些代码可以放到单独的函数初始化。把count_us count_ms
    //作为全局变量
    //来操作

    MS = MS*count_us*1000;    
    SysTick->LOAD = MS;
    SysTick->VAL=0;    
    SysTick->CTRL |= 0x01;
    do{
         temp = SysTick->CTRL;
    }
    while((temp & (1<<16))==0 &&(temp & 0x01));
    //等待计数到0。等到过程中必须时刻判断定时器在工作,
    //防止中断程序中调用延时使得计数终止。死循环
    SysTick->CTRL =0x00;//SysTick停止计数
    SysTick->VAL=0X00;//更新计数器值

}
我也没发现那里和串口1有关系啊。。。。。。怎么回事啊。奇怪死了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

49

主题

110

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
477
金钱
477
注册时间
2012-9-17
在线时间
0 小时
 楼主| 发表于 2012-11-13 16:35:48 | 显示全部楼层
回复【楼主位】jiaduo:
---------------------------------
后来把串口助手关了。重新开了一下,又好了。神伤了。貌似那里都没动啊
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2012-11-13 16:39:05 | 显示全部楼层
解决了就好。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-3-1 05:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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