0
私はAtmelスタジオ環境でも開発している組み込みシステムでは新しく、 私は32MHzシステムclkでAtxmega128a1を使用しています。 私は(TB)タイマー、ASF上のUSARTドライバを定義し、main.cファイル内に以下のコードを書いて、最終的にすべてのタイマー割り込みオーバーフロー(0.05s)、 でPCの思考のいくつかの文字をPCに送信しようとしています。私はエラーなしでそれをデバッグしましたが、シリアルポート経由で何かを送信することに成功しませんでした。 誰でも私を助けたり、私に助言を与えることができます。アトメルスタジオXmegaタイマー/ USART
#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;
}
はあなたに感謝: PORTF.DIRSET = PIN3_bm ; –
@mahermansour:ああ、確かに別の落とし穴だよ。 –