51点灯
#include <reg51.h>
sbit LED = P1^0;
void main() { LED = 0;
while(1); } STM32点灯
#include 'stm32f10x.h'
/* LED时钟端口、引脚定义*/ #define LED_PORT GPIOC #define LED_PIN GPIO_Pin_0 #define LED_PORT_RCC RCC_APB2Periph_GPIOC
void LED_Init() { GPIO_InitTypeDef GPIO_InitStructure; //定义结构体变量
RCC_APB2PeriphClockCmd(LED_PORT_RCC, ENABLE);
GPIO_InitStructure.GPIO_Pin = LED_PIN; //选择你要设置的IO口 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置推挽输出模式 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //设置传输速率 GPIO_Init(LED_PORT,&GPIO_InitStructure); //初始化GPIO
GPIO_SetBits(LED_PORT, LED_PIN); //将LED端口拉高,熄灭LED }
int main() { LED_Init(); GPIO_ResetBits(LED_PORT,GPIO_Pin_0);//点灯
while(1); } Linux点灯
#include <linux/init.h> #include <linux/module.h> #include <linux/fs.h> #include <linux/miscdevice.h> #include <linux/ioctl.h> #include <linux/gpio.h> #include <mach/regs-gpio.h> #include 'led.h'
static int led_open(struct inode *inode, struct file *file) { s3c2410_gpio_cfgpin(S3C2410_GPB(5), S3C2410_GPIO_OUTPUT); s3c2410_gpio_setpin(S3C2410_GPB(5), 1); return 0; }
static int led_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) { switch (cmd) { case LED_ON: s3c2410_gpio_setpin(S3C2410_GPB(5), 0); return 0; case LED_OFF: s3c2410_gpio_setpin(S3C2410_GPB(5), 1); return 0; default: return -EINVAL; } }
static struct file_operations led_fops = { .owner = THIS_MODULE, .open = led_open, .ioctl = led_ioctl, };
static struct miscdevice led_misc = { .minor = MISC_DYNAMIC_MINOR, .name = 'led', .fops = &led_fops, };
static int led_init(void){ return misc_register(&led_misc); }
static void led_exit(void){ misc_deregister(&led_misc); }
MODULE_LICENSE('Dual BSD/GPL'); module_init(led_init); module_exit(led_exit);
最后 |
|
来自: 新用户0118F7lQ > 《文件夹1》