我无法运行串行连接来测试我的AVR芯片。我目前认为这是因为F_CPU值,但我不是100%肯定。将程序加载到芯片上时,会出现为import Ember from 'ember';
export default Ember.Component.extend({
didRender() {
console.log('"this" on didRender():');
console.log(this.$());
Ember.$('body').click(this.exampleMethod).click();
},
exampleMethod() {
console.log('"this" on exampleMethod():');
// console.log(this.$()); This doesn't work
console.log(Ember.$(this));
},
});
定义的手动错误。我现在不知道从哪里开始发现错误。连接时,我的串行终端的控制台没有显示任何输出。
我创建了一个我最初加载的配置文件:
configGlobal.h
#error Systematischer Fehler der Baudrate größer 1%
USART.c
#ifndef F_CPU
#warning "F_CPU not yet defined, and will be set to 1MHz"
#define F_CPU 1000000UL
#endif
的main.c
#include "configGlobal.h"
#include <avr/io.h>
#include "USART.h"
#define BAUD 9600UL
#define BAUDRATE ((F_CPU) / (BAUD * 8UL) - 1) // set baud rate value for UBRR
void initUSART(void) {
// Requires BAUD
UBRR0H = (BAUDRATE >> 8) // Shift regisgter right by 8 bits to get upper 8 bits
UBRR0L = BAUDRATE;
UCSR0A |= (1 << U2X0);
// Enable USART
UCSR0B = (1 << TXEN0) | (1 << RXEN0); // Activate TX RX
UCSR0C = (1 << UCSZ01) | (1 << UCSZ00); // 8 data bits, 1 stop bit
}
AVRDUDE的输出
#include "configGlobal.h"
#include <avr/io.h>
#include <util/delay.h>
#include "USART.h"
int main(void) {
char serialCharacter;
// --- INITS --- //
DDRB = 0xff;
// Set up LED for output
initUSART();
printString("Hello World!\r\n");
return 0;
}
答案 0 :(得分:0)
编译错误是由于缺少&#34 ;;&#34;在USART.c(第10行)。 如果您不确定可用的波特率,可以检查波特率兼容性,例如: http://wormfood.net/avrbaudcalc.php
请记住,使用AVR内部RC振荡器作为时钟源可能会导致UART不稳定,因为频率不完全是8MHz(或CKDIV8 = 1时为1MHz)。
avrdude-log的底部表明设备设置不正确。你确定ATmega328是连接而不是ATmega328P吗?