在编译无错是,怎么解决代码不运行的问题

算我错了 2019-06-24 02:05:44

代码卡在这下不去了



stm32开发板 stm32__103VC
大学生实训 超声波和温湿度的测试 并在LCD显示


链接: https://pan.baidu.com/s/1ry2yIM7TdJwBJ3eyqkYUNA 提取码: 6cxx
代码 求大腿解决一下
...全文
145 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
算我错了 2019-06-24
  • 打赏
  • 举报
回复
#include "csb.h"
#include "ledkey.h"
#include "delay.h"
#include <stm32f10x.h>
#include "usartt.h"
#include "time3.h"
#include "timer.h"

int overcount=0;
void NVIC_Config(void)//ÉèÖÃÖжÏÓÅÏȼ¶
{
NVIC_InitTypeDef NVIC_InitStructer;

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

NVIC_InitStructer.NVIC_IRQChannelPreemptionPriority=0;
NVIC_InitStructer.NVIC_IRQChannelSubPriority=0;
NVIC_InitStructer.NVIC_IRQChannel=TIM4_IRQn;
NVIC_InitStructer.NVIC_IRQChannelCmd=ENABLE;

NVIC_Init(&NVIC_InitStructer);
}


void CH_SR04_Init(void)//³õʼ»¯Ä£¿éµÄGPIOºÍTIM4¼ÆʱÆ÷
{
GPIO_InitTypeDef GPIO_InitStructer;
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructer;

RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE);
//RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);


GPIO_InitStructer.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructer.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructer.GPIO_Pin=GPIO_Pin_5;
GPIO_Init(GPIOA, &GPIO_InitStructer);


GPIO_InitStructer.GPIO_Mode=GPIO_Mode_IN_FLOATING;
GPIO_InitStructer.GPIO_Pin=GPIO_Pin_6;
GPIO_Init(GPIOA, & GPIO_InitStructer);

GPIO_ResetBits(GPIOA, GPIO_Pin_5);
GPIO_ResetBits(GPIOA, GPIO_Pin_6);

//TIM_DeInit(TIM4);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);//TIM4¹Òµ½APB1
TIM_TimeBaseInitStructer.TIM_Period=1000-1;
TIM_TimeBaseInitStructer.TIM_Prescaler=72-1;
TIM_TimeBaseInitStructer.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseInitStructer.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM4,&TIM_TimeBaseInitStructer);

TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE);
NVIC_Config();
TIM_SetCounter(TIM4,0);//ÇåÁã
TIM_Cmd(TIM4,DISABLE);

}

float Jisuan_Juli (void)
{

float length=0,sum=0;
u32 tim;
int i=0;
while(i!=5)//¼ÆËãÎå´Î²âÁ¿Æ½¾ùÖµ
{
GPIO_SetBits(GPIOA,GPIO_Pin_5);

Delay_us(20);
//Delay_us(20);
GPIO_ResetBits(GPIOA,GPIO_Pin_5);//ResetBits
//printf("123");
while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_6)==0);
TIM_Cmd(TIM4,ENABLE);//ENABLE
//printf("k");
//overcount=0;
while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_6)==1);
TIM_Cmd(TIM4,DISABLE);//DISABL
//printf("g");
tim=TIM_GetCounter(TIM4);
//printf("TIM=%d\n",tim);
length=(tim+overcount*1000)/58.8;
sum=length+sum;
TIM_SetCounter(TIM4,0);
//TIM4->CNT=0; //TIM4¼ÆÊýÆ÷ÇåÁã
overcount=0; //ÖжÏÒç³ö´ÎÊýÇåÁã
i++;
Delay_ms(10);

}
length=sum/5;
//printf("%fÀåÃ×\n",length);
return length;
}






void TIM4_IRQHandler(void)
{
if(TIM_GetITStatus(TIM4,TIM_IT_Update)!=RESET)

{
TIM_ClearITPendingBit(TIM4,TIM_IT_Update);
overcount++;
}
}
forget345 2019-06-24
  • 打赏
  • 举报
回复
jisuan_juli() 单步不进去是吗,单步调试图,和这个函数的源码贴出来。不然鬼知道哪里有问题
算我错了 2019-06-24
  • 打赏
  • 举报
回复
在具体实验程序时
具体在 PM=Jisuan_Juli() 时没有进行 具体为什么就不清楚了
forget345 2019-06-24
  • 打赏
  • 举报
回复
单步 ,看看具体卡到哪里

27,373

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧