智能电源板调试与编程日记(10)
已有 3262 次阅读
2009-7-6 23:54
|个人分类:地球物理及仪器|系统分类:科研笔记|
日记, 仪器开发, 电源板, 调试, AT89C51AC2
2009-07-03 星期五 晴:今天的目标是实现上位机通过串口对电源板各个电源进行控制。首先定义两者之间的控制协议,在单片机上定义一个字符数组接收上位机传来的控制命令。由于单片机平时处于待机状态,整个命令行的接收在中断函数里实现。通过定义两个位变量,实现了通过识别命令行起始字符和换行字符接收命令行功能。中断函数收到一个完整命令行后,通过对位变量置位通知主程序。主程序知道一个完整命令行收到后对命令进行处理。提取电源板控制信息。程序编好后测试发现串口没有输出了,中断能够正常响应,电源板也能够控制。通过多种手段,发现printf函数在开串口中断后死在发送第一个字符位置了。printf函数实际上是调用putchar函数实现串口输出。把KEIL C中putchar源程序找来,进行修改。同时在串口中断函数里对发送中断不处理,也就是不让TI=0。在putchar函数采用最简单的发送代码,把通信软握手有关的代码全删了。以查询方式输出字符。程序多次修改后终于实现了预期的功能。
https://blog.sciencenet.cn/blog-39626-242225.html
上一篇:
智能电源板调试与编程日记(9)下一篇:
智能电源板调试与编程日记(11)