黄金会员
主题
帖子
积分6701
阅读权限40
注册时间2011-3-11
最后登录1970-1-1
在线时间 小时
|
楼主 |
发表于 2017-3-20 21:45
|
显示全部楼层
终于有进步了。这个AVR单片机都要把我搞神经了。
好好地,就是读不出来数据。
后来打算用串口发送数据的方式监视程序运行的状态,
可是 串口就是搞不定,都怀疑是不是烧了芯片,加了个LED测试一下是不是坏了,
结果,好好地。
崩溃了一个礼拜天,换了一块板子(没有屏幕),发现奇迹般的就好了,
;*******************************************************************************
; 函数: USART_Init。
; 描述: 初始化串口
; 参数: 无
; 返回: 无
;*******************************************************************************
USART_Init:
LDI R16 , 0X000
STS UCSR1B , R16
STS UCSR1A , R16 //不使用倍速发送
; 设置波特率 19200 bps @ 8MHz
LDI R16 , 25
STS UBRR1L , R16
CLR R16
STS UBRR1H , R16
; 设置帧格式 : 8个数据位 , 1个停止位 , 异步模式,禁止奇偶校验
LDI R16 , (3<<UCSZ10)
STS UCSR1C , R16
; 接收器与发送器使能
LDI R16 , (1<<RXEN1)|(1<<TXEN1)
STS UCSR1B , R16
RET
就这么几行程序,换回来带屏幕的板子,就又可以运行了。
有了串口,终于有所发现,是发送字库的地址码出现了错误。
好好地审视了一下程序,终于找到了问题。
LDI 写成了 LDS,一下子就飞了。
现在还有个小BUG,就是字库读出来第一次点阵全都是FF,然后再读一次就全对了。
应该是我的程序问题,DS没有交代这个事儿啊。
|
|