📄 485bus.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 + -