-
补充以下: 用的网上下的iar5。50限制版
-
我没有软件模拟,软件模拟应该没问题。实际运行肯定是这样子了。
-
还可以到设备管理器里面,找到给设备,Disable 该设备。以后设备插拔就都不会提示找到新硬件了。
-
更新你的交叉编译工作链,看版本是否有冲突。
-
这个问题问得好
-
因为我用定时器模拟红外,在停止位时向TIM3写入超时时间,TIM1就没法捕获了,可是如果不向TIM3写超时时间,TIM1就能正常捕获了
-
楼主可以参照一下我的这个数据结构:
struct tagJycDataInfo
{
unsigned char cFrameHead; // 帧头 0xAA
unsigned char cAddr; // 从机地址
unsigned char cCommand; // 命令字
unsigned char cDataSize; // 数据长度
unsigned char cDataArray[80]; // 数据,数据长度为0时,本数据段为空
unsigned char cCheckSun; // 校验和
unsigned char cFrameTail; // 帧尾 0xAA
};
复制代码
发送时把这个数据包转换成一个十六进制的字符串即可
接收时再按照此种格式将数据还原
-
终于找到答案了,不光NFADDR需要定义为(*(unsigned char *)),NFDATA也需要定义为(*(unsigned char *))。
-
lz牛人!
-
用条件语句控制取键值可以实现!
-
中断如果不请,下次肯定就进不去了
-
引用楼主 freegrils 的回复:
大家好
我想花好多时间尽可能全面的学习计算机硬件知识,请问应该看那些书?我打算下功夫专心学习计算机硬件技术,哪怕是从机器语言开始学起我也愿意,所以各位对硬件技术要是有研究的话尽可能的给我推荐相关书籍。
我想学的方面包括以下内容:
1.计算机中是如何执行各条指令的(最好清楚的介绍相关的控制电路、算术电路、逻辑运算电路)
2.计算机是如何相互通信的(浮于……
针对第一点:可以看计算机基础以及单片机的工作原理,最好学点汇编,数字电路(讲的就是控制电路、算术电路、逻辑运算电路)要好好复习。
第二点:通信数据的编码原理这一块就涉及到了数字信号处理这一块了(DSP),找点DSP相关资料来看看点,不过这不是一个小的学习计划了。
第三点:需要看的是通信原理和射频相关原理(模拟电路),不过想自己开发通讯工具,不找方案供应商开发的难度和工作量是非常大的,而且成功率实在不高。
-
自己导入图片的时候,不是要求你自己填写资源类型(resource type)吗,
比如你填写的时候是“mytype”
LoaResourceImage(hWnd,MAKEINTRESOURCE(IDM_IMAGE),_T("mytype"),0,0,0,Screen_height,Screen_width)
试下
-
楼主有没有看过ST官方库的USB例程代码
在每个例子的hw_config.c文件里面有这样一段
/*******************************************************************************
* Function Name : Get_SerialNum.
* Description : Create the serial number string descriptor.
* Input : None.
* Output : None.
* Return : None.
*******************************************************************************/
void Get_SerialNum(void)
{
u32 Device_Serial0, Device_Serial1, Device_Serial2;
Device_Serial0 = *(u32*)(0x1FFFF7E8);
Device_Serial1 = *(u32*)(0x1FFFF7EC);
Device_Serial2 = *(u32*)(0x1FFFF7F0);
if (Device_Serial0 != 0)
{
Speaker_StringSerial[2] = (u8)(Device_Serial0 & 0x000000FF);
Speaker_StringSerial[4] = (u8)((Device_Serial0 & 0x0000FF00) >> 8);
Speaker_StringSerial[6] = (u8)((Device_Serial0 & 0x00FF0000) >> 16);
Speaker_StringSerial[8] = (u8)((Device_Serial0 & 0xFF000000) >> 24);
Speaker_StringSerial[10] = (u8)(Device_Serial1 & 0x000000FF);
Speaker_StringSerial[12] = (u8)((Device_Serial1 & 0x0000FF00) >> 8);
Speaker_StringSerial[14] = (u8)((Device_Serial1 & 0x00FF0000) >> 16);
Speaker_StringSerial[16] = (u8)((Device_Serial1 & 0xFF000000) >> 24);
Speaker_StringSerial[18] = (u8)(Device_Serial2 & 0x000000FF);
Speaker_StringSerial[20] = (u8)((Device_Serial2 & 0x0000FF00) >> 8);
Speaker_StringSerial[22] = (u8)((Device_Serial2 & 0x00FF0000) >> 16);
Speaker_StringSerial[24] = (u8)((Device_Serial2 & 0xFF000000) >> 24);
}
}
这段代码的意思是把序列号字符串用芯片的唯一ID来替换
你只需要把芯片ID换成你想要的字符就行了
-
1 搞电气的一般去电业局,电厂,电力公司
2 是偏离了点方向
3 能不能学好,不用看专业,关键看你的兴趣和恒心
4 “嵌入式”这东西,我觉得很有趣,无论是驱动还是应用。
觉得有趣,每天就可以投入大量的时间和精力,就一定能学好
5 我是弄的WINCE,刚工作半年,觉得如果水平还行的话,
这个行业薪资待遇一般都还可以。
6 如果兴趣在这,就别犹豫了,抓紧时间吧。
-
俺们部门都用这个
-
usb设备上报描述符可以上报成scsi, hid, 蓝牙等类型,如果自己做,可以报任何一种类型,别的人硬件就不知道了。
-
有答案了,路过一下。。。。。。
-
路过 。。。。。
-
TCP/IP原来的程序是在编辑框输入字符 然后点 发送 的Button就发出去了 我是想着把文件的内容读到那个编辑框里 然后在点 发送 的Button发送
void CTCPClientExDlg::OnSend()
{
int nErrorCode;
int cnt = 0, actlen = 0;
if (m_Socket == NULL)
return;
UpdateData(TRUE);
int sendlen = m_SendEdit.GetLength(); /* 取得输入字符串长度 */
char *psendbuff = new char[sendlen];
for(int i = 0; i < sendlen;i++)
psendbuff = (char)m_SendEdit.GetAt(i); /* 转换为单字节字符 */
while(cnt < sendlen)
{ // 发送数据
actlen = send(m_Socket, psendbuff + cnt, sendlen - cnt, 0);
if (actlen == SOCKET_ERROR )
{
MessageBox(_T("TCP 数据发送失败!"));
nErrorCode = WSAGetLastError();
delete[] psendbuff;
return;
}
cnt = cnt + actlen;
if (cnt < sendlen)
Sleep(1000);
}
delete[] psendbuff;
}