您的位置 首页 IOT

AVR 串口运用

#includeiom16.h>#defineucharunsignedchar#defineuintunsignedint#defineBUFFER_LENGTH11unsignedcharR

#include

#define uchar unsigned char
#define uint unsigned int
#define BUFFER_LENGTH 11

unsignedcharReceive_Calc=0;
unsignedcharUART_Receive_Buffer[11]={0};
unsignedcharUART_Send_Buffer[]={w,F,0,0,V,0,A,0,0,R,0};

//###########################################################
/*串口初始化函数*/
voidUart_Init(void)
{
UCSRA=(1<UCSRB=(1<UCSRC=(1<UBRRL=95;//9600 (7.3728MHz) // 设置波特率寄存器高位字节

SREG_I=1;// 开总中止
DDRD_Bit1=1;// 装备TX 为输出(很重要)
}
//###########################################################
/*发送一个字符数据,查询方法*/
voidUart_Transmit_Char(unsignedchardata)
{
while(!(UCSRA&(1<// 也能够写成 while(UCSRA_UDRE==0);
UDR=data;// 发送数据
}
//###########################################################
/*发送字符串*/
voidUart_Transmit_String(unsignedchar*ptr)
{
unsignedchari;
i=BUFFER_LENGTH;
while(i–)
{
Uart_Transmit_Char(*ptr++);
}
}
//###########################################################
/*中止接纳*/
#pragma vector=USART_RXC_vect
__interruptvoidUSART_RXC_Server(void)
{
UART_Receive_Buffer[Receive_Calc++]=UDR;// 将收到的值赋值给变量
if(Receive_Calc>=11)
{
Receive_Calc=0;
}
}
//###########################################################
/*主函数*/
voidmain(void)
{
Uart_Init();
while(1)
{
Uart_Transmit_Char(0x0d);
Uart_Transmit_Char(0x0a);
}
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/iot/252180.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部