나는 정수로 usart를 통해 데이터를 보낼 수있는 방법을 물어보고 싶습니다. 숫자를 저장하는 변수를 의미합니다. char 변수를 보낼 수 있지만 단말기는이 숫자의 ascii 표시를 보여 주므로 숫자를 볼 필요가 있습니다. 아래 그림처럼 코드를 편집하지만 나에게 오류를 제공합니다 : "에 대한 충돌 유형을 'USART_Transmit'" USART 형식 데이터 형식
#include <avr/io.h>
#include <util/delay.h>
#define FOSC 8000000// Clock Speed
#define BAUD 9600
#define MYUBRR FOSC/16/BAUD-1
void USART_Init(unsigned int ubrr);
void USART_Transmit(unsigned char data);
unsigned char USART_Receive(void);
int main(void)
{
unsigned char str[5] = "serus";
unsigned char strLenght = 5;
unsigned int i = 47;
USART_Init (MYUBRR);
//USART_Transmit('S');
while(1)
{
/*USART_Transmit(str[i++]);
if(i >= strLenght)
i = 0;*/
USART_Transmit(i);
_delay_ms(250);
}
return(0);
}
void USART_Init(unsigned int ubrr)
{
/* Set baud rate */
UBRR0H = (unsigned char)(ubrr>>8);
UBRR0L = (unsigned char)ubrr;
/* Enable receiver and transmitter */
UCSR0B = (1<<RXEN)|(1<<TXEN);
/* Set frame format: 8data, 2stop bit */
UCSR0C = (1<<USBS)|(3<<UCSZ0);
}
void USART_Transmit(unsigned int data)
{
/* Wait for empty transmit buffer */
while (!(UCSR0A & (1<<UDRE)))
;
/* Put data into buffer, sends the data */
UDR0 = data;
}
unsigned char USART_Receive(void)
{
/* Wait for data to be received */
while (!(UCSR0A & (1<<RXC)))
;
/* Get and return received data from buffer */
return UDR0;
}
당신이 무슨 어떤 생각을 가지고 있습니까? 추신 : 나는 무엇을 설명하려고하는지 이해하시기 바랍니다.
내 코드는 다음과 같습니다. https://paste.ofcode.org/x2pAV3VaFYGJBzKyDXPyyr aaaand it! 감사 – Branis