📜  单片机(1)

📅  最后修改于: 2023-12-03 15:07:20.979000             🧑  作者: Mango

单片机介绍

单片机(Microcontroller, MCU)是一种集成了微处理器核心、存储器、IO口和各种外设接口功能于一体的小型计算机系统,广泛应用于各个领域的嵌入式系统中。

常见单片机品牌
  • Atmel AVR/Mega
  • Microchip PIC
  • STMicroelectronics STM32
  • NXP LPC
  • Texas Instruments MSP430
单片机应用领域

单片机广泛应用于各种嵌入式系统,例如:

  • 家用电子产品:洗衣机、电视机、空调、智能灯具等
  • 车载电子产品:发动机控制系统、车载音响、导航系统等
  • 工业控制系统:PLC、传感器、执行器等
  • 安全设备:门禁、监控系统、报警器等
  • 医疗设备:监护器、医用成像设备等
开发环境

单片机开发需要用到专门的集成开发环境(Integrated Development Environment,IDE),常见的有:

  • AVR Studio(Atmel AVR/Mega)
  • MPLAB X(Microchip PIC)
  • Keil uVision(STMicroelectronics STM32/NXP LPC)
  • Code Composer Studio(Texas Instruments MSP430)
示例代码

以下是使用STM32开发板点亮一个LED的示例代码:

#include "stm32f10x.h"  // 引入STM32F1xx系列芯片的头文件

int main(void)
{
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);  // 使能GPIOC时钟

  GPIO_InitTypeDef GPIO_InitStructure;
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;  // 配置引脚,此处为PC13
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  // 配置为推挽输出模式
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  // 设置引脚速率为50MHz
  GPIO_Init(GPIOC, &GPIO_InitStructure);  // 初始化GPIO

  while (1) {
    GPIO_SetBits(GPIOC, GPIO_Pin_13);  // 点亮LED
    for (int i = 0; i < 1000000; i++);  // 延时
    GPIO_ResetBits(GPIOC, GPIO_Pin_13);  // 熄灭LED
    for (int i = 0; i < 1000000; i++);  // 延时
  }
}