⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 485bus.c

📁 我自己编写的atmega16的485通讯的范例
💻 C
字号:
#include<iom16v.h>
#include<macros.h>
#define 485bus_recive PORTD|=0X04;
#define 485bus_send PORTD&=0XFB;
void 485bus_init(void)
{
    DDRD|=0X04;
    USART_Init();
/* 设置波特率*/
UBRR= 0x33;
/*设置为多机通讯模式*/
UCSRA=(1<<MPCM);
/* 接收器与发送器使能、接收中断时能*/
UCSRB = (1<<RXEN)|(1<<TXEN)|(1<<RXCIE)|(1<<UCSZ2);
/* 设置帧格式: 9 个数据位, 1 个停止位*/
UCSRC = (1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1);
}

void 485BUS_MESTER_Transmit( unsigned char addr_or_data,unsigned char data )
{
/* 等待发送缓冲器为空 */
while ( !( UCSRA & (1<<UDRE))) );
/* 将地址数据选择位复制到TXB8 */
UCSRB &= ~(1<<TXB8);
if ( addr_or_data & 0x01)
UCSRB |= (1<<TXB8);
/* 将数据放入缓冲器,发送数据 */
UDR = data;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -