由于即将用到C#与单片机的通信程序,我回头使用了STC12系列的单片机,暂时停止AVR。因为AVR的编程器不属于RS232接口通信,弄起来麻烦。为了兼容性,我把程序的名称定义为和AVR里的名称一样,而且使用回调方式,让应用程序能够知道单片机现在发生了什么。编译器:Keil 程序如下:
/**************************************** 函数说明 *******************************************************
本程序由discovery编写,基于8位UART通信
本程序占用TIMER1,并且占用using2寄存器组 使用本函数建议其它程序不要使用TIMER1 需要在系统里指定UART中断回调处理函数
void initUSART( // 初始化UART
char ie,// 中断使能
unsigned long baud, 波特率
void (*function)(char style) 指向中断回调处理程序的指针
)
void sendToUsart(char add,
char *pStr,
unsigned int lenth,
void (*function)(char style)) 向UARTadd子机发送pStr里的lenth个字节数据,并回调函数设置为function
void proc_uart(char style)
{
switch(style)
{
case ON_TXD_OVER://