-
顶
-
发过去了
-
非常感谢,收藏了
-
也就是一些用户配置的参数吧,也就每次开机读取一下,参数改动的时候保存一下。
-
STM8S103 是没有TIME3的啊,
-
驱动的DbgPrint必须用专用的工具才能够查看的。
可以用Debugview看:
http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx
注意,在Win7下面,需要打开一些DbgPrint的显示开关才可以查看Dbgprint信息。
-
1)是的,所有的SRAM存储器和外设寄存器都可用位段的别名读写。
2)对不起,我没有研究过Cortex-M3的指令,你能说说互斥访问指令的作用是什么吗?
-
我点电脑刚才死机了
请问这是为什么
————————————————————————
多么似曾相识的感觉
-
只学单片机是远远不够的,
-
蜂鸣器能播出音乐嘛? 那样的声音是不是很单调啊 ?、、
-
感觉上你这个设备到SD系统就认为SD卡被拨出了?!只是精略的看了一眼。MARK下,回头仔细瞧瞧。
-
Interlaced and progressive
隔行和逐行
-
引用:
楼主,说话怎么一点逻辑性都没有。
因为我改完后必须删掉一些原来的代码才能编译。(IAR里设为Large模式后)?..
我调用的文件数据格式为medium,所以编译会出错。
-
mark
-
中断还没写过,帮不了你,帮顶吧..
大家都在看 张帆老师的windows驱动技术详解 啊, 能发我一份么? 谢谢了,, willen.xia@gmail.com
-
不懂,帮顶一下吧
-
各位老大提供的PMU的芯片怎么输入电压范围这么小啊。是不是我看错了,几乎都是4V到5.5V?那电池岂不是要先升压????
我越高越糊涂了。
-
顶~~~~~~~~~~~~~~~~~·
-
目前来说还是无法取代的,到第4代移动通信系统可能取代
-
/************************************************************************/
/****************** 广州信先行电子科技有限公司 ****************/
/****************** WWW.XXXMCU.COM ****************/
/****************** ****************/
/****************** MCU:STC89C52RC ****************/
/***********************************************************************/
//晶振:11.0592M (注意,如果选用其他频率晶振请调节好定时器参数)
#include "reg51.h"
#include
#include
#define CMD_LEN 75 // 命令长度
#define CMD_TAG 1 // 提示符长度
unsigned char g_ucCmd[CMD_LEN + 1] = {0};
unsigned char g_ucLen = 0; // 命令长度
unsigned char g_ucCur = 1; // 光标位置
char uart_data;
void send_char_com(unsigned char ch)
{
SBUF=ch;
while(TI==0);
TI=0;
}
//向串口发送一个字符串
void send_string_com(unsigned char *str )
{
unsigned int k=0;
do
{
send_char_com(*(str + k));
k++;
} while(k < strlen(str));
}
/* 串行通信初始化*/
void UartInit()
{
SCON = 0x50; // uart 模式1 (8 bit), REN=1;
TMOD = TMOD | 0x20 ; // 定时器1 模式2;
TH1 = 0xFD; // 9600 Bds at 11.059MHz
TL1 = 0xFD;
// TH1 = 0xFA; // 9600 Bds at 22.1184MHz
// TL1 = 0xFA;
// TH1 = 0xF7; // 9600 Bds at 32MHz
// TL1 = 0xF7;
ES = 1; //允许uart中断;
EA = 1; //允许CPU中断;
TR1 = 1; //运行定时器1:
}
/************************************************************
* 字符处理过程函数。根据输入的普通字符或控制字符判断回显。
***********************************************************/
void UartCharPro( unsigned char ch)
{
switch(ch)
{
case '\b': // 退格键
if(g_ucCur > CMD_TAG)
{
send_char_com('\b');
send_char_com(' ');
send_char_com('\b');
if(g_ucLen)
{
g_ucLen--;
}
g_ucCur--;
}break;
case '\r': // 回车键
send_string_com("\r\n");
send_string_com(g_ucCmd);
send_string_com("\r\nroot:>");
while(g_ucLen > 0) //清空命令缓冲区
g_ucCmd[g_ucLen--]=' ';
g_ucCur = 1;
break;
default: // 其它字符
send_char_com(ch);
g_ucCur++;
if(g_ucLen < CMD_LEN)
{
g_ucCmd[g_ucLen++] = ch;
}
else
{
g_ucCmd[g_ucLen] = 0;
}
}
}
void serial_IT(void) interrupt 4
{
uart_data = SBUF; //读接收到的数据;
if (RI == 1) //如果是接收;
{
RI = 0; //清接收标志以便可以接收下一个数据;
//send_char_com(uart_data);
UartCharPro(uart_data);
// send_string_com("you have send\n" );
}
}
void main (void)
{
UartInit();
TI = 0; //清发送标志;
send_string_com(" The Serial Command Server:\r\nroot:>" );
while(1);
}