嵌入式系统实验报告(C 语言实验)

这篇实验报告介绍了使用C语言在嵌入式系统中控制LED流水灯和按键的操作。通过初始化GPIO接口,实现LED的亮灭控制,并详细讲解了按键的初始化和轮询检测。同时,探讨了中断机制的实现,以及串口通信和printf函数的移植,以实现与PC的交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一部分指导手册实验分析

1 LED 流水灯

这是我们学习C 语言实验的第一个示例,项目的烧录、执行与汇编相同,这里我们简要分析一下我们的项目。

首先我们从main 函数开始,它有两个函数,do_system_initial 和led_initial。do_system_initial 函数首先会调用led_initial 函数初始化led,再通过tester_led 函数控制相应LED 的亮与灭。

1.1 do_system_initial
查阅手册可知,6818 芯片共有160 个GPIO 接口,分为5 组。我们只需通过修改对应寄存器的值,就能完成对他们的初始化。在之前汇编语言编程中,我们就修改了它的复用功能选择寄存器、输出使能寄存器、输出寄存器等。
我们先简要介绍一下LED 灯的初始化。

对LED 灯的初始化方法如下:


在这里,16 端口代表LED1 灯。具体如下:
(1)gpio_set_cfg 函数用于将GPIO_A16 设置为GPIO 功能, 如要作为输出使用,需要将复用功能寄存器设为00, 即第二个参数为0。
(2)gpio_set_pull 函数用于将GPIO_A16 设置为上拉或者下拉。这涉及到CMOS 制作工艺的问题,在此不再详细讨论,只需知道,低电平有效设为下拉,高电平有效设为上拉。
(3)gpio_direction_output 函数通过修改GPIO_OUTENB 和GPIO_OUT寄存器将GPIO_A16 设置为输出,

(4)gpio_set_value 函数用于GPIO_A16 设置为低电平。对其它的LED 灯执行同样的操作,我们便完成了LED 灯的初始化。

1.2 tester_led

函数如下:




通过全局变量index

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值