摘要: 设置系统时钟:CMU_ClockSelectSet(cmuClock_HF,cmuSelect_HFXO);//32MHzGPIO初始化:void LED_Init(void){ CMU_HFPRECLKEN0 |= (1P[3].MODEL |= (4P[3].DOUTTGL |= (1<<7);}延迟函数:void Delay(uint32_t dlyTicks){ uint32_t curTicks; curTicks = msTicks; while((msTicks-curTicks) < dlyTicks);}设置系统滴答时钟:void systick_c... 阅读全文
posted @ 2013-03-28 22:31 zpehome 阅读(1025) 评论(0) 推荐(0) 编辑
摘要: 设置系统时钟:CMU_ClockSelectSet(cmuClock_HF,cmuSelect_HFXO);//32MHzNVIC配置:EFM32的库函数没有关于NVIC配置的库函数,所以我将stm32lxx中的相关库函数移植了进来,因为都是m3内核,NVIC的配置是一样的,只需要少量的修改即可。配置时要注意一下几点。1.stm32的flash起始地址是0x08000000,EFM32的flash起始地址是0x00000000。RAM地址一致。2.stm32的使能和失能是用枚举类型(ENABLE,DISABLE),EFM32使用的是stdbool.h头文件void NVIC_Config(vo 阅读全文
posted @ 2013-03-28 22:31 zpehome 阅读(1339) 评论(0) 推荐(0) 编辑
摘要: 设置时钟:CMU_ClockSelectSet(cmuClock_HF,cmuSelect_HFXO);//32MHz配置NVIC:void NVIC_Config(void){ NVIC_InitTypeDef NVIC_InitStructure;#ifdef VECT_TAB_RAM NVIC_SetVectorTable(NVIC_VectTab_RAM,0x0);#else NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x0);#endif NVIC_PriorityGropConfig(NVIC_PriorityGrop_1... 阅读全文
posted @ 2013-03-28 22:31 zpehome 阅读(2148) 评论(0) 推荐(0) 编辑
摘要: 此程序是配置EFM32的时钟频率,用OUTPUT_INTERNAL和OUTPUT_EXTERNAL来区分是内部时钟和外部时钟。通过用示波器测量PA1脚和PA2脚的频率,证明程序完全正确。#include #include #include "efm32.h"#include "efm32_chip.h"#include "efm32_cmu.h"#include "efm32_gpio.h"#define OUTPUT_INTERNAL 1 //GPIO输出内部振荡波形//#define OUTPUT_EXTERN 阅读全文
posted @ 2013-03-28 22:30 zpehome 阅读(1187) 评论(0) 推荐(0) 编辑
摘要: 前提是电脑主板上有蜂鸣器,该功能主要用于产生提示音。[DllImport("kernal32.dll")]private static extern int Beep(int dwFreq,int dwDuration);//第一个参数是发声频率,第二个参数是持续时间在程序中直接调用Beep函数就可以了 阅读全文
posted @ 2013-03-13 20:34 zpehome 阅读(705) 评论(0) 推荐(0) 编辑
摘要: 要想使用DMA功能,首先使能DMA模块的时钟。RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1,ENABLE);将SPI的接收和发送方式设置为DMA方式void SPI_Config(void){ SPI_I2S_DeInit(SPI1);//重置SPI1 SPI_InitStruct.SPI_Direction=SPI_Direction_2Lines_FullDuplex;//spi设置成双向双线全双工 SPI_InitStruct.SPI_Mode=SPI_Mode_Master;//SPI工作在主模式 SPI_InitStruct... 阅读全文
posted @ 2013-03-13 20:33 zpehome 阅读(1088) 评论(0) 推荐(0) 编辑
摘要: Form1主窗体:public delegate void SetVisiableHandler();//定义委托类型private void button1_Click(object sender,EventArgs e)//单击事件,打开子窗体{ Form2 frm = new Form2(new SetVisiableHandler(SetVisiable)); frm.Show();}private void SetVisiable(){ dataGridView1.Rows.Add("123","456","789");}F 阅读全文
posted @ 2013-03-11 20:45 zpehome 阅读(211) 评论(0) 推荐(0) 编辑
摘要: .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.. 阅读全文
posted @ 2013-01-24 08:48 zpehome 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 在工作中写过很多串口调试软件,大部分都用于生产测试用。创建串口实例:SerialPort serialPort = new SerialPort();在窗体加载时注册串口接收事件:private void FrmMain_Load(object sender,EventArgs e){ InitBandRate();//初始化波特率 InitPortName();//初始化串口号 serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);//注册串口接收事件} ... 阅读全文
posted @ 2013-01-22 15:22 zpehome 阅读(474) 评论(0) 推荐(0) 编辑
摘要: 在做电子标签项目产品中要有低电压检测功能。可编程电压检测(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 阅读全文
posted @ 2013-01-22 15:20 zpehome 阅读(2445) 评论(0) 推荐(0) 编辑