我玩Arduino,但我使用寄存器开发

大鱼机器人 2023-05-25 20:49

01 



摘要

Arduino开发板常用的芯片是Atmel公司生产的AVR微控制器系列。最常见的是ATmega328P,被广泛用于Arduino Uno开发板。使用Arduino平台开发AVR的单片机非常方便。
ArduinoIDE提供了一个非常简洁、易于使用的开发环境,使编写和上传代码变得简单。它提供了一套简化的函数库和API,使开发者可以轻松地与ATmega328P的硬件进行交互,无需深入了解底层的寄存器操作。但是Arduino也可使用寄存器开发。

02 



使用Arduino点灯

使用ArduinoIDE开发AVR的ATmega328P单片机非常方便。在官网下载ArduinoID后,使用IDE自带的实例就可以玩耍了。
// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}
这样看起来非常简单,这跟学习STM32单片机完全不一样,可能大家一听你是玩Arduino的就觉得那玩意太垃圾了。其实这个单片机也有高大上一点的玩法。

03 



AVR单片机IO操作步骤

在玩AVR的ATmega328P之前先了解一下AVR单片机。AVR的IO端口是标准的双向口,在复位时所有端口处于高阻态,AVR的每个端口对应三个寄存器,即DDRx,PORTx,PINx。
在使用AVR单片机之前,一定要根据引脚功能对相应的端口初始化,否则,端口很可能不能正常工作。当单片机的引脚作为通用数字I/O口使用时,每个引脚都具有3个寄存器位:DDRxn、PORTxn、PINxn。
DDRxn
PORTxn
PINxn
I/O
上拉电阻
说明






0
0
--
输入
高阻态
0
1
--
输入
带上拉电阻
1
0
--
输出
输出低电平
1
1
--
输出
输出高电平

AVR单片机中对IO口进行操作之前需要进行相应的初始化设置,其设置步骤如下:

  • 1 通过方向寄存器DDRx设置相应的端口为输入或者输出。

  • 2 如果设置为输出的话,把需要输出的数据送往数据寄存器PORTx。如果设置为输入的话,从输入寄存器PINx中读取外部的输入值,同时可以通过设置PORTx来设置相应的引脚是否需要上拉电阻。


04 



使用Atmel Studio点灯


Atmel Studio是Atmel(现在是Microchip)公司推出的一款集成开发环境(IDE),专门用于嵌入式系统的开发。提供了丰富的工具和功能,以支持Atmel微控制器的编程、调试和部署。
Atmel Studio支持多种编译器,包括GCC和IAR编译器,可用于生成最优化的代码。支持多种编程语言,包括C、C++和汇编语言。开发者可以根据自己的需求选择最合适的编程语言来编写他们的应用程序。
首先在官网下载Atmel Studio的安装包,由于Atmel被Microchip收购了,所以Atmel Studio也更名为Microchip Studio,它整合了Atmel Studio的功能,并扩展支持了更多Microchip微控制器系列,包括PIC和dsPIC系列。
Atmel Studio和Microchip Studio都是用于微控制器应用程序开发的IDE。Atmel Studio主要针对Atmel微控制器,而Microchip Studio则扩展了支持更多的Microchip微控制器系列。
下载之后傻瓜式安装就可以了。
安装完成的界面如下,看着是不是够很熟悉。Atmel Studio和Visual Studio在界面和功能上有很多相似之处,这是因为Atmel Studio是基于Visual Studio Shell开发的。它们的主要区别在于针对的目标平台和硬件。
Atmel Studio专注于Atmel微控制器的开发,而Visual Studio是一个通用的开发环境,可用于各种应用程序的开发。
因此,如果你已经熟悉Visual Studio,切换到Atmel Studio会相对容易,因为它们之间有很多共享的特性和工作流程。

4.1 新建工程

/*
 * GccApplication1.c
 *
 * Created: 2023/5/18/星期三 14:48:19
 * Author : LiuYao
 * Board  : Arduino Nano
 */
 
#ifndef F_CPU
#define F_CPU 10000000UL
#endif

#include 
#include 

int main(void)
{
 DDRB =(1< /* Replace with your application code */
 while (1)
 {
  PORTB |=(1<  _delay_ms(1000);
  PORTB &= !(1<  _delay_ms(1000);  
 }
 return 0;
}

4.2 工具配置

Atmel Studio没有原生支持Arduino的开发,需要进行设置,本文使用的板子为ArduinoUNO,单片机型号为ATmega328P,注意在新建工程的时候要选对型号。
打开以后关键点是填写下面三个选项,同时需要勾选Use Output window
  • Title:Arduino UNO(随意填写)
  • Command:D:\Software\Arduino\hardware\tools\avr\bin\avrdude.exe,这个路径为ArduinoIDE中avrdude.exe的路径,根据自己的路径填写。
  • Arguments:这里填写要注意串口号,我这里是COM7,根据自己板子识别填写正确的COM号。
-C "D:\Software\Arduino\hardware\tools\avr\etc\avrdude.conf" -v -p atmega328p -c arduino -P COM7 -b 115200 -D -U flash:w:"$(ProjectDir)Debug\$(TargetName).hex":i
Arguments参数解释如下:
Usage: avrdude.exe [options]
Options:
  -p                 Required. Specify AVR device.
  -b               Override RS-232 baud rate.
  -B               Specify JTAG/STK500v2 bit clock period (us).
  -C            Specify location of configuration file.
  -c             Specify programmer type.
  -D                         Disable auto erase for flash memory
  -i                  ISP Clock Delay [in microseconds]
  -P                   Specify connection port.
  -F                         Override invalid signature check.
  -e                         Perform a chip erase.
  -O                         Perform RC oscillator calibration (see AVR053). 
  -U :r|w|v:[:format]
                             Memory operation specification.
                             Multiple -U options are allowed, each request
                             is performed in the order specified.
  -n                         Do not write anything to the device.
  -V                         Do not verify.
  -u                         Disable safemode, default when running from a script.
  -s                         Silent safemode operation, will not ask you if
                             fuses should be changed back.
  -t                         Enter terminal mode.
  -E [,] List programmer exit specifications.
  -x         Pass  to programmer.
  -y                         Count # erase cycles in EEPROM.
  -Y                 Initialize erase cycle # in EEPROM.
  -v                         Verbose output. -v -v for more.
  -q                         Quell progress output. -q -q for less.
  -l logfile                 Use logfile rather than stderr for diagnostics.
  -?                         Display this usage.


4.3 编译和烧写程序

首先编译工程。
将Arduino UNO连接到电脑,去Tools中点击刚设置的配置Arduino UNO
这个时候就可以把程序烧写到Arduino中了,output窗口会输出下面的内容。
如果报错,需要考虑一下上面提到的路径是不是正确还有COM端口号。
:通过Atmel Studio这个方式不能为Arduino Nano板子下载程序,因为Arduino Nano板子大多数用的是Old Bootloader,如果使用这种方式会下载失败。

试验现象

下次有人问你玩啥单片机时候你要说:我不玩Arduino,我玩AVR的,和你的ARM一样

-END-


往期推荐:点击图片即可跳转阅读

新手选 Arduino 还是 树莓派?

STM32和Arduino对比,谁更厉害?

各种Arduino外设的用法,生动形象,相当好看!

大鱼机器人 一个专注于机器人技术,单片机,嵌入式系统,智能家居,智能设备,PCB设计,IT最新动态的自媒体。此外,还有海量学习资源等你来领取。作者:张巧龙,个人微信号:well_xiaolong。欢迎关注公众号,名称:大鱼机器人,公众号ID:All_best_xiaolong
评论 (0)
  • 网约车,真的“饱和”了?近日,网约车市场的 “饱和” 话题再度引发热议。多地陆续发布网约车风险预警,提醒从业者谨慎入局,这背后究竟隐藏着怎样的市场现状呢?从数据来看,网约车市场的“过剩”现象已愈发明显。以东莞为例,截至2024年12月底,全市网约车数量超过5.77万辆,考取网约车驾驶员证的人数更是超过13.48万人。随着司机数量的不断攀升,订单量却未能同步增长,导致单车日均接单量和营收双双下降。2024年下半年,东莞网约出租车单车日均订单量约10.5单,而单车日均营收也不容乐
    用户1742991715177 2025-04-29 18:28 309浏览
  • 5小时自学修好BIOS卡住问题  更换硬盘故障现象:f2、f12均失效,只有ESC和开关机键可用。错误页面:经过AI的故障截图询问,确定是机体内灰尘太多,和硬盘损坏造成,开机卡在BIOS。经过亲手拆螺丝和壳体、排线,跟换了新的2.5寸硬盘,故障排除。理论依据:以下是针对“5小时自学修好BIOS卡住问题+更换硬盘”的综合性解决方案,结合硬件操作和BIOS设置调整,分步骤说明:一、判断BIOS卡住的原因1. 初步排查     拔掉多余硬件:断开所有外接设备(如
    丙丁先生 2025-05-04 09:14 62浏览
  • 你是不是也有在公共场合被偷看手机或笔电的经验呢?科技时代下,不少现代人的各式机密数据都在手机、平板或是笔电等可携式的3C产品上处理,若是经常性地需要在公共场合使用,不管是工作上的机密文件,或是重要的个人信息等,民众都有防窃防盗意识,为了避免他人窥探内容,都会选择使用「防窥保护贴片」,以防止数据外泄。现今市面上「防窥保护贴」、「防窥片」、「屏幕防窥膜」等产品就是这种目的下产物 (以下简称防窥片)!防窥片功能与常见问题解析首先,防窥片最主要的功能就是用来防止他人窥视屏幕上的隐私信息,它是利用百叶窗的
    百佳泰测试实验室 2025-04-30 13:28 589浏览
  • 一、gao效冷却与控温机制‌1、‌冷媒流动设计‌采用低压液氮(或液氦)通过毛细管路导入蒸发器,蒸汽喷射至样品腔实现快速冷却,冷却效率高(室温至80K约20分钟,至4.2K约30分钟)。通过控温仪动态调节蒸发器加热功率,结合温度传感器(如PT100铂电阻或Cernox磁场不敏感传感器),实现±0.01K的高精度温度稳定性。2、‌宽温区覆盖与扩展性‌标准温区为80K-325K,通过降压选件可将下限延伸至65K(液氮模式)或4K(液氦模式)。可选配475K高温模块,满足材料在ji端温度下的性能测试需求
    锦正茂科技 2025-04-30 13:08 489浏览
  • 浪潮之上:智能时代的觉醒    近日参加了一场课题的答辩,这是医疗人工智能揭榜挂帅的国家项目的地区考场,参与者众多,围绕着医疗健康的主题,八仙过海各显神通,百花齐放。   中国大地正在发生着激动人心的场景:深圳前海深港人工智能算力中心高速运转的液冷服务器,武汉马路上自动驾驶出租车穿行的智慧道路,机器人参与北京的马拉松竞赛。从中央到地方,人工智能相关政策和消息如雨后春笋般不断出台,数字中国的建设图景正在智能浪潮中徐徐展开,战略布局如同围棋
    广州铁金刚 2025-04-30 15:24 323浏览
  • 这款无线入耳式蓝牙耳机是长这个样子的,如下图。侧面特写,如下图。充电接口来个特写,用的是卡座卡在PCB板子上的,上下夹紧PCB的正负极,如下图。撬开耳机喇叭盖子,如下图。精致的喇叭(HY),如下图。喇叭是由电学产生声学的,具体结构如下图。电池包(AFS 451012  21 12),用黄色耐高温胶带进行包裹(安规需求),加强隔离绝缘的,如下图。451012是电池包的型号,聚合物锂电池+3.7V 35mAh,详细如下图。电路板是怎么拿出来的呢,剪断喇叭和电池包的连接线,底部抽出PCB板子
    liweicheng 2025-05-06 22:58 90浏览
  • 想不到短短几年时间,华为就从“技术封锁”的持久战中突围,成功将“被卡脖子”困境扭转为科技主权的主动争夺战。众所周知,前几年技术霸权国家突然对华为发难,导致芯片供应链被强行掐断,海外市场阵地接连失守,恶意舆论如汹涌潮水,让其瞬间陷入了前所未有的困境。而最近财报显示,华为已经渡过危险期,甚至开始反击。2024年财报数据显示,华为实现全球销售收入8621亿元人民币,净利润626亿元人民币;经营活动现金流为884.17亿元,同比增长26.7%。对比来看,2024年营收同比增长22.42%,2023年为7
    用户1742991715177 2025-05-02 18:40 150浏览
  • ‌一、高斯计的正确选择‌1、‌明确测量需求‌‌磁场类型‌:区分直流或交流磁场,选择对应仪器(如交流高斯计需支持交变磁场测量)。‌量程范围‌:根据被测磁场强度选择覆盖范围,例如地球磁场(0.3–0.5 G)或工业磁体(数百至数千高斯)。‌精度与分辨率‌:高精度场景(如科研)需选择误差低于1%的仪器,分辨率需匹配微小磁场变化检测需求。2、‌仪器类型选择‌‌手持式‌:便携性强,适合现场快速检测;‌台式‌:精度更高,适用于实验室或工业环境。‌探头类型‌:‌横向/轴向探头‌:根据磁场方向选择,轴向探头适合
    锦正茂科技 2025-05-06 11:36 219浏览
  • 在智能硬件设备趋向微型化的背景下,语音芯片方案厂商针对小体积设备开发了多款超小型语音芯片方案,其中WTV系列和WT2003H系列凭借其QFN封装设计、高性能与高集成度,成为微型设备语音方案的理想选择。以下从封装特性、功能优势及典型应用场景三个方面进行详细介绍。一、超小体积封装:QFN技术的核心优势WTV系列与WT2003H系列均提供QFN封装(如QFN32,尺寸为4×4mm),这种封装形式具有以下特点:体积紧凑:QFN封装通过减少引脚间距和优化内部结构,显著缩小芯片体积,适用于智能门铃、穿戴设备
    广州唯创电子 2025-04-30 09:02 347浏览
  • 文/Leon编辑/cc孙聪颖‍2023年,厨电行业在相对平稳的市场环境中迎来温和复苏,看似为行业增长积蓄势能。带着对市场向好的预期,2024 年初,老板电器副董事长兼总经理任富佳为企业定下双位数增长目标。然而现实与预期相悖,过去一年,这家老牌厨电企业不仅未能达成业绩目标,曾提出的“三年再造一个老板电器”愿景,也因市场下行压力面临落空风险。作为“企二代”管理者,任富佳在掌舵企业穿越市场周期的过程中,正面临着前所未有的挑战。4月29日,老板电器(002508.SZ)发布了2024年年度报告及2025
    华尔街科技眼 2025-04-30 12:40 326浏览
  • 在全球制造业加速向数字化、智能化转型的浪潮中,健达智能作为固态照明市场的引领者和智能电子以及声学产品的创新先锋,健达智能敏锐捕捉到行业发展的新机遇与新挑战,传统制造模式已难以满足客户对品质追溯、定制化生产和全球化布局的需求。在此背景下, 健达智能科技股份有限公司(以下简称:健达智能)与盘古信息达成合作,正式启动IMS数字化智能制造工厂项目,标志着健达智能数字化转型升级迈入新阶段。此次项目旨在通过部署盘古信息IMS系统,助力健达实现生产全流程的智能化管控,打造照明行业数字化标杆。行业趋势与企业挑战
    盘古信息IMS 2025-04-30 10:13 77浏览
  •  一、‌核心降温原理‌1、‌液氮媒介作用‌液氮恒温器以液氮(沸点约77K/-196℃)为降温媒介,通过液氮蒸发吸收热量的特性实现快速降温。液氮在内部腔体蒸发时形成气-液界面,利用毛细管路将冷媒导入蒸发器,强化热交换效率。2、‌稳态气泡控温‌采用‌稳态气泡原理‌:调节锥形气塞与冷指间隙,控制气-液界面成核沸腾条件,使漏热稳定在设定值。通过控温仪调整加热功率,补偿漏热并维持温度平衡,实现80K-600K范围的快速变温。二、‌温度控制机制‌1、‌动态平衡调节‌控温仪内置模糊控制系统,通过温度
    锦正茂科技 2025-04-30 11:31 66浏览
  • 某国产固态电解的2次和3次谐波失真相当好,值得一试。(仅供参考)现在国产固态电解的性能跟上来了,值得一试。当然不是随便搞低端的那种。电容器对音质的影响_电子基础-面包板社区  https://mbb.eet-china.com/forum/topic/150182_1_1.html (右键复制链接打开)电容器对音质的影响相当大。电容器在音频系统中的角色不可忽视,它们能够调整系统增益、提供合适的偏置、抑制电源噪声并隔离直流成分。然而,在便携式设备中,由于空间、成本的限
    bruce小肥羊 2025-05-04 18:14 81浏览
  • 多功能电锅长什么样子,主视图如下图所示。侧视图如下图所示。型号JZ-18A,额定功率600W,额定电压220V,产自潮州市潮安区彩塘镇精致电子配件厂,铭牌如下图所示。有两颗螺丝固定底盖,找到合适的工具,拆开底盖如下图所示。可见和大部分市场的加热锅一样的工作原理,手绘原理图,根据原理图进一步理解和分析。F1为保险,250V/10A,185℃,CPGXLD 250V10A TF185℃ RY 是一款温度保险丝,额定电压是250V,额定电流是10A,动作温度是185℃。CPGXLD是温度保险丝电器元件
    liweicheng 2025-05-05 18:36 164浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦