4199|4

2

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

ATmega32A串口通信奇怪问题 [复制链接]

测试ATmega32A串口通信,使用内部1M振荡,
熔丝设置 通信发送ASCII码0~2,返回十六进制均为两个字节,3e 00, 4c 00, 66 00,如此简单的东西都无法正常工作,令人费解。请大家帮帮忙,谢谢啦!
//ICC-AVR application builder : 2015-09-05 10:23:35
// Target : M32
// Crystal: 1.0000Mhz

#include
#include

void USART_Transmit( unsigned char data );

void port_init(void)
{
PORTA = 0x00;
DDRA  = 0x00;
PORTB = 0x00;
DDRB  = 0x00;
PORTC = 0x00;
DDRC  = 0x00;
PORTD = 0x00;
DDRD  = 0x00;
}

//UART0 initialize
// desired baud rate: 9600
// actual: baud rate:9615 (0.2%)
void uart0_init(void)
{
UCSRB = 0x00; //disable while setting baud rate
UCSRA = 0x02;
UCSRC = BIT(URSEL) | 0x06;
UBRRL = 0x0C; //set baud rate lo
UBRRH = 0x00; //set baud rate hi
UCSRB = 0x98;
}

#pragma interrupt_handler uart0_rx_isr:iv_USART0_RXC
void uart0_rx_isr(void)
{
//uart has received a character in UDR
unsigned char i=0;
i=UDR;
USART_Transmit(i);
}

//call this routine to initialize all peripherals
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
port_init();
uart0_init();

MCUCR = 0x00;
GICR  = 0x00;
TIMSK = 0x00; //timer interrupt sources
SEI(); //re-enable interrupts
//all peripherals are now initialized
}


void USART_Transmit( unsigned char data )
{
/* 等待发送缓冲器为空 */
while ( !( UCSRA & (1<
;
/* 将数据放入缓冲器,发送数据 */
UDR = data;
}

void main(void)
{
        init_devices();
        while(1)
        {
        }
}


最新回复

用codevision 自动生成的看下 差别  好久都不自己写了 ~  详情 回复 发表于 2015-9-8 15:17
点赞 关注
 

回复
举报

3414

帖子

0

TA的资源

纯净的硅(高级)

沙发
 
感觉像是波特率没配置好呢
 
个人签名

So TM what......?

 

 

回复

1781

帖子

0

TA的资源

五彩晶圆(中级)

板凳
 
本帖最后由 wangjiafu1985 于 2015-9-6 11:24 编辑

用示波器观察一下输出波形,看和你发送的数据是否相同,如果有逻辑分析仪就最好了。感觉楼上说的很有道理。不过也有可能是系统时钟频率不正确,你最好是用定时器做一个频率输出看看对不对。
 
个人签名只有求知欲,没有求偶欲的人是植物,只有求偶欲,没有求知欲的人叫动物,既没求知欲,又没求偶欲的人是矿物。
 
 

回复

34

帖子

0

TA的资源

一粒金砂(中级)

4
 
用codevision 自动生成的看下 差别  好久都不自己写了 ~
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

5
 
海鸥094 发表于 2015-9-8 15:17
用codevision 自动生成的看下 差别  好久都不自己写了 ~

我测试程序是ICCAVR软件中的ApplicationBuilder应用产生的
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表