1回答

0收藏

【ATMEGA328P-XMINI】顺利实现串口通信

#其他 #其他 3830 人阅读 | 1 人回复 | 2015-02-08

之前已经体验了GPIO功能,现在来试试串口通信。
首先,同样的,先建立一个工程

选型


为快速实现功能,先用asf的方式




选择asf中要用的模块

这边可以很明显的看到,确实没有现成的串口文件可调用
但为了方便使用,此处还是选择了GPIO的通用的文件,进入工程

那串口通信如何实现呢,
首先初始化,这块的话,芯片手册中已经直接给出,

那就直接用用看吧

如图,有个警告,解决方式是加修饰符static

这样就没问题了。
USRAT数据的5~8数据位发送如图:

USART数据的5~8数据位接收如图:

完善程序
#define FOSC 1843200#define BAUD 9600#define MYUBRR FOSC/16/BAUD-1static void USART_Init( unsigned int ubrr){        /*Set baud rate */        UBRR0H = (unsigned char)(ubrr>>8);        UBRR0L = (unsigned char)ubrr;        /*Enable receiver and transmitter */        UCSR0B = (1<<RXEN0)|(1<<TXEN0);        /* Set frame format: 8data, 2stop bit */        UCSR0C = (1<<USBS0)|(3<<UCSZ00);}static void USART_Transmit( unsigned char data ){        /* Wait for empty transmit buffer */        while ( !( UCSR0A & (1<<UDRE0)) )        ;        /* Put data into buffer, sends the data */        UDR0 = data;}static void PutStr(char *s){        while(*s)USART_Transmit(*s++);}int main (void){        char buf[10]={1,2,3,4,5,6,7,8,9};        uint8_t i=0;        board_init();        USART_Init(MYUBRR);        delay_init(FOSC);        while(1)        {                PutStr(buf);                                delay_ms(2000);                        }}
进行配置
顺利实现串口通信功能
关注下面的标签,发现更多相似文章
分享到:
回复

使用道具 举报

回答|共 1 个

倒序浏览

沙发

鱼的奇妙眼泪

发表于 2020-9-2 19:53:52 | 只看该作者

最近在学习
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条