测试STM32--点亮一个led

PC13口输出低电平,点亮led

  • 使能外设时钟

  • 初始化GPIO端口

  • 设置输出高低电平

#include "stm32f10x.h"                  // Device header
​
int main(void)
{
    //使能外设时钟
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
    
    //初始化GPIO端口
    GPIO_InitTypeDef GPIO_InitStructure;
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13;
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_Init(GPIOC,&GPIO_InitStructure);
    
    //设置输出高低电平
//  GPIO_SetBits(GPIOC,GPIO_Pin_13);
    GPIO_ResetBits(GPIOC,GPIO_Pin_13);
    while(1)
    {
        
    }
}

外设时钟使能函数

void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState)

/**
  * @brief  Enables or disables the High Speed APB (APB2) peripheral clock.
  * @param  RCC_APB2Periph: specifies the APB2 peripheral to gates its clock.
  *   This parameter can be any combination of the following values:
  *     @arg RCC_APB2Periph_AFIO, RCC_APB2Periph_GPIOA, RCC_APB2Periph_GPIOB,
  *          RCC_APB2Periph_GPIOC, RCC_APB2Periph_GPIOD, RCC_APB2Periph_GPIOE,
  *          RCC_APB2Periph_GPIOF, RCC_APB2Periph_GPIOG, RCC_APB2Periph_ADC1,
  *          RCC_APB2Periph_ADC2, RCC_APB2Periph_TIM1, RCC_APB2Periph_SPI1,
  *          RCC_APB2Periph_TIM8, RCC_APB2Periph_USART1, RCC_APB2Periph_ADC3,
  *          RCC_APB2Periph_TIM15, RCC_APB2Periph_TIM16, RCC_APB2Periph_TIM17,
  *          RCC_APB2Periph_TIM9, RCC_APB2Periph_TIM10, RCC_APB2Periph_TIM11     
  * @param  NewState: new state of the specified peripheral clock.
  *   This parameter can be: ENABLE or DISABLE.
  * @retval None
  */

GPIO初始化函数

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)

​
typedef enum
{ GPIO_Mode_AIN = 0x0,
  GPIO_Mode_IN_FLOATING = 0x04,
  GPIO_Mode_IPD = 0x28,
  GPIO_Mode_IPU = 0x48,
  GPIO_Mode_Out_OD = 0x14,
  GPIO_Mode_Out_PP = 0x10,
  GPIO_Mode_AF_OD = 0x1C,
  GPIO_Mode_AF_PP = 0x18
}GPIOMode_TypeDef;
​
​
typedef enum
{ 
  GPIO_Speed_10MHz = 1,
  GPIO_Speed_2MHz, 
  GPIO_Speed_50MHz
}GPIOSpeed_TypeDef;
​
​
/** @defgroup GPIO_pins_define 
  * @{
  */
​
#define GPIO_Pin_0                 ((uint16_t)0x0001)  /*!< Pin 0 selected */
#define GPIO_Pin_1                 ((uint16_t)0x0002)  /*!< Pin 1 selected */
#define GPIO_Pin_2                 ((uint16_t)0x0004)  /*!< Pin 2 selected */
#define GPIO_Pin_3                 ((uint16_t)0x0008)  /*!< Pin 3 selected */
#define GPIO_Pin_4                 ((uint16_t)0x0010)  /*!< Pin 4 selected */
#define GPIO_Pin_5                 ((uint16_t)0x0020)  /*!< Pin 5 selected */
#define GPIO_Pin_6                 ((uint16_t)0x0040)  /*!< Pin 6 selected */
#define GPIO_Pin_7                 ((uint16_t)0x0080)  /*!< Pin 7 selected */
#define GPIO_Pin_8                 ((uint16_t)0x0100)  /*!< Pin 8 selected */
#define GPIO_Pin_9                 ((uint16_t)0x0200)  /*!< Pin 9 selected */
#define GPIO_Pin_10                ((uint16_t)0x0400)  /*!< Pin 10 selected */
#define GPIO_Pin_11                ((uint16_t)0x0800)  /*!< Pin 11 selected */
#define GPIO_Pin_12                ((uint16_t)0x1000)  /*!< Pin 12 selected */
#define GPIO_Pin_13                ((uint16_t)0x2000)  /*!< Pin 13 selected */
#define GPIO_Pin_14                ((uint16_t)0x4000)  /*!< Pin 14 selected */
#define GPIO_Pin_15                ((uint16_t)0x8000)  /*!< Pin 15 selected */
#define GPIO_Pin_All               ((uint16_t)0xFFFF)  /*!< All pins selected */

GPIO输出高低电平函数

/**
  * @brief  Sets the selected data port bits.
  * @param  GPIOx: where x can be (A..G) to select the GPIO peripheral.
  * @param  GPIO_Pin: specifies the port bits to be written.
  *   This parameter can be any combination of GPIO_Pin_x where x can be (0..15).
  * @retval None
  */
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
​
​
/**
  * @brief  Clears the selected data port bits.
  * @param  GPIOx: where x can be (A..G) to select the GPIO peripheral.
  * @param  GPIO_Pin: specifies the port bits to be written.
  *   This parameter can be any combination of GPIO_Pin_x where x can be (0..15).
  * @retval None
  */
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: STM32-ISO是一种特殊的STM32微控制器系列,其设计用于在噪声环境下提供高级别的电气隔离。这种电气隔离机制可以防止电感耦合、电容耦合和共模干扰等问题,从而增强系统的稳定性和可靠性。 使用零角度玩STM32-ISO,首先需要了解STM32-ISO的特点和功能。这些特点包括:双核设计、电气隔离技术、安全表面和故障保护等。双核设计使得STM32-ISO同时具备应用处理器和实时核,可以分别处理不同种类的任务,提高系统性能。电气隔离技术则确保信号在不同部分之间传输时不会相互干扰。安全表面保护系统免受未经授权的访问和攻击。故障保护机制可以防止系统在电气隔离失效时毁坏。 零角度玩STM32-ISO可以通过以下步骤实现: 1. 学习STM32-ISO的技术文档和参考手册,了解其硬件结构、内部模块和功能特性。同时要熟悉相关的开发工具和软件。 2. 了解使用STM32-ISO的典型应用场景。根据自己的需求,选择适合的开发板和模块。 3. 使用STM32CubeMX等工具进行代码生成和项目配置。根据实际应用需求,选择合适的外设模块和接口,配置GPIO、串口、定时器等功能。 4. 编写应用程序代码。使用C语言或其他支持的编程语言,结合STM32的开发库和驱动程序,实现特定的功能和算法。 5. 调试和测试应用程序。使用调试器或仿真器连接开发板,逐步调试代码并验证功能的正确性和稳定性。 6. 进一步优化和完善应用程序。根据测试结果和实际应用反馈,修复bug、改进性能或增加新功能。 通过以上步骤,我们可以全面了解STM32-ISO的特性,并在零角度上进行开发。这样能够最大限度地发挥STM32-ISO的性能优势,且保证系统的稳定性和可靠性,为特定的应用问题提供解决方案。 ### 回答2: STM32-ISO是一种基于ST Microelectronics的STM32微控制器的开发板,它专门设计用于开发与隔离有关的应用。隔离是指在电气和功能上分离电气系统的一种技术,以提高系统的安全性和可靠性。 使用STM32-ISO,可以便捷地实现对外部设备的隔离,从而保护主控器和其他关键部件免受电气干扰、过电压和过电流等问题的影响。这可以在很多应用场景中派上用场,比如工业自动化、医疗仪器、电力系统等。 要零角度玩STM32-ISO开发板,首先需要了解其硬件和软件特性。硬件方面,STM32-ISO集成了隔离电源电路和可编程逻辑电源电路,以分离主控器和外部设备。它还提供了丰富的接口,包括GPIO、I2C、SPI、UART等,方便与其他设备进行通信。 在软件方面,可以使用STM32Cube软件开发套件来编写代码。STM32Cube提供了丰富的开发工具和例程,可以帮助开发者快速上手。此外,还可以使用Keil MDK或者IAR Embedded Workbench等集成开发环境来进行开发。 零角度玩STM32-ISO可以从简单的实验开始,比如点亮LED灯。可以配置GPIO口为输出模式,并将其连接到板上的LED灯。通过编写相应的代码,可以控制LED灯的亮灭。 对于更复杂的应用,可以结合不同的外设模块,如传感器和执行器,同时进行阻隔控制和数据通信。例如,可以使用I2C接口与温度传感器进行通信,并将读取到的温度数据显示在液晶显示屏上。 总结而言,要零角度玩STM32-ISO,首先需要熟悉开发板的硬件和软件特性,然后通过简单的实验来熟悉开发流程。逐渐加深对开发板的理解,探索更多的应用场景,并结合外设进行更复杂的控制和通信操作。请开发者尝试使用STM32-ISO来实现自己感兴趣的项目,并通过不断学习和实践,进一步提高技术水平。 ### 回答3: STMicroelectronics的STM32系列是一款广泛应用于嵌入式系统的32位微控制器,具有高性能、低功耗和强大的扩展能力。而STM32-ISO则是基于STM32系列的特殊版本,能够实现隔离和保护,提供高级别的抗干扰能力和可靠性。 首先,STM32-ISO采用了进一步优化的硬件设计,以实现电气隔离,即通过在电路中添加隔离层来避免信号干扰和电气噪声的影响。这样可以确保系统在电气噪声较大的环境中仍能正常工作。 其次,STM32-ISO还配备了特殊的接口电路和通信协议,以实现与外部设备之间的隔离和保护。这些接口包括CAN总线、UART、SPI等,能够使STM32-ISO与其他设备进行安全可靠的通信。 另外,STM32-ISO还具备高级别的抗干扰能力,能够有效地抵御来自外界的电磁干扰和电气噪声。这是通过在电路设计中采用抗干扰措施和高质量的隔离材料来实现的。 最后,STM32-ISO支持丰富的软件开发工具和资源。开发者可以使用ST提供的官方开发环境和软件库来进行开发,同时还可以借助ST社区和论坛获取更多的技术支持和资源。 综上所述,STM32-ISO是一款强劲的嵌入式微控制器,通过电气隔离、接口保护、抗干扰能力以及软件开发工具的支持,能够在想要保证系统稳定性和可靠性的应用中发挥重要作用。无论在工业自动化、通信设备还是其他领域,STM32-ISO都是一个值得选择和使用的芯片。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值