-
很好,很给力。
有几个客户就是奔着这个触摸库而采用stm8的。
-
有块开发板就可以开始了
-
23 楼, 你的这个解释是不对的 (你忘记了fifo depth的单位是32Bit word, 不是8 bit Byte).
Rx 160 *4Byte
nptx 160 *4Byte
ptx 128*4Byte
总共是1.5K, 但是手册中说可用的空间是1.25K, 这也是我所困惑的问题.
-
35楼是对函数指针加密的实例
(void *)PS2F1KeyPush + 0x5b7d, //功能键F1压键事件处理
这句是对函数指针数组的内容加密,让反汇编者不能通过肉眼看到函数的真实地址
i = ((key * 53 & 0xf) * 0x1000)+ ((key * 43 & 0xf) * 0x100) + ((key * 23 &
0xf) * 0x10) + (key * 13 & 0xf);
这句是解密函数的真实地址。
但这些都逃脱不了解密者的虚拟机或软件仿真的跟踪。
-
方寸电话录音盒专为需要电话录音、收来电号码和拨出号码的软件开发者设计,可以方便地得到来电号码,拨出号码,摘挂机状态,震铃状态,电话录音。我公司提供的来电显示二次开发动态库,并且提供示例程序演示怎样取电话来电号码,拨出号码,摘挂机状态,震铃状态,以及怎么进行电话录音。
该硬件系统适合很多行业,比如电话办公系统、值班系统、送水系统、花店送花、文秘办公系统、小区电话报警等等。当有顾客打电话订购或咨询时,第一次记录电话和地址后,再次来电时会自动弹出来电人地址及曾经记录保存过的其它信息,这样避免了每次询问记录客户地址等,能提高工作效率,有能给客户留下简洁高效的印象。
联系人:张小姐
tel:13715247684
网 址: http://www.mconnm.com
qq:1095770808
-
6.0还没用熟练呢!!看来微软真是怒了!!
-
用51的时候我没发现过这问题晶振11.0592M,现在ARM还是11.0592M,为什么51可以,ARM不行? 我刚将频率跳到晶振频率的3/4时,就没有这现象了....
-
我是典型的电脑白痴,逛逛 也许会发现点认识的东西 呵呵 大家别见笑
-
前面一段程序有点问题,下面是对的。。那个我的问题是在pc发送的命令相互切换时,C命令(也就是循环发送命令)无法切换到其他命令,有没有人帮我想想办法??
#include
#include
#define uchar unsigned char
#define uint unsigned int
#define COUNT 7
sbit beep=P2^3;
sbit dula=P2^6;
sbit wela=P2^7;
sbit adwr=P3^6; //定义A/D的WR端口
sbit adrd=P3^7; //定义A/D的RD端口
unsigned char buffer[COUNT];
unsigned char flag,a,point,RECEIVR_buffer,adval;
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void UART_init()
{
TMOD=0x20;//设置定时器1为工作方式2
TH1=0xfd;
TL1=0xfd;
TR1=1;
ET1=0;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
PS=1;
point=0;
}
void AD()
{
wela=1;
P0=0x7f;
wela=0;
adwr=1;
_nop_();
adwr=0;
_nop_();
adwr=1;
_nop_();
adrd=1; //选通ADCS
_nop_();
adrd=0; //A/D读使能
_nop_();
adval=P1; //A/D数据读取赋给P1口
adrd=1;
}
void sendbyte()
{
ES=0;
SBUF=buffer[0];
while(!TI);
TI=0;
SBUF=buffer[1];
while(!TI);
TI=0;
SBUF='a';
while(!TI);
TI=0;
SBUF=adval;
while(!TI);
TI=0;
SBUF=adval;
while(!TI);
TI=0;
SBUF=adval;
while(!TI);
TI=0;
SBUF=buffer[6];
while(!TI);
TI=0;
delayms(500);
ES=1;
point=0;
}
void main()
{
UART_init();
while(1)
{
if(flag==1)
{
switch(buffer[3])
{
case 'A':{
P1=0;
};break; //启动传感器
case 'B':{
AD();
beep=0;
delayms(50);
beep=1;
delayms(1000);
};break; //开始AD转换
case 'C':{
AD();
beep=0;
// delayms(50);
beep=1;
sendbyte();
};break; //开始传送数据
case 'D':{
AD();
beep=0;
delayms(50);
beep=1;
delayms(1000);
};break; //停止传送数据
case 'E':{P1=0;};break; //停止AD转换
case 'F':{P1=0xff;};break; //关闭传感器
}
}
}
}
com_interrupt(void) interrupt 4
{
unsigned char RECEIVR_buffer;
if(RI==1)
{
RI=0;
RECEIVR_buffer=SBUF;
if(point==0) //如果还没有接收到起始位
{
if(RECEIVR_buffer=='&') //判断是否为起始标志位‘&’
{
buffer[0]=RECEIVR_buffer;
point++;
}
else point=0;
}
else if(point>0&&point
-
把uc8这个数组放到指定区域,STM8S不能寻址超过32K空间的常量,不要让编译器自动分配,自己指定
我的菜单界面都12K咯,程序快到100K,没出现啥异常,
-
xqhrs232妙手回春
-
不知道,帮顶!
-
需要无线网卡的驱动,可以向厂家咨询。
-
it.h中的 //void _stext(void); /* RESET startup routine */
屏蔽掉,
还要保证所有的const变量在32K范围内,我是强制把const放在16K之类
-
是我哥找工作,大家别理解错了O(∩_∩)O哈!
多顶贴多得分,手动结贴~~~
大家多多祝福哈~~~~
-
不能像其他单片机那样,用flashmagic通过串口固化程序么?
-
学习wince驱动复杂的地方就是你要非常熟悉微软限定的
-
似乎大多数人都在支持avr,看来有必要尝试一下了
-
明天我回去看看~~~呵呵~也许我在加10.4寸LCD驱动的时候哪里错了~呵呵~
-
我看看,