摘要: 1)硬件网络结构 a)RS232是 1:1 的通讯 b)RS485是 1:n 的通讯方式 其中有一台作为主机,其它作为从机;多态从机是通过地址码来区分的2)如果你是单片机编程: a)从单片机编程角度来看,RS232 和RS485 只是驱动芯片不同。 b)RS485 主机编程注意事项 因为RS485是单双工,RS232是全双工。所以在编程的时候是有区别的。 RS485芯片接收和发送不能同时进行,所以作为主机的单片机在发出指令后,要延时后再 接收数据。 c) RS485 从机编程注意事项: ... 阅读全文
posted @ 2013-07-24 21:55 zpehome 阅读(469) 评论(0) 推荐(0) 编辑
摘要: 最近用Uart_Printf函数输出格式化字符,用到C语言字符串格式化显示。符号 作用 ────────────────────────── %d 十进制有符号整数 %i 输入整数,可以是带前导0的八进制数或0x的十六进制数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值(内存地址) %e 指数形式的浮点数 %x, %X 无符号以十六进制表示的整数 %0 无符号以八进制表示的整数 %g, %G 自动选择合适的表示法 ━━━━━━━━━━━━━━━━━━━━━━━━━━格式字符串的一般形式为:[标志][输出最小宽度][.精度][长度]类型其中... 阅读全文
posted @ 2013-07-24 21:42 zpehome 阅读(439) 评论(0) 推荐(0) 编辑
摘要: 本篇文章主要讲解用通用定时器TIM2产生1ms定时的中断:首先是定时器配置,代码如下:void Tim2_Configration(void){ TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_DeInit(TIM2);//重新将Timer设置为缺省值 TIM_InternalClockConfig(TIM2); //采用内部时钟给TIM2提供时钟源,内部时钟(CK_INT)、外部时钟模式1:外部输入脚(TIx)、外部时钟模式2:外部触发输入(ETR) TIM_TimeBaseStructure.TIM_Pres... 阅读全文
posted @ 2013-07-02 13:34 zpehome 阅读(785) 评论(0) 推荐(0) 编辑
摘要: 在每个STM32的芯片上都有两个管脚BOOT0和BOOT1, 这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序STM32中可以通过配置BOOT1和BOOT0两个引脚来配置系统的启动模式,也就是说系统启动后从哪里运行,有三种情况如下:BOOT1=x BOOT0=0 从用户闪存启动,这是正常的工作模式。BOOT1=0 BOOT0=1 从系统存储器启动,这种模式启动的程序功能由厂家设置。BOOT1=1 BOOT0=1 从内置SRAM启动,这种模式可以用于调试。 阅读全文
posted @ 2013-07-02 10:15 zpehome 阅读(1166) 评论(0) 推荐(0) 编辑
摘要: 示例代码如下:SaveFileDialog sfd = new SaveFileDialog();//设置文件类型 sfd.Filter = "文本文件(*.txt)|*.txt|Word文件(*.docx)|*.docx";//设置默认文件类型显示顺序 sfd.FilterIndex = 1;//保存对话框是否记忆上次打开的目录 sfd.RestoreDirectory = true;//点了保存按钮进入 if (sfd.ShowDialog() == DialogResult.OK){ string localFilePath = sfd.FileName; //获得文 阅读全文
posted @ 2013-06-25 16:19 zpehome 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 调用API库:[DllImport("user32.dll", EntryPoint = "SendMessageA")]private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, StringBuilder lParam);[DllImport("user32 ")]private static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);在函数里调 阅读全文
posted @ 2013-06-24 15:56 zpehome 阅读(783) 评论(0) 推荐(0) 编辑
摘要: 很简单,一句话:System.Diagnostics.Process.Start(path);其中path是要启动程序的目录。 阅读全文
posted @ 2013-06-21 10:04 zpehome 阅读(301) 评论(0) 推荐(0) 编辑
摘要: C语言中所谓的字符串不过是字符数组,后跟一个0x00字符标识结尾,所以反转起来很容易,只要一个循环依次将第一个字符和最后一个字符交换,第二个字符和倒数第二个字符交换……如果最中间有两个字符(即需要反转的字符串长度为偶数),那就交换,如果最中间有一个字符(即需要反转的字符串长度为奇数),那就不需要碰它。还有就是最后一个用来标识字符串结尾的0x00字符不用动它。代码如下:void reversestr(char *str){ int i = 0; char temp; char *s1,*s2; while(*str != '\0') { i++;str++; } str -=.. 阅读全文
posted @ 2013-05-28 09:00 zpehome 阅读(437) 评论(0) 推荐(0) 编辑
摘要: Cortex‐M3的内核中包含一个SysTick时钟。SysTick为一个24位递减计数器,SysTick设定初值并使能后,每经过1个系统时钟周期,计数值就减1。计数到0时,SysTick计数器自动重装初值并继续计数,同时内部的COUNTFLAG标志会置位,触发中断(如果中断使能)。在STM32的应用中,使用Cortex‐M3内核的SysTick作为定时时钟,设定每一毫秒产生一次中断,在中断处理函数里对N减一,在Delay(N)函数中循环检测N是否为0,不为0则进行循环等待;若为0则关闭SysTick时钟,退出函数。外部晶振为8MHz,9倍频,系统时钟为72MHz,SysTick的最高频率为9 阅读全文
posted @ 2013-05-28 09:00 zpehome 阅读(2105) 评论(0) 推荐(0) 编辑
摘要: 定义结构体:struct LNode { ElemType data; struct LNode *next; };typedef struct LNode *LinkList; /* 另一种定义LinkList的方法 */ 链表初始化:Status InitList(LinkLis... 阅读全文
posted @ 2013-05-28 09:00 zpehome 阅读(393) 评论(0) 推荐(0) 编辑