你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F334R8T6-NUCLEO小实验

[复制链接]
二宽 发布时间:2015-5-21 12:16
小弟初学者,0521一上午的成果
功能描述:STM32F334R8T6-NUCLEO开发板平台,使用USER按键为中断源,每按一下按键,LD2改变一下状态。
收藏 评论4 发布时间:2015-5-21 12:16

举报

4个回答
二宽 回答时间:2015-5-21 12:19:03
#include "stm32f30x.h"

#define uint unsigned int
#define uchar unsigned char


       
uint i,j,k;
uchar h=0;
void NVIC_Configuration ();
void GPIO_Configuration ();
int main()
{

        GPIO_Configuration ();
        NVIC_Configuration ();
         
   GPIO_SetBits(GPIOA, GPIO_Pin_5);
   while(1)
                        {
                               
                               
                        }
}


void NVIC_Configuration (void)
{
       
        NVIC_InitTypeDef   NVIC_Initstructure;
       
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
        NVIC_Initstructure.NVIC_IRQChannel=EXTI15_10_IRQn;
        NVIC_Initstructure.NVIC_IRQChannelPreemptionPriority=0;
        NVIC_Initstructure.NVIC_IRQChannelSubPriority=0;
        NVIC_Initstructure.NVIC_IRQChannelCmd=ENABLE;
        NVIC_Init(&NVIC_Initstructure);
}



   void GPIO_Configuration (void)
         {
                  GPIO_InitTypeDef GPIO_InitStructure;
                  EXTI_InitTypeDef EXTI_InitStructure;
                  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA|RCC_AHBPeriph_GPIOC, ENABLE);
                                 
                        GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_13;
                        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
                        //GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
                        //GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
                        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
                  GPIO_Init(GPIOC,&GPIO_InitStructure);
                 //GPIO_PinAFConfig(GPIOC, GPIO_PinSource13, GPIO_AF);
                 
                  GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_5;
                        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
                        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
                        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
                        //GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
                  GPIO_Init(GPIOA,&GPIO_InitStructure);

            RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
                  SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC, EXTI_PinSource13);
                        EXTI_InitStructure.EXTI_Line = EXTI_Line13;
                        EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
                        EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
                        EXTI_InitStructure.EXTI_LineCmd = ENABLE;
                        EXTI_Init(&EXTI_InitStructure);
                       
                       
         }
下面是中断服务函数  放在it.c中
void EXTI15_10_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line13)==1)
                {
       GPIO_WriteBit(GPIOA,GPIO_Pin_5,(BitAction)((1-GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_5))));
                         EXTI_ClearFlag(EXTI_Line13);
                }

}

二宽 回答时间:2015-5-21 12:19:21
  1. #include "stm32f30x.h"

  2. #define uint unsigned int
  3. #define uchar unsigned char


  4.        
  5. uint i,j,k;
  6. uchar h=0;
  7. void NVIC_Configuration ();
  8. void GPIO_Configuration ();
  9. int main()
  10. {
  11.    
  12.         GPIO_Configuration ();
  13.         NVIC_Configuration ();
  14.          
  15.    GPIO_SetBits(GPIOA, GPIO_Pin_5);
  16.    while(1)
  17.                         {
  18.                                
  19.                                
  20.                         }
  21. }


  22. void NVIC_Configuration (void)
  23. {
  24.        
  25.         NVIC_InitTypeDef   NVIC_Initstructure;
  26.        
  27.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
  28.         NVIC_Initstructure.NVIC_IRQChannel=EXTI15_10_IRQn;
  29.         NVIC_Initstructure.NVIC_IRQChannelPreemptionPriority=0;
  30.         NVIC_Initstructure.NVIC_IRQChannelSubPriority=0;
  31.         NVIC_Initstructure.NVIC_IRQChannelCmd=ENABLE;
  32.         NVIC_Init(&NVIC_Initstructure);
  33. }



  34.    void GPIO_Configuration (void)
  35.          {
  36.                   GPIO_InitTypeDef GPIO_InitStructure;
  37.                   EXTI_InitTypeDef EXTI_InitStructure;
  38.                   RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA|RCC_AHBPeriph_GPIOC, ENABLE);
  39.                                  
  40.                         GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_13;
  41.                         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
  42.                         //GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
  43.                         //GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  44.                         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  45.                   GPIO_Init(GPIOC,&GPIO_InitStructure);
  46.                  //GPIO_PinAFConfig(GPIOC, GPIO_PinSource13, GPIO_AF);
  47.                  
  48.                   GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_5;
  49.                         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
  50.                         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
  51.                         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  52.                         //GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  53.                   GPIO_Init(GPIOA,&GPIO_InitStructure);

  54.             RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
  55.                   SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC, EXTI_PinSource13);
  56.                         EXTI_InitStructure.EXTI_Line = EXTI_Line13;
  57.                         EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  58.                         EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
  59.                         EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  60.                         EXTI_Init(&EXTI_InitStructure);
  61.                        
  62.                        
  63.          }
  64. 下面是中断服务函数  放在it.c中
  65. void EXTI15_10_IRQHandler(void)
  66. {
  67. if(EXTI_GetITStatus(EXTI_Line13)==1)
  68.                 {
  69.        GPIO_WriteBit(GPIOA,GPIO_Pin_5,(BitAction)((1-GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_5))));
  70.                          EXTI_ClearFlag(EXTI_Line13);
  71.                 }

  72. }
复制代码
wasy 回答时间:2015-8-16 10:51:12
你好,刚接触st,前几天买了个跟你一样的板子,请问下这个开发板是在什么环境下开发的,keil吗?
星辰一方 回答时间:2015-8-16 11:45:33
wasy 发表于 2015-8-16 10:51
你好,刚接触st,前几天买了个跟你一样的板子,请问下这个开发板是在什么环境下开发的,keil吗?
...

keil+cubeMX,也可以只用keil,当然也可以IAR如果你习惯的话

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版