gpt4 book ai didi

c - Atmel 工作室与 Xmega 定时器/USART

转载 作者:行者123 更新时间:2023-11-30 17:01:22 25 4
gpt4 key购买 nike

我是在 Atmel studio 环境中开发嵌入式系统的新手,我使用 Atxmega128a1 和 32MHz 系统时钟。我试图在每次定时器中断溢出(0.05s)时通过RS232模块向PC发送一些字符,所以我在ASF上定义了(tc)定时器,USART驱动程序,并在main.c文件中编写了以下代码,最后我调试它没有任何错误,但没有成功通过串口传输任何东西。 任何人都可以帮助我或给我一些建议。

    #include <asf.h>

volatile int flag=0;
uint8_t received_byte;
uint8_t tx_buf[] = "\n\rHello AVR world ! : ";
uint8_t tx_length = 22;
uint8_t i;

static void my_callback(void)
{

flag =1;
}

int main (void)
{
/* Insert system clock initialization code here (sysclk_init()). */

board_init();
sysclk_init();
static usart_rs232_options_t USART_SERIAL_OPTIONS = {
.baudrate = 9600,
.charlength = 8,
.paritytype = USART_PMODE_DISABLED_gc,
.stopbits = false
};
usart_init_rs232(& USARTF0, &USART_SERIAL_OPTIONS);


//usart_set_baudrate_precalculated(& USARTF0,0x00017700,0x01E84800);

/* Insert application code here, after the board has been initialized. */
if (flag==1)
{

//received_byte = usart_getchar(& USARTF0);
//if (received_byte == '\r') {
for (i = 0; i < tx_length; i++)
{
usart_putchar(& USARTF0, tx_buf[i]);
}
}
else
usart_putchar(& USARTF0, received_byte);
flag=0;
}

最佳答案

我相信您缺少相关系统时钟模块的初始化:

sysclk_enable_module(SYSCLK_PORT_F, PR_USART0_bm);

关于c - Atmel 工作室与 Xmega 定时器/USART,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37104053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com