展开

关键词

STM32Cube-03 | 使用GPIOLED

准备工作硬件准备首先需要准备开发板,这里我准备的是STM32L4的开发板(BearPi): ?在这里插入图片描述软件准备需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码。 生成代码击GENERATE CODE即可生成MDK-V5工程: ?生成成功?3. 在MDK中编写、编译、下载用户代码编写用户代码STM32CubeMX生成的代码目录如下: ? END WHILE * * USER CODE BEGIN 3 * HAL_Delay(200); HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13); } 编译代码然后编译整工程 下载运行最后击下载即可: ?实验现象实验现象如下: ? 至此,我们已经学会了如何使用STM32CubeMX快速生成MDK的工程,LED,接下来节讲述如何使用 STM32CubeMX初始化GPIO进行按键检测。

34910

S3C2440④ | ARM-THUMB子程序调用规则ATPCS

在GPIO的实验中,我们首先编写汇编程序操作寄存器LED,奈何汇编可读性和可移植性太差,所以编写启动代码,设置栈顶指针SP,然后调用C中的main函数,转入C的世界,由C访问控制寄存器 ,LED,程序的可读性和可移植性大大提高,那么,我们可曾想过,在汇编中是如何来调用C入口函数main呢? 实验目的在汇编中调用函数并且传递参数。2. 实验内容main函数定义参数,如果传入参数是1,LED,如果传入参数是2,第二LED。3. start: @ 关闭看门狗 LDR R0,=0x53000000 MOV R1,#0 STR R1, @ 设置栈顶指针SP(从Nand启动) LDR SP,=4096 @ 传递参数1调用led_on, LED LDR R0,=1 BL led_on @ 传递参数100000,调用delay,延时 LDR R0,=100000 BL delay @ 传递参数2调用led_on,第二LED LDR

22520
  • 广告
    关闭

    2021云+社区年度盘点发布

    动动手指转发活动或推荐好文,即可参与虎年公仔等百份好礼抽奖!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    51单片机学习(1) LED、闪烁以及流水灯实现

    文章目录 、Keil创建项目 二、Proteus搭建虚拟仿真电路 三、LED 四、LED闪烁 五、流水灯实现 1. 流水灯(库函数法) 2. 流水灯(左移法) 3. 流水灯(右移法) 4. 流水灯(数组索引法) 、Keil创建项目 1. 打开keil软件,在工具栏击Project选项选择new uVision Project创建新的工程并保存,步骤如下图所示: 2. 在.c文件中编写C程序 #include reg51.h sbit led=P2^0; void main(){ while(1) { led=0; } } 4. 依次击工具栏按钮,生成目标文件 程序运行成功,将在相对路径Object文件夹中生成learning_002.hex文件 二、Proteus搭建虚拟仿真电路 三、LED 搭建好电路后,击AT89C51 主控,导入上文用keil中C程序生成的learning_002.hex文件 击软件右下角的运行按钮,红色的发光二级管被 四、LED闪烁 C代码改为如下: #include reg51.

    3.8K61

    MicroPython 玩转硬件系列2:灯实验

    1.引篇我们在ESP32 上搭建了MicroPython的环境并且运行出来了Hello World! 这篇我们开始灯的实验。 2.环境介绍2.1.硬件ESP32 小板:? 2.2.软件1) PC端Windows系统,PuTTY串口工具2) 板子MicroPython 环境3.控制灭上面那红色的LED灯,只要给它加高电平3.3V,它就可以,不给电压它就灭。 第2步:输入以下三条句,就可以完成GPIO4引脚设置为高电平的功能,对应LED。 如果你没有LED灯,也可用万用表量下该引脚的电压,该引脚电压为3.3V。?再输入下面句led.off()?LED灯就会熄灭。4.闪烁实验下面这段代码是让LED灯循环灭的。 就是直不断循环的干件事情,即1s-灭1s-1s-灭1s---- 直这么下去。这法和C对应的法有挺大的不同。

    19250

    第008课 第1ARM裸板程序及引申(LED灯)

    原文地址: http:wiki.100ask.org第001节辅线1硬件知识_LED原理图当我们学习C的时候,我们会写Hello程序。 那当我们写ARM程序,也该有简单的程序引领我们入门,这程序就是LED。我们怎样去LED呢? 它们长得完全不样,因此我们在原理图中将它抽象出来。LED需要通电源,同时为了保护LED,加电阻减小电流。 第003节_编写第1程序LED在开始写第1程序前,先了解些概念。 C汇编(给人类方便使用的)———编译器———>bin,含有机器码(给CPU使用)第005节编程知识进制17苹果,有4种表示方式,它们表示同数值: ?

    21510

    3.修改第程序来LED

    在上节中已经将驱动程序框架搭建好了接下来开始写硬件的操作(控制LED):(1)看原理图,确定引脚(2)看2440手册(3)写代码(需要使用ioremap()函数映射虚拟地址,在linux中只能使用虚拟地址 )(4)修改上节的测试程序(5)使用次设备号来控制设备下不同的灯1.看led引脚最终确定: LED1 ->GPF4  LED2 ->GPF5   LED3 ->GPF62.看2440手册配置GPFCON (0x56000050)的位、位、位 都等于0x01(输出模式)控制GPFDAT(0x56000054)中的位4~6来使灯灭(低电平)3.写代码3.1添加全局变量:volatile unsigned

    43550

    arm(3)| led

    这里继续介绍arm裸机的编程,从led灯开始,今天将会分别使用汇编和C来实现led灯。 不过这部分对于灯来说,使用默认即可。然后还要从原理图上找出led对应的管脚,比如本次实验红色led对应的管脚是GPIO1_IO04 ?? 最后,bin文件烧写到SD卡当中,然后将SD卡插在开发板上,通过拨码开关设置开发板的启动方式为SD卡启动,上电之后就可以看到led灯被。 二、C方式 Cled灯和汇编差不多,只不过要添加启动文件和链接脚本,然后再写Makefile方便管理工程。 首先写启动文件start.S,这启动文件用来设置栈指针,以及跳转到C代码的main函数中.text.align 2.global _start_start: ldr sp,=0x80001000

    27921

    SCT89C52.3(寄存器封装)

    C中知道,要操作这些内存就可以使用C中的指针,通过寻找对应地址的方式来操作这些具有特殊功能的内存也就是所说的寄存器。 比如 P0 口对应的地址是0X80,那么我们要修改 0X80 这地址对应的内存的内容的话,按照常理可以这样操作:*(*0X80) = 0XFE;LED但是这样做会报错,编译器报错。 51和52的单片机只能通过sbit和sfr这两东西去操作。你此时需要下面的这东西的帮助:?击第三章?我们要使用的就是这东西,里面128空格,但是只有28有用? P0 = 0Xfe;总线操作 LEDP0 = 0Xff;总线操作关闭 LED而是通过这样的方式直接操作。 其实是因为中间做了次关于相关地址的映射操作,具体的工具是sfr和sbit:sfr P0 = 0x80;寄存器定义P0 = 0XFE;总线操作LED所以看起来应该是这样。

    13920

    eps32和ros2之稳稳LED灯(IO4)

    0) { sprintf(msg->data, 欢乐的esp32灯灭了 %d, cnt++); } else if(ledflag==1) { sprintf(msg->data, 欢乐的esp32灯了 while the clients connected if (client.available()) { if theres bytes to read from the client, char c = client.read(); read a byte, then if (c == n) { if the byte is a newline character if the current , LOW); GET H turns the LED on sprintf(msg->data, 灯了); ledflag=1; } if (currentLine.endsWith(GET L 默认灯,显示欢乐esp32和ros2。击off,效果如下:击on 显示1s次,有滞后,再关闭。多次测试后:稳定工作10分钟,问题不大。最多测试1小时。

    6020

    嵌入式Linux系列第15篇:WebServer使用

    4.2 CGI示例CGI是实现web交互的比较早的,支持任何。依赖于web服务器使用。整体上的结构如图所示:? CGI程序可以用任何程序设计编写,如Shell脚本、Perl、Fortran、Pascal、C等。 但是用C编写的CGI程序具有执行速度快、安全性高(因为C程序是编译执行且不可被修改)等特。 CGI接口标准包括标准输入、环境变量、标准输出三部分。 跳转到192.168.0.100test.cgi,即可把按钮与用C生成的CGI文件贯通起来。 击ON按钮LED击OFF按钮关闭LED,具体实现方法如下:1) 建立index.html文件 Test Page TopSemic LED Example LED D3: 2)修改配置文件cgipat

    13450

    Linux学习系列六:操作GPIO

    1引学习单片机的第例子通常都是LED灯,对于Linux应用,我们也从LED入手,我就记得自己刚开始学的时候查了好多资料才勉强能控制,当时就感受到了Linux和单片机裸机有很大的差异。 实际产品中这也是比较有用的,比如可以在系统启动后,实现LED D2灭各1s循环,这样LED 就可以作为系统状态指示灯,我们可以通过判断LED D2是否正常闪烁来判断系统是否在正常工作。 sh只是shell的种,还有很多其它shell,如:bash,csh,zsh,tcsh,...这里用到while 循环句,大家注意下格式即可。 4.3.C代码里操作GPIO实际项目中,你可能得在C代码里去控制GPIO,这里实现的功能是让LED D3循环闪烁,具体步骤如下:1)编写gpio_demo.c ,代码如下:************* 当执行这函数后,程序就不往下走了,当指定时间结束后,继续执行下面的句。

    37020

    C(三...)

    C中,你经常会在不同的场合看到三(形如...) ,它们可不是省略号,它们有时是参数序列,有时是取值范围,有时排成字,有时排成人字……拓展:三的第用法,是用来表示变参函数的参数列表的,比如:int printf(const char *format ;在这里,printf就是典型的变参函数,其参数列表的...表示0或者多参数。 除此之外,三的第二用法,是用来表达取值范围,比如:switch(n){ case 1 ... 9: printf( small numbern ); break; case 10 ... 100 : printf( big numbern ); break;}上述代码中表达的就是范围,比如从1(含)到9(含),和从10(含)到100(含) ??

    1.1K20

    树莓派基础实验1:双色LED灯实验

    、介绍   双色发光二极管(LED)能够发出红色和绿色,两种不同颜色的光。正电压指向LED端子之,使LED发出相应的颜色的光,次只能有引脚接受电压,常用着各种设备的指示灯。 打开IDLE图  第3步:打开IDLE后,在菜单“file”下击“new file”按钮,新建文件,开始编程。 我使用python,它是种脚本,不需要编译,按写入的顺序执行,运行在另程序“之中”,法规则较少,易于学习且功能强大。   第4步:导入模块,设置常量、板载模式。 Raspberry Pi有三种引脚编号方法:根据引脚的物理位置编号;由CGPIO库wiringpi指定的编号;由BCM2837 SOC指定的编号。 Python文件通常有两种使用方法:是作为脚本直接执行;二是import到其它的Python脚本中被调用执行。

    1K20

    ARM入门笔记(3)

    第三章 我的LED ――IO输出实验 .背景 当完成上述实验后,我就可以像使用51单片机那样,在C文件的main()函数中通过设置相应的寄存器来达到对相应外设(如IO的输入、输出等)的控制目的。 二.实验目的 通过控制PIO的相关寄存器,使特定的IO口输出高电平和低电平,来LED。 RO Base = 0x00200000; RW Base = 0x00202000; Image entry point=0x00200000;             2> 启动代码 启动代码与第实验中修改后的相同 3> C的代码 #i nclude AT91SAM7S64.h  特殊功能寄存器头文件。 类似与51单片机中reg51.h #i nclude Board.h   定义目标板的头文件 int main(void) { *AT91C_PIOA_PER = LED_MASK;使能4LED对应管脚的

    17510

    机器人控制器编程课程-教案02-基础

    那么如何学习门技术,包括机器人控制器编程技术???现在技术更新速度十分快,如何学习最新并使用最广的相关技术呢???要:跨平台,或者称之为多平台支持? 要:多支持,如支持至少3种以上C++、Python、Java)进行程序编写同样以Arduino,通过合适的配置不仅可以实现仿真,还支持Python、Matlab等编程。 所有IoT(物联网)硬件都是多平台多支持的!!!Arduino微控制器和SoC世界无处不在的“Hello World”程序是“闪烁LED”。 {如果接收到的是“X”字符 digitalWrite(ledpin,HIGH);数字13 口LED?

    28741

    S3C2440③ | GPIO实验

    实验1 —— LED1.看原理图确定硬件如何连接原理图中表示了芯片控制LED的硬件电路以及芯片的引脚与LED如何连接。??2. 看主芯片手册确定如何控制引脚具体:如何让GPF4输出高低电平? (注:corresponding,相应的)3.汇编程序访问寄存器控制LED3.1.编辑程序@ brief: 连接在GPF4的LED@ author: mculover666@ date: 201931 elfarm-linux-ld -Ttext 0 led_on.o -o led_on.elf 转换为bin文件arm-linux-objcopy -O binary -S led_on.elf led_on.bin 整编译步骤可编写为 4.C程序访问寄存器控制LED4.1.运行C程序的前提——启动文件C入口函数是main()函数,main函数由启动文件(刚上电时执行的汇编程序)来调用;在调用时会进行压栈操作,调用完毕进行出栈操作, 启动文件start.s:初始化C运行环境,引入C程序 @ brief: S3C2440启动文件@ author: mculover666 .text.global _start _start: @

    17530

    单片机|IO输出功能

    设备都会有专用的IO地址,用来处理自己的输入输出信息。 输出的原理:如果我们将单片机比作水塔,这水塔有进水管和出水管两根水管。那么,出水管相当于输出功能,用于对外供水,能量是由内向外的。 发光二极管的发光度与通过的工作电流成正比,般情况下,LED的正向工作电流在10mA左右,若电流过大时会损坏LED,因此使用时必须串联限流电阻以控制通过管子的电流。 LED广泛应用于各种电子电路、家电、仪表等设备中、做电源或电平指示。控制LED灯的灭只需要开关,它只有两种状态,开或关、或灭。 程序如下:#include Sbit LED = P1^0 Main(){ LED = 0 }这里需要注意的是,在C中,再大的程序都有且只有main函数。程序从这里开始,也从这里结束。 LED灭就是理解IO输出的最简单例子。你了解了吗?

    21520

    如何快速学会单片机编程并应用?

    -5 -相关课程-单片机和C,是自动化(机器人)学科重要的基础内容。如果对机器人感兴趣,可参考机器人工程师学习计划。课程学习动机~Why?为什么学习单片机编程?单片机方向就业?把握市场需求! 软硬件能力的综合训练,电路原理图+软件编程(C)。课程学习内容~What?单片机编程包括哪些内容?目录和大纲,归纳和总结能力训练?课程学习方法~How?如何学习单片机编程? 入门简单、上手容易,欲知详情击查看。其他参考资料:单片机技术理论与实践课程相关资料,课件、资料和工具软件等。-新更新考核材料和参考报告-编程。单片机泥石流负能量!在美国大学计算机专业都学什么? *以下是全局变量定义********* sbit LED=P1^0; LED灯连接在P1.0上 int data i; 定义整型全局变量 *********主程序开始*************** void main(void) { while(1) { LED=0; LED for(i=0;i

    75420

    TPYBoard:款可以发挥无限创意的MicroPython开发板

    先简单说说C和Python的区别吧! C属于中级,它介于高级和低级之间,它的运行必须经过编译器的处理才能形成最终的执行代码,C最主要的用途就是系统底层的应用。 python是种脚本,它的运行需要python解释器,属于解释型的,而且是开源的。这就意味着使用做同样的事情,Python和C相比将使用更简单更少的代码。 该开发板内置4LED灯、加速传感器,可在3V-10V之间的电压正常工作。 先看下产品“全家福”吧! 第二行打开了蓝色的 LED:先是在 pyb 模块中使用了 LED 类,创建了 LED 4 的实例,然后将其 第四步:重置开发板 为运行这小小的脚本,我们需要保存并关闭 main.py文件,然后在 当按下复位键后绿色的 LED 将快速闪烁,然后蓝色的 LED 保持长。 至此编写和运行第 MicroPython 程序就完成了,加油!

    73400

    【ST开发板评测】使用Python来开发STM32F411

    ?板子申请了也有段时间了,也快到评测截止时间了,想着做有意思的东西,正好前段时间看到过可以在MCU上移植MicroPython的示例,就自己尝试下,记录移植过程。 程序猿中有句俗:人生苦短,我用Python。Python的强大和易用性让它不仅可以写网站,编程序,在嵌入式领域也有席之地。 MicroPython,是Python3编程完整软件实现,包括Python标准库的小部分,用C编写,经过优化可在微控制器和受限环境中运行。 specific object, type help(obj)For a list of available modules, type help(modules)>>>6.开始Python开发之旅—— LED板载的绿色LED,串口输入命令和熄灭LED>>> pyb.LED(1).on()>>> pyb.LED(1).off()>>> pyb.LED(1).on()>>>更多Python控制外设的命令

    58320

    扫码关注云+社区

    领取腾讯云代金券