完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
Atmega8出厂默认的内部时钟频率是1Mhz,做串口收发时波特率最高设置为4800,设置为9600会乱码,提高时钟频率才能将波特率提高。
#include 《avr/io.h》#include 《avr/interrupt.h》#define F_CPU 1000000//时钟频率#define BAUD 4800//串口波特率//定义接收字符volatile char rx_data;/************************************************************************//* 主程序 *//************************************************************************/int main(void){ //设置波特率 UBRRH=(F_CPU/BAUD/16-1)/256; UBRRL=(F_CPU/BAUD/16-1)%256; //接收中断使能,接收使能,发送使能 UCSRB|=(1《《RXCIE)|(1《《RXEN)|(1《《TXEN); sei(); //使能总中断 while(1){ }}/************************************************************************//* 串口接收中断 *//************************************************************************/ISR(USART_RXC_vect){ rx_data = UDR; //发送接收到的字符 while(!(UCSRA & (1 《《 UDRE))); UDR = rx_data;} |
|
|
|
只有小组成员才能发言,加入小组>>
2561 浏览 0 评论
1159浏览 2评论
762浏览 1评论
515浏览 0评论
272浏览 0评论
449浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 01:17 , Processed in 1.041543 second(s), Total 50, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号