ATmega128串口0不工作

发布者:epsilon15最新更新时间:2018-05-29 来源: eefocus关键字:ATmega128  串口 手机看文章 扫描二维码
随时随地手机看文章

一直在做ATmega16的程序,因为比赛的需要,转战到ATmega128的开发。ATmega16和ATmega128都是AVR单片机,它两个主要的区别就是ATmega128资源更加丰富了。理论上来说,从16转到128基本没什么变化,主要的变化就是寄存器名称变化。拿我这次做的来说:16只有一个串口,而128有两个,对应的寄存器就有区别了(128在寄存器名称上,区别串口0和串口1)。


按照ATmega128芯片手册很快的编写了程序(有了16的基础,编写不是太难)。编译,连接,生成HEX文件,ISP烧写,打开串口调试助手……满心期待的等待出现效果,但是它像死掉了一样,一动不动。开始还以为是硬件连接不好,就逐渐排查硬件问题,发现硬件电路毫无问题。这就郁闷了,怎么就不好使呢?我开始怀疑是我自己的代码没有写对。到网上搜了一堆别人写的串口程序,希望找到解决之路,不过还是不好用。


无意之中把一个别人做好的HEX烧到片子上,效果出现了,它又神奇的活了过来。我把对应的代码粘贴到C文件,加载到工程,编译,生成HEX文件,烧写到片子还是不好用。我这就郁闷了,一样的程序,一样的编译器,生成的HEX文件,一个好用,一个不好用,这样我情何以堪呢?


伟大的柱哥出现了,随意的瞥了两眼,来了句“看看你的编译器设置对了吗?”


我迅速打开Project--Option,弹出对话框,找到Target---Device Configuration选择对应的芯片型号,OK关闭对话框。再次编译,烧写,如预想的一样,它动了。


从来没有想到是编译器的问题,一方面是自己还需要学习的很多,一方面是自己对问题看到太浅了。这次的问题让我反思,工欲善其事必先利其器,连工具都没有充分的了解,怎么能让工具发挥它最大的作用呢?怎么才能善其事呢?引以为戒!


关键字:ATmega128  串口 引用地址:ATmega128串口0不工作

上一篇:ATmega16的定时器0、1、2的比较
下一篇:ICCAVR编译器的介绍

推荐阅读最新更新时间:2024-03-16 16:03

stm8s开发(三) UART的使用:串口通信!
  串口通信是单片机学习的一个最基本、最重要的功能之一。串口通信可以间接的当做调试接口使用,实现单片机与电脑之间的通信。当然可以与一些模块(比如蓝牙、wifi)通信,也可以作为和其他单片机通信的工具。   STM8S的通用异步收发器(UART)主要特性:   ● 全双工的,异步通信   ● 可编程数据字长度(8位或9位)   ● 可配置的停止位-支持1或2个停止位   一般的,我们使用串口通信主要是关心几点参数:波特率、停止位、奇偶校验位。   其次就是如何发送、如何接收数据,这里介绍的使用阻塞式发送数据、中断方式接收数据。   以下代码是初始化串口,参数为:115200 1停止位 无校验位   void Init
[单片机]
stm8s开发(三) UART的使用:<font color='red'>串口</font>通信!
stm32f103串口BootLoader
因为在论坛和官网都没搜到完全合适的BootLoader,所以自己移植完成了一个BootLoader工程。另外附APP文件工程,可做实验。用良心保证,看完后可以做一个成功的实验。 上位机选用SecureCrt,单片机用的stm32f103vet6。 首先搞清楚BootLoader过程步骤,代码可以再根据自己需要修改: 步骤一:初始化IO口,初始化uart串口,初始化定时器等等 步骤二:进入BootLoader选择界面,如果选择1是烧写程序,然后用上位机发送ymodem格式的bin文件。(bin文件就是应用程序的编译后的二进制代码),发送完成后,单片机已经把它存进flash中一块区域,并跳转运行此区域。 步骤二:进入BootLoad
[单片机]
stm32f103<font color='red'>串口</font>BootLoader
USB转串口RS232/RS485的超高速通信
USB串口转换器是实现USB与RS-232/RS-485/RS-422串口 设备 相互通讯的一种协议转换装置(USB协议-串行通信协议)。一般的USB串口转换器支持的波特率最高达到115.2Kbps(115200bps).USB串口的超高速通信是指最高波特率超过115200bps的串口通信,比如921600、460800、230400bps.由于这几种波特率是非标的,所以从硬件到软件都有特殊要求和方法才可以实现。本文以波仕USB232GH2转换器和波特率921.6Kbps(921600bps)为例来进行介绍。 要实现USB串口的921.6Kbps的高速通信,必须满足2个条件:1、USB-串口转换器本身支持921.6Kbps波特率;2
[嵌入式]
stm32 上电初始化串口输出一个字节FF问题
最近玩stm32,使用串口发送数据在PC端使用串口工具检测接收到的数据,发现每次上电串口工具都会蹦出一个FF,这让我郁闷好久。在网上查了好多解决问题的办法,有的说先初始化UART 在初始化UART对应的GPIO脚,有的说把中断关闭等等 。我试了都不行,串口还是会发送FF,简直郁闷。。。。 后来我单步调试,发现在初始化的时候函数GPIO_PinAFConfig();初始化导致串口上电在TX脚上输出一个高电平。所以我就尝试在函数GPIO_Iinit();初始化之前首先初始化GPIO_PinAFConfig();这样就不会出现FF了。。。 总之解决办法如下就不会出现问题: 1.开启IO和外设USART时钟
[单片机]
ATmega128 时钟源
时钟源 ATmega128 芯片有如下几种通过熔丝位选择的时钟源。时钟输入到AVR 时钟发生器,并通往其他合适的模块。 Note: 1. 对于所有的熔丝位, “1” 表示未编程, “0” 代表已编程。 每个时钟源在后续部分单独介绍。当CPU 自掉电模式或省电模式唤醒之后,被选择的时 钟源用来为启动过程定时,保证振荡器在开始执行指令之前进入稳定状态。当CPU 从复 位开始工作时,还有额外的延迟时间以保证在开始正常工作之前电源达到稳定电平。看门 狗振荡器用来为自己的启动时间定时。看门狗溢出时间所对应的WDT 振荡器周期数列于 Table 7。看门狗振荡器的频率与工作电压有关,具体请参见 P 313“ATmega128 典型特性
[单片机]
<font color='red'>ATmega128</font> 时钟源
STM32串口配置(基于uC/OS)
在uC/OS下,串口配置与不使用uC/OS基本相同,但中断处理有些差别。在uC/OS下取消了固件库中的stm32f10x_it.c文件,去而代之的是app_vect_v5.c. 下面是几个中断处理的函数: bsp_int.c提供几个关键的中断操作函数: void BSP_IntDis (CPU_DATA int_id) //关闭指定中断 void BSP_IntDisAll (void) //关闭所有中断 void BSP_IntEn
[单片机]
51单片机中断、串口通信综合程序
正在初学51的中断,定时器,串口等等,遇到很多瓶颈比如串口怎么发送变量的数值啦(加一个0x30就好),分享这个程序给初学者们啦 功能: 1. 开机以后,LED0和LED1实现0.5秒间隔闪烁2次,蜂鸣器同时鸣叫2次。 2. 之后,串口等待接收到一个字符'R',开始进入主循环体。 3. 主循环体中,LED0和LED1实现1秒间隔闪烁。 4. 串口接收到字符'D',回复LED当前状态和系统当前处于运行还是暂停状态,如果运行状态,收到字符'R',如果暂停状态,收到字符'P'。 5. 串口接收到字符'T',回复主循环体开始运行的时间和系统当前处于运行还是暂
[单片机]
基于GPS和GPRS的小型追踪器
1 引 言 随着GPRS无线通讯、Internet网络以及民用领域GPS的普遍应用,将三者合一使用已成为当今热门的研究领域。 GPRS(General Packed Radio Service,通用分组无线业务)采用TCP/IP协议,非常容易和现有的Internet技术及应用平台整合,即将各种IP技术和服务同移动通信技术相结合,为用户提供各种高速度、高质量的移动数据通信业务。GPRS的移动通信、价格低廉、快速登陆、永远在线、组网灵活、信道保障、小功率防雷击等特点使得GPRS已逐渐取代GSM网络。 GPS(Global Positioning System,全球定位系统)除了更多地应用于高精尖端测量、测绘及导航领域外,也更多地
[网络通信]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved