湖南大学 嵌入式开发与应用(张自红)习题答案及模拟试题.pdfVIP

  • 1
  • 0
  • 约5.65万字
  • 约 29页
  • 2026-01-17 发布于河北
  • 举报

湖南大学 嵌入式开发与应用(张自红)习题答案及模拟试题.pdf

第一章:无

第二章:无

第三章:

1、参照“STM32参考手册中文.PDF”手册,直接操作寄存器的方法控制10的灯空灭。

如:#definedigitalHi(pJ){p-SRR=i;},利用宏定义,输出为高电平函数。输出反转状态:

#definedigitalToggle(pj){p-ODRA=i;}

答:主函数:

intmain(void)

(

Stm32_Clock_lnit(9)

delay_init(72);

LED_lnit{);

while(l)

(

LEDO=O;

delay_ms(300);

LEDO=1;

delay_ms(300);

}

)

LED头文件定义:

^definePout(n)IT_ADDR(GPIO_ODR_Addr,n)

^defineITAND(addr,bitrum){(addrOxFOOOOOOO)+Ox20000QO+((addr0xFFFFF)«5)+(bitnum«2))

#defineMEMADDR(addr)*((volatileunsignedlong*)(addr))

#defineIT_ADDR(addr,bitnum)MEM_ADDR(ITAND(addr,bitnum))

#defineLEDOPout(5)//DSO

voidLtD_lmt(void);//

2、开发板中的按键为何需要做两次电平判断?

答:机械按键波形图,如下所示:

如何消去按键抖动,一般通过定时器或者延时函数延时10ms左右,则程序可以跳过按

键的抖动范围。

第四章:

1、如果修改SysTick的中断优先级?

答:在SysTick的初始化函数里调用SysTick的配置函数SysTick_Config,其内部有中断优

先设置函数,通过设置_NVIC_PRIO_BITS值完成优先级的设置。代码如下:

voidSysTick_lnit(void)

(

if(SysTick_Config(SystemCoreClock100000)){while(1).}

SysTick-CTRL=~SysTick_CTRL_FNARLF_Msk;

}

static_INLINEuint32_tSysTick_Config(uint32_tticks)

(

if(ticksSysTick_LOAD_RELOAD_Msk)return(1);*Reloadvalueimpossible*

SysTick-LOAD=(ticksSysTick_LOAD_RELOAD_Msk)-1;*setreloadregister*

NVIC_SetPriority(SysTicMRQn,(1«_NVIC_PRIO_BITS)-1);*setPriorityInterrupts7

SysTick-VAL=0;*LoadtheSysTickCounterValuex

文档评论(0)

1亿VIP精品文档

相关文档