OpenEdv-开源电子网

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

关于通过简单的软件方式判断上升沿的问题

[复制链接]

8

主题

31

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2021-10-9
在线时间
57 小时
发表于 2023-2-21 16:52:09 | 显示全部楼层 |阅读模式
11金钱
代码执行会卡死,把while(SYNC==RESET);注释就不会卡着

#define SYNC GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_3)

//PB3的初始化
void SYNC_init(void)
{
        GPIO_InitTypeDef GPIO_InitStruct;
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
       
        GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN_FLOATING;//GPIO_Mode_AIN
        GPIO_InitStruct.GPIO_Pin=GPIO_Pin_3;
       
        GPIO_Init(GPIOB,&GPIO_InitStruct);
       
        //GPIO_ResetBits(GPIOB,GPIO_Pin_3);
}


void EXTI15_10_IRQHandler(void)
{
        int i;
        float VoltsX;
       
       
        //加入一个等待同步的过程//
        if(SYNC==0)
        {
                while(SYNC==RESET);//等SYNC变高
               
                for(i=0;i<1000;i++)
                {
                        Ch_Buf[i] = ADS1256ReadData();
                }
       
                for(i=0;i<1000;i++)
                {
                        VoltsX =Ch_Buf[i]*0.000000598;       
                        printf("%.6f \r\n",VoltsX);
                }
               
                EXTI_ClearITPendingBit(EXTI_Line12);
        }
        else //sync=1
        {
                while(SYNC!=RESET);//等SYNC变低
                while(SYNC==RESET);//等SYNC变高
                       
                for(i=0;i<1000;i++)
                {
                        Ch_Buf[i] = ADS1256ReadData();
                }

                for(i=0;i<1000;i++)
                {
                        VoltsX =Ch_Buf[i]*0.000000598;       
                        printf("%.6f \r\n",VoltsX);
                }
                       
                EXTI_ClearITPendingBit(EXTI_Line12);
        }
               
}

最佳答案

查看完整内容[请看2#楼]

卡死时SYNC是什么电平? 建议不要在中断里运行太长时间的代码。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

3281

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8206
金钱
8206
注册时间
2020-5-11
在线时间
3700 小时
发表于 2023-2-21 16:52:10 | 显示全部楼层
卡死时SYNC是什么电平?
建议不要在中断里运行太长时间的代码。
专治疑难杂症
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 16:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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