4512|7

9

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

课程设计题,菜鸟紧急求助,希望各位大侠帮忙 [复制链接]

初学嵌入式系统,遇到问题,请各位大侠不吝赐教:
编程完成,只写出关键模块的程序:
(1).课程设计题:STM32的PD4接按键,PE4接LED灯,要求使用查询方式读取按键PD4高低电平的变化,当PD4=1,即高电平时,PE4所连接的LED灯点亮;当PD4=0,即低电平时,该LED熄灭;
(2).课程设计题:使用PC11设置为外部中断源完成上小题(1)的功能,即PC11接按键,产生中断,PD4接LED灯,当按键按下产生中断时,该LED点亮;没有按键按下时熄灭。
(3).课程设计题:写出使用Timer3产生18kHz, 35%占空比PWM输出的主要程序段。
此帖出自stm32/stm8论坛

最新回复

GPIO配置及按键扫描类似1题,以下为外部中断配置和中断服务程序的大体框架 u8 KeyValue; /* * 函数名:EXTI_PC11_Config * 描述  :配置 PC11 为线中断口,并设置中断优先级 * 输入  :无 * 输出  :无 * 调用  :外部调用 */ void EXTI_PE5_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; /* config the extiline(PC11) clock and AFIO clock */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO,ENABLE);              /* config the NVIC(PC11) */ NVIC_Configuration(); /* EXTI line gpio config(PC11) */   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;  // 上拉输入   GPIO_Init(GPIOC, &GPIO_InitStructure); /* EXTI line(PC11) mode config */ GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource11);   EXTI_InitStructure.EXTI_Line = EXTI_Line11;   EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;   EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //下降沿中断   EXTI_InitStructure.EXTI_LineCmd = ENABLE;   EXTI_Init(&EXTI_InitStructure); } KeyValue=KeyScan(GPIOC,CPIO_PIN_11); void EXTI11_IRQHandler(void) { if(!KeyValue) //按键按下产生了EXTI Line中断 {   //控制 LED亮灭,取决于LED高低电平点亮方式,此处用低电平点亮   GPIO_WriteLow(GPIOD, GPIO_Pin_4);   EXTI_ClearITPendingBit(EXTI_Line11);     //清除中断标志位 }   }  详情 回复 发表于 2013-9-27 16:50
点赞 关注
 

回复
举报

4008

帖子

0

TA的资源

版主

沙发
 
(1)高级一点的
#define Dev_GetBit_BB(DevAddr, BitNumber)         (*(vu32 *)(DEV_BB_BASE|((DevAddr - DEV_BASE)<<5)|((BitNumber)<<2)))
gpiod,gpioe时钟...
Dev_GetBit_BB(((u32)&(GPIOE->ODR)),4)=Dev_GetBit_BB(((u32)&(GPIOD->IDR)),4);//不知道led共阳还是共阴
...

(2)gpioc,gpiod时钟;nvic配置中断;中断服务里上面那段...

(3)定时器时钟;定时器计时配置;定时器通道配置;通道赋值...
此帖出自stm32/stm8论坛

点评

非常感谢您的回复,我是初学,这是考试题能否详细点,谢谢  详情 回复 发表于 2013-9-26 10:32
 
 

回复

9

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

回复 沙发huo_hu 的帖子

非常感谢您的回复,我是初学,这是考试题能否详细点,谢谢
此帖出自stm32/stm8论坛
 
 

回复

136

帖子

406

TA的资源

一粒金砂(高级)

4
 
/*
* 函数名:GPIO_Config
* 描述  :配置LED用到的I/O口
* 输入  :无
* 输出  :无
*/
void GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOE, ENABLE);
  GPIO_InitStructure.GPIO_Pin =GPIO_Pin_4 ;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;      
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOE, &GPIO_InitStructure);

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);
  GPIO_InitStructure.GPIO_Pin =GPIO_Pin_4 ;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;      
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOD, &GPIO_InitStructure);
}
u8 Key_Scan(GPIO_TypeDef* GPIOx,u16 GPIO_Pin)
{   
  /*检测是否有按键按下 */
    if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == 0)
   {   
    /*延时消抖*/
    Delay(10000);  
      if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == 0)  
     {  
      /*等待按键释放 */
      while(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == 0);   
       return  0;  
     }
   else
     return 1;
  }
else
  return 1;
}
此帖出自stm32/stm8论坛

点评

第二小题的答案您有空能否帮忙解决 谢谢  详情 回复 发表于 2013-9-26 16:10
非常感谢,三克油  详情 回复 发表于 2013-9-26 15:34
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(初级)

5
 

回复 4楼victory0702 的帖子

非常感谢,三克油
此帖出自stm32/stm8论坛
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(初级)

6
 

回复 4楼victory0702 的帖子

第二小题的答案您有空能否帮忙解决 谢谢
此帖出自stm32/stm8论坛
 
 
 

回复

136

帖子

406

TA的资源

一粒金砂(高级)

7
 
GPIO配置及按键扫描类似1题,以下为外部中断配置和中断服务程序的大体框架
u8 KeyValue;
/*
* 函数名:EXTI_PC11_Config
* 描述  :配置 PC11 为线中断口,并设置中断优先级
* 输入  :无
* 输出  :无
* 调用  :外部调用
*/
void EXTI_PE5_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
/* config the extiline(PC11) clock and AFIO clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO,ENABLE);
            
/* config the NVIC(PC11) */
NVIC_Configuration();
/* EXTI line gpio config(PC11) */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;      
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;  // 上拉输入
  GPIO_Init(GPIOC, &GPIO_InitStructure);
/* EXTI line(PC11) mode config */
GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource11);
  EXTI_InitStructure.EXTI_Line = EXTI_Line11;
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //下降沿中断
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);
}

KeyValue=KeyScan(GPIOC,CPIO_PIN_11);

void EXTI11_IRQHandler(void)
{
if(!KeyValue) //按键按下产生了EXTI Line中断
{
  //控制 LED亮灭,取决于LED高低电平点亮方式,此处用低电平点亮
  GPIO_WriteLow(GPIOD, GPIO_Pin_4);
  EXTI_ClearITPendingBit(EXTI_Line11);     //清除中断标志位
}  
}
此帖出自stm32/stm8论坛

点评

太感谢了  详情 回复 发表于 2013-9-28 15:13
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(初级)

8
 

回复 7楼victory0702 的帖子

太感谢了
此帖出自stm32/stm8论坛
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表