完善资料让更多小伙伴认识你,还能领取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;} |
|
|
|
只有小组成员才能发言,加入小组>>
2545 浏览 0 评论
1142浏览 2评论
742浏览 1评论
495浏览 0评论
256浏览 0评论
418浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 14:19 , Processed in 1.302946 second(s), Total 79, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号