马老师请教CVAVR串口通讯问题
今天用CVAVR写了个串口通讯的函数,可是编译器老提示我写的数据包发送函数的形参与传入的实参类型不一致但是我明明定义的都是unsigned char型的数组,这个是为什么,应该怎么解决呢
#include <mega16.h>
#define FOSC 7372800 //晶振频率
#define BAUD 9600 //波特率
unsigned char Receive_data; //串口接收数据用的数组
unsigned char Send_data={0XFF,0X04,0XF1,0XF2,0XF3,0XF4};
unsigned char Powerstand={0x2a,0xe1,0xe2,0xe3};
void USART_init() //串口初始化
{
UBRRH=(FOSC/BAUD/16-1)/256;
UBRRL=(FOSC/BAUD/16-1)%256;
UCSRB|=(1<<RXEN)|(1<<TXEN)|(1<<RXCIE);
#asm("sei")
}
unsigned char USART_Transmit(unsigned char exchange) //串口数据包发送函数
{
unsigned char x;
for(x=0;x<8;x++)
{
while(!(UCSRA&(1<<UDRE)));
UDR=exchange;
// UDR=Send_data;
}
}
unsigned char USART_Receive() //串口数据包接收函数
{
unsigned char x;//用于数组循环
for(x=0;x<9;x++)
{
while(!(UCSRA&(1<<RXC)));
Receive_data=UDR;
}
}
interrupt void usart_rx_isr(void)//接收中断函数
{
unsigned char x;
if(0x40==Receive_data)//接收到测试信号,开始打开控制,发送实时功率
{
USART_Transmit(Send_data);}
if(0x2a==Receive_data)
{
USART_Transmit(Powerstand);}
}
void main(void)
{
USART_init();
USART_Receive();
} 晕,基础太差了,应该传进去数组名 本来想说两句不好听的,好在你自己明白了。
其实真正要掌握嵌入式系统的应用和设计,有好的基础是必要的条件,模拟电路、数字电路、外语、计算机组成、计算机应用、程序设计都是不可缺的。
页:
[1]