页次: 1
在ubuntu上安装MQTT: https://www.jianshu.com/p/37f7ee7ead65
谢谢大佬, 这招不错, 已经学到了
$ fdisk -l /mnt/hgfs/E/v3s_wifi_ap6212_debug.img
Disk /mnt/hgfs/E/v3s_wifi_ap6212_debug.img: 1996 MB, 1996488704 bytes
255 heads, 63 sectors/track, 242 cylinders, total 3899392 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00034daf
Device Boot Start End Blocks Id System
/mnt/hgfs/E/v3s_wifi_ap6212_debug.img1 2048 526335 262144 6 FAT16
/mnt/hgfs/E/v3s_wifi_ap6212_debug.img2 526336 3598335 1536000 83 Linux
$mount -v -o offset=$((2048*512)) -t vfat /mnt/hgfs/E/v3s_wifi_ap6212_debug.img /tmp/one
$mount -v -o offset=$((526336*512)) -t vfat /mnt/hgfs/E/v3s_wifi_ap6212_debug.img /tmp/two
挂载成功了。
问:
以前挺明白的,今天一下子觉得以前的理解都不对了,以下三种解释哪个对呢?解释一:
RTS:终端我已经准备就绪,有数据就发过来吧
CTS:来了,接招解释二:
RTS:终端我准备发数据给你,快用CTS应答,准备好没?
CTS:好了,来吧解释三:
CTS:主机,我有数据,请求接收
RTS:我是主机,就绪,请求发送。我今天弄了个SIM100模块,我将RTS设置无效之后,凡是要发往主机的数据都没有发过来(包括主动数据RING),指令和指令返回结果都没有返回,都缓存在模块之中,等我将RTS设置有效后,缓存的数据全发来了,包括一大堆指令的执行结果,由此,我觉得上面的“解释一”应该正确,而“解释二”应该是错的,但“解释三”是否正确呢?就是说CTS和RTS哪个是发起者呢?
答:
一是错的
二是RS232标准
三是MODEM的硬件流控
SIMCOM公司的解释完全正确
原文链接:https://blog.csdn.net/lyl_98/article/details/1022728
还有这种操作啊, 以前没有玩过这RTS/CTS两个腿,刚刚去学习了一下。
请问这两个脚还能单独编程操作?
不是协议自动控制吗?
void int0(void) interrupt 0 using 0
{
unsigned char i,temp,length;
unsigned char data buf[64]; //接受到的数据存放的缓冲数组,64个位置
CH375_WRCMD(CMD_GET_STATUS); //发获取375的中断类型(状态)命令,并取消中断信号
temp=CH375_REDAT(); //读取中断类型(状态)值
switch(temp) //判断中断类型(状态),具体区分请见375头文件中的定义
{
case USB_INT_EP2_OUT:
//如果是0x02,则是端点2的OUT事务(接收到数据,OUT成功),OUT是相对于主机端计算机来说的
CH375_WRCMD(CMD_RD_USB_DATA); //发读取USB缓冲区数据命令,并释放缓冲区
length=CH375_REDAT(); //先读取数据长度
for(i=0;i<length;i++) //根据数据长度,读取所有值
{
buf[i ]=CH375_REDAT(); //读取的数据放入缓冲数组
}
/*以下为向主机端计算机发送接收到的数据*/
CH375_WRCMD(CMD_WR_USB_DATA7); //发向端点2的发送缓冲区写数据命令
CH375_WRDAT(length); //先写入数据的长度
for(i=0;i<length;i++) //根据长度,依次发送要发送的数据
CH375_WRDAT(buf[i ]);
break; //跳出
case USB_INT_EP2_IN: //如果是0x0A,则是端点2的IN事务(发送完数据,IN成功),IN是相对于主机端计算机来说的
CH375_WRCMD(CMD_UNLOCK_USB); //发送释放缓冲区命令
break; //跳出
default:
CH375_WRCMD(CMD_UNLOCK_USB);
break;
}
}
/***********************************************************************************
****函数名称:主函数
****函数作用:
****函数描述:
************************************************************************************/
void main(void)
{
delay50ms(); //延时50ms
CH375_WRCMD(CMD_SET_USB_ID);
CH375_WRDAT(0x12); // VID低8位
CH375_WRDAT(0x12); // VID高8位
CH375_WRDAT(0x12); // PID低8位
CH375_WRDAT(0x12); // PID高8位
CH375_WRCMD(CMD_SET_USB_MODE); //设置工作模式
CH375_WRDAT(2); //设置为内置固件模式
IT0=0; //设置外部中断0为低电平出发方式
EX0=1; //使能外部中断0
EA=1; //使能所有中断
while(1)
{
if(flag==49)
{
delay50ms();
start_temp_sensor();
temp=read_temp();
shi=temp/10;
ge=temp%10;
/*以下为向主机端计算机发送数据*/
// if(temp<85)
// {
CH375_WRCMD(CMD_WR_USB_DATA7); //发向端点2的发送缓冲区写数据命令
CH375_WRDAT(2);
CH375_WRDAT(shi);
CH375_WRDAT(ge);
// }
}
}
}
CH375_WRCMD(CMD_SET_USB_ID);
CH375_WRDAT(0x11); // VID低8位
CH375_WRDAT(0x11); // VID高8位
CH375_WRDAT(0x11); // PID低8位
CH375_WRDAT(0x11); // PID高8位
把这个删了就可以识别了
页次: 1