-
大三做mp3了,现在的大学生越来越厉害了!!!长江后浪推前浪啊!!
-
你确定你执行了TIM2_CR1 = 0x01; 好好看看程序,也许你没有调用。
-
不要跪问。男儿上跪天,下跪地,中间跪父母。别动不动的就跪。一个芯片,一个差分电路,就可以了
-
12864有的液晶驱动有并口方式和串口方式的选择管脚,你看看说明!
-
哦,看到MSDN上也有解释。
多谢楼上二位
-
可以先烧好optionbyte,在用STVD直接进入调试模式,也可以在STVD的调试界面下通过菜单直接修改Option byte
-
ucos之所以管理中断:
1. 为了保证它的调度是受控的
2. 为了方便在中断服务函数中也能使用操作系统功能,但是要特别小心!
3. 在可控的情况下,可以有不受操作系统管理的中断。
如果想了解更多,请看此书:
基于嵌入式实时操作系统的程序设计技术,周航慈、吴光文著,北航出版。
-
少些是需要时间的,延时是必要的。
-
单片机里没有像WIN有操作系统在管理芯片资源
在它里面写的程序完全就都面向控制,至少在你没用OS的情况下是这样
如果END,这样就造成了芯片执行到你没有写入程序的ROM里
直到最后,它的PC溢出后"重启"
而后面这样的执行是没有意义的
-
引用 5 楼 paul_chao 的回复:
call CreateProcess
Paul, Chao @ Techware
这个办法我试试,呵呵。
-
jf
-
引用 7 楼 hao507 的回复:
在网上找个FTPSocket类,复用下就行了~~
怎么找,怎么复用???
-
这个是必须要接一起的,如果涉及到ADC的话还要注意数字地和模拟地
-
printf("[0x%x]=0x%x\n",in_strm_buf,*(void *)(in_strm_buf));备注:void可以改成in_strm_buf地址中存储的数据类型,我是让以十六进制打印出来的
-
就是这个um0721.zip文件
你用IAR或者MDK打开,可以看到里面有多种项目配置,每种项目配置都可以帮你下载一个指定的BIN文件到10C_EVAL板上。
这些指定的BIN文件分别演示了105/107做主机时的MASS STORAGE,HID协议,做设备时的MASS STORAGE,HID协议和作为OTG设备时的DRD协议。还有读取U盘中的MP3,WAV文件,然后播放的演示。
所有这些演示都只有BIN文件,没有代码。
-
mov指令用法:
mov Rd, shifter_operand
其中shifter_operand可以是:
#immed(立即数)
Rm, shift #immed (shift为移位操作)
Rm, shift Rs
指令"MOV RO, R1, LSL #3 ;RO=R1*(2**3)"中的shiter_operand为:
r1, lsl #3
lsl = logical shift left (逻辑左移)
-
iwillbeback008 好
你的bootloader 代码能发我参考下么 ?7.2S对我的系统满足要求了
-
干扰?
-
学习了
-
/*Date Define*/
#define SIZE_OF_LARGENUM 3 //宏定义,用于定义LARGENUM可计算的位数SIZE_OF_LARGENUM×32bit
typedef int UINT32;
typedef char BOOL;
typedef struct {
BOOL fNegative;
UINT32 u[SIZE_OF_LARGENUM];
} LARGENUM;
LARGENUM Num1, Num2;
/*
//Compare the Num1 and Num2
//Note: the compare ignore the signs
//if Num1 greater than Num2 return TRUE
//if Num2 greater than Num1 return FALSE
*/
BOOL
LargeNumCompare(
PLARGENUM pNum1,
PLARGENUM pNum2
)
{
int i;
for(i=SIZE_OF_LARGENUM-1; i>=0; i--){
if(pNum1->u.s32.u[i] > pNum2->u.s32.u[i]){
return TRUE;
} else if(pNum1->u.s32.u[i] < pNum2->u.s32.u[i]){
return FALSE;
}
}
return FALSE;
}
int main()
{
/*Set Num1 of 0x123456789ABCDFE*/
Num1.fNegtive = FALSE; //FALSE means the Num1 is not negtive number
Num1.u[0] = 0x9ABCDFEl;
Num1.u[1] = 0x12345678l;
/*Set Num1 of 0x987654321FEDCBA*/
Num2.fNegtive = FALSE; //FALSE means the Num1 is not negtive number
Num2.u[0] = 1FEDCBAl;
Num2.u[1] = 0x98765432l;
if ( LargeNumCompare( &Num1,&Num2 ) ){
//Num1 is greater than Num2
//Add the code...
}
else{
//Num2 is greater than Num1
//Add the code...
}
}
复制代码
上面的代码就可以了,只不过没有比较由符号的情况,要考虑由符号的情况,在原来函数的基础上考虑符号即可,原函数相当于只考虑了符号相同且均为正数,还剩下符号相反,符号相同为负数,原理类似。
只需考虑好数字的拼接就可以了,类似的可以做加减乘除运算;
上面的函数基本计算单位为32位,如果数字位数更大的话,比如两个128位数比较,只需修改SIZE_OF_LARGENUM宏即可,128/32= 4;
其实这就是个迭代运算。
有用的话,请加分,呵呵