今日热门

5

回答

 为什么串口发送单片机没反应啊,是不是死机啦?

laladui 2017-02-21 阅读:804

7

回答

      板子是ATmega128  PWM 产生方波   用的语言为GCC   具体实现为编程产生一个方波。 其频率计算公式为fclock/(1+TOP),如取TOP为1,则频率为fclock/2;取如TOP为2,则频率为fclock/3。但是我如想取频率介于fclock/2和fclock/3之间的任意一值的话,该怎么实现呢?​

menrou 2017-02-20 阅读:1176

1

回答
iccavr 单片机

急求会改iccavr的大神!!!!!!

权猴子 2016-03-28 阅读:960

2

回答

AVR单片机中SPI_Initial();是什么意思?有没有相关资料可以提供一下?谢谢

波罗吹雪^_^ 2015-12-10 阅读:1205

1

回答

一个引导程序,在擦除FLASH,执行FLASH页写入时,每页的前2个字节写入错误,其他的字节都对。何解? 采用的是ATmeag644单片机 下面是详细的程序 void boot_page_ew(uint p_address,uchar code) { asm("mov r30,r16n" "mov r31,r17n" "out 0x3b,r18n");            //将页地址放入Z寄存器和RAMPZ的Bit0中 SPMCSR = code;                //寄存器SPMCSR中为操作码 asm("spmn");                    //对指定Flash页进行操作 } void boot_page_fill(unsigned int address1,uint data1) { asm("mov r30,r16n" "mov r31,r17n"        //Z寄存器中为填冲页内地址 "mov r0,r18n" "mov r1,r19n");       //R0R1中为一个指令字 SPMCSR = 0x01; asm("spmn"); } //等待一个Flash页的写完成 void wait_page_rw_ok(void) { while(SPMCSR & 0x40) { while(SPMCSR & 0x01); SPMCSR = 0x01;//0x11; asm("spmn"); } } //更新一个Flash页的完整处理 void write_one_page(uint address1) { uint i; boot_page_ew(address1,0x03);           //擦除一个Flash页 wait_page_rw_ok();               //等待擦除完成 for(i=0;i

青山奇侠 2015-10-23 阅读:1340

2

回答

初始化UART后。直接控制TX口置零不能用。有什么办法解决码?

小刀十六式 2015-09-09 阅读:912

9

回答

测试ATmega32A串口通信,使用内部1M振荡, 熔丝设置  通信发送ASCII码0~2,返回十六进制均为两个字节,3e 00, 4c 00, 66 00,如此简单的东西都无**常工作,令人费解。请大家帮帮忙,谢谢啦! //ICC-AVR application builder : 2015-09-05 10:23:35 // Target : M32 // Crystal: 1.0000Mhz #include #include void USART_Transmit( unsigned char data ); void port_init(void) { PORTA = 0x00; DDRA  = 0x00; PORTB = 0x00; DDRB  = 0x00; PORTC = 0x00;  DDRC  = 0x00; PORTD = 0x00; DDRD  = 0x00; } //UART0 initialize // desired baud rate: 9600 // actual: baud rate:9615 (0.2%) void uart0_init(void) { UCSRB = 0x00; //disable while setting baud rate UCSRA = 0x02; UCSRC = BIT(URSEL) | 0x06; UBRRL = 0x0C; //set baud rate lo UBRRH = 0x00; //set baud rate hi UCSRB = 0x98; } #pragma interrupt_handler uart0_rx_isr:iv_USART0_RXC void uart0_rx_isr(void) { //uart has received a character in UDR unsigned char i=0; i=UDR; USART_Transmit(i); } //call this routine to initialize all peripherals void init_devices(void) { //stop errant interrupts until set up CLI(); //disable all interrupts port_init(); uart0_init(); MCUCR = 0x00; GICR  = 0x00; TIMSK = 0x00; //timer interrupt sources SEI(); //re-enable interrupts //all peripherals are now initialized } void USART_Transmit( unsigned char data ) { /* 等待发送缓冲器为空 */ while ( !( UCSRA & (1

cloudou 2015-09-05 阅读:1477

5

回答

ATtiny24a  的PIO change interrupt 中断,说明书中的意思是只要IO口状态有改变就能触发中断。 实际测试发现只有IO口由高电平变到低电平才会触发中断。IO口低电平变到高电平不会触发中断,求大神解释,这是为什么?

iQuinn 2015-08-18 阅读:1171

4

回答

我现用的是AVR ATMEG16A单片机,在用USART串口通信时遇到了百思不得其解的问题,就是在调用串口发送函数发送完一串字符后,若紧接着再调用这个函数就会丢失后面的一次发送过程(就是在串口助手中没有收到("    !注意:字1111111!!!!!.  "),若在这两次的中间加入200ms 的延时,就不会丢失,在串口助手中只能收到第一次和第三次的信息,代码如下: USART_txout("本产品支持中英文显示,最大显示32个汉字或64个字母/符号,自动换行。",66);     USART_txout("    !注意:字1111111!!!!!.  ",30);     clear_screen();    display_graphic_32x32(1,64,hao);    display_GB2312string(3,105,"!");    MS_delay(200);    USART_txout("    !注意:字母或标点符号只支持英文输入法,否则不会显示.  ",66); 发送函数如下: void USART_txout(uchar *data,uchar length) {       unsigned char i=0;    for(i=0;i

SANNA 2015-04-23 阅读:1234

8

回答

利用avr studio 6 编写简单的程序,生成hex文件后,怎么下载到单片机中。现有usbisp下载器。 (尝试过progisp下载,但简单的输出高电平程序也没有反应。D1~D7口反而始终呈现高电平。  

金蛋0726 2015-03-24 阅读:1366

5

回答

有谁能弄找我 13359845123

李焱森 2015-01-31 阅读:1481
  • 帮助人数
  • 0
  • 获得赞数
  • 0
  • 一周积分
  • 0

问题达人换一批

本月问答

排名
用户名
问答积分
< >