void search(char ISBN,struct book *link)
{
int h=0;
struct book *p1;
p1=link->next;
while(p1)
{
if(strcmp(p1->ISBN,ISBN)==0)
{
h=1;
printf("ISBN号:%s\n",ISBN);
printf("书名:%s\n",p1->name);
printf("作者:%s\n",p1->writer);
printf("出版社:%s\n",p1->press);
printf("出版日期:%d年%d月%d日\n",p1->date[0],p1->date[1],p1->date[2]);
printf("价格:%.2lf\n",p1->price);
break;
}
p1=p1->next;
}
if(h==0)
printf("该图书不存在!");
}
ISBN是字符串,应该用ISBN[20]或*ISBN,是我脑子抽了😂
你的主程序怎么调用的
你想问什么?是想直接结束程序,还是不想结束程序
首先,看看一个定时器一个通道下的输入捕获实验
main.c
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
#include "timer.h"
#include "sys.h"
#include "key.h"
//ALIENTEK Mini STM32开发板范例代码1
//跑马灯实验
//技术支持:www.openedv.com
//广州市星翼电子科技有限公司
extern u8 TIM2CH1_CAPTURE_STA;
extern u16 TIM2CH1_CAPTURE_VAL;
int main(void)
{
u32 t,temp=0;
Stm32_Clock_Init(9); //系统时钟设置
uart_init(72,9600);
delay_init(72); //延时初始化
LED_Init(); //初始化与LED连接的硬件接口
TIM2_Cap_Init(0XFFFF,72-1);
while(1)
{
if(TIM2CH1_CAPTURE_STA&0X80)
{
temp=TIM2CH1_CAPTURE_STA&0X3F;
temp*=65536;
temp+=TIM2CH1_CAPTURE_VAL;
printf("HIGH:%d us\r\n",temp);
TIM2CH1_CAPTURE_STA=0;
}
}
}
timer.c
#include "timer.h"
#include "led.h"
void TIM2_Cap_Init(u16 arr,u16 psc)
{
RCC->APB1ENR|=1<<0;
RCC->APB2ENR|=1<<2;
GPIOA->CRL&=0XFFFFFFF0;
GPIOA->CRL|=0X00000008;
GPIOA->ODR|=0<<0;
TIM2->ARR=arr;
TIM2->PSC=psc;
TIM2->CCMR1|=1<<0;
TIM2->CCMR1|=1<<4;
TIM2->CCMR1|=0<<10;
TIM2->CCER|=0<<1;
TIM2->CCER|=1<<0;
TIM2->DIER|=1<<1;
TIM2->DIER|=1<<0;
TIM2->CR1|=0x01;
MY_NVIC_Init(2,0,TIM2_IRQn,2);
}
u8 TIM2CH1_CAPTURE_STA=0;
u16 TIM2CH1_CAPTURE_VAL;
void TIM2_IRQHandler(void)
{
u16 tsr;
tsr=TIM2->SR;
if((TIM2CH1_CAPTURE_STA&0X80)==0)
{
if(tsr&0X01)
{
if(TIM2CH1_CAPTURE_STA&0X40)
{
if((TIM2CH1_CAPTURE_STA&0X3F)==0X3F)
{
TIM2CH1_CAPTURE_STA|=0X80;
TIM2CH1_CAPTURE_VAL=0XFFFF;
}else TIM2CH1_CAPTURE_STA++;
}
}
if(tsr&0x02)
{
if(TIM2CH1_CAPTURE_STA&0X40)
{
TIM2CH1_CAPTURE_STA|=0X80;
TIM2CH1_CAPTURE_VAL=TIM2->CCR1;
TIM2->CCER&=~(1<<1);
}else
{
TIM2CH1_CAPTURE_VAL=0;
TIM2CH1_CAPTURE_STA=0X40;
TIM2->CNT=0;
TIM2->CCER|=1<<1;
}
}
}
TIM2->SR=0;
}
这里就不详细赘述了,各个手册和资料记录的也十分详细,一个通道下的输入捕获也是比较简单。