01 2013 档案
摘要:.NET下Socket编程,可以实现发送文件和文本,部分代码如下:服务器端程序:Thread threadWatch=null;//负责监听客户端连接请求的线程Socket watchSocket=null;//服务器端负责监听的套接字private void btnBeginListen_Click(object sender,EventArgs e)//启动服务{ //创建负责监听的套接字(使用IP4协议,使用流式连接,使用Tcp协议传输数据) watchSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,P..
阅读全文
摘要:在工作中写过很多串口调试软件,大部分都用于生产测试用。创建串口实例:SerialPort serialPort = new SerialPort();在窗体加载时注册串口接收事件:private void FrmMain_Load(object sender,EventArgs e){ InitBandRate();//初始化波特率 InitPortName();//初始化串口号 serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);//注册串口接收事件} ...
阅读全文
摘要:在做电子标签项目产品中要有低电压检测功能。可编程电压检测(PVD)将VDD电压与一个可选的阈值电压比较,阈值可通过PWR_CR寄存器的PLS[2:0]进行选择。标志位PVDO的值表明VDD电压的值高于或者低于此阈值电压。如果PVDO的值为0,说明VDD电压高于此阈值电压。如果PVDO的值为1,说明VDD电压低于此阈值电压。这一事件连接到EXTI line16,如果使能EXTI会产生一个中断。在standby模式可编程电压检测被停止。配置可编程电压检测:PWR_PVDLevelConfig(PWR_PVDLevel_0);//可选PWR_PVDCmd(ENABLE);//使能电压检测检查PVDO
阅读全文
摘要:用STM32L151(以下简称151吧)有一段时间了,151主要应用于低功耗领域,例如电子标签,低功耗性能不错。正题:由于所用板子上的IIC器件一直没有上拉电阻所以一直用IO口模拟IIC(IIC器件是加速度传感器ADXL346),最近新版子上多了一个IIC器件(温湿度传感器SI7005),带有上拉电阻,我本想先不焊接上拉电阻,用以前模拟IIC的程序检测一下器件是否焊接良好,结果不通,我检查了几遍程序,将IO口改成ADXL346的驱动端口是可以读取出器件ID的,但是SI7005就是不行。我检查焊接好像没问题,然后用示波器看了下波形,在写器件地址时没有应答信号。ADXL346程序:#define
阅读全文
摘要:【1】 成为一棵大树的第一个条件: 时间!没有一棵大树是树苗种下去,马上就变成大树,一定是岁月刻画着年轮,一圈圈往外长。启示: 要想成功,一定要给自己时间! 时间就是经验的积累!【2】 成为一棵大树的第二个条件:不动!没有一棵大树,第一年种在这里,第二年种在那里,而可以成为一棵大树,一定是千百年来经风霜,历风雨,屹立不动!正是无数次的经风霜,历雨露最终成就大树!启示: 要想成功,一定要“经风霜、历雨露而不悔”!【3】成为一棵大树的第三个条件:根基!树有千百万条根,粗根、细根、微根,深入地底,忙碌而不停的吸收营养,成长自己。绝对没有一棵大树,没有根!启示: 要想成功,一定要不断学习!不断充实自己
阅读全文
摘要:开启IIC时钟:CLKCON |= (1<<10)|(1<<13); //开启串口0时钟中断服务程序:void IRQ_Handler(void) __irq //irq中断函数{ switch(INTOFFSET) { case 27: irq_IIC();//中断处理程序 break; }}中断处理函数:void irq_IIC(void){ unsigned int iicSt,i; SRCPND = BIT_IIC; //Clear pending bit INTPND = BIT_IIC...
阅读全文
摘要:宏定义: #define WrUTXH0(ch) (*(volatile unsigned char *)0x50000020) = ch //串口发送缓冲寄存器 #define RdURXH0() (*(volatile unsigned char *)0x50000024) //串口接受缓冲寄存器 #define WrUTXH1(ch) (*(volatile unsigned char *)0x50004020) = ch #define RdURXH1() (*(volatile unsigned char *)0x50004024) #define WrUTXH2...
阅读全文
摘要:定时器实现流水灯:int main(){ SystemClockInit(); CLKCON |= (1<<8)|(1<<13);//使能PWMTIMER时钟,使能GPIO时钟 GPBCON = 0x155555;//配置protB的所有引脚为输出 Timer0_Config(); while(1) { //点亮第一个小灯 GPBDAT |= 0x1E0; GPBDAT &= 0x1C0; count=0;flag=0; while(flag!=1);flag=0; //点亮第二个小灯 GPBDAT |= 0x1E0; GPBDAT &= 0x1A0;
阅读全文
摘要:在TQ2440的中断这里卡了很久,最后看了一位大神的空间把问题解决了,在这里表示一下感谢。下面我把代码贴出来跟刚学习2440的人分享:进入ISR后,清除中断的顺序很重要,首先是srcpnd接着是intpnd,如果还需要清除eintpnd的话,要最先清除。初始化中断:void irq_init(void) //irq初始化,这个函数其实比较简单,适当看看2440PDF就应该能设定寄存器了{ GPFCON = 0xaaaa; SRCPND = 0x17; INTMSK &= ~(0x17); INTPND = 0x17; EINTPEND =(1<<4); ...
阅读全文
摘要:这是我的第一个TQ2440程序,流水灯:int main(){ //系统时钟初始化 SystemClockInit(); CLKCON |= (1<<13);//使能GPIO时钟 GPBCON = 0x155555;//配置protB的所有引脚为输出 while(1) { //点亮第一个小灯 GPBDAT |= 0x1E0; GPBDAT &= 0x1C0; delay();//软件延时 //点亮第二个小灯 GPBDAT |= 0x1E0; GPBDAT &= 0...
阅读全文
摘要:S3C2440有三个时钟:FCLK for CPU, HCLK for the AHB bus peripherals, and PCLK for the APB bus peripheralsS3C2440系统时钟配置:首先配置PLL控制寄存器设置MPLLCON寄存器unsigned int FCLK;unsigned int HCLK;unsigned int PCLK;unsigned int UCLK;#define FIN 120000001 void ChangeMPllValue(int mdiv,int pdiv,int sdiv)//设置FCLK的值2 {3 MPLL...
阅读全文