laoyaomao
获得 0 次赞
帮助过185人
1、首先可以板子和虚拟机可以ping通 2、板子ip 192.168.1.15 虚拟机ip 192.168.1.3 3、执行 mount -t nfs 192.168.1.3:/home/mozie/linux/nfs /mnt/net -o nolock 出现如下错误 : mount.nfs: an incorrect mount option was specified
最近在弄一个I-V转换电路,采用运放组成,但是现在遇到的问题是输入端没有输入的时候输出端也有一个频率为500KHz左右,VPP为1V左右的输出,感觉像是自激振荡了,不知道要怎么解决
题目:定义一个数组,判断数组内各个元素的位,等于0 打印空格 等于1 打印* const unsigned char gImage[2]={0x010xff}; void Gimage_Int(void) { if ((gImage[0])&(0x80)==0x80) //判断最高位是否为1 { printf("*"); } else { printf(" "); } } 通过串口打印 发现 输出* ,求助各位是哪里出了问题
供电采用48v 3A开关电源 存在问题是在拔插电源端子过程中很容易将lm2576hvs烧毁 ,有时带电拔插会烧毁,有时不带电拔插也会烧,并将后面的1117和stm32f103一起烧坏
用da生成一组锯齿波在用ad采集。示波器上看还是好好的,把ad采到的数据放到matlab看就发现有周期性的混乱。均使用dma传输,中断同步。附上ad和da的代码,#include "sys.h" #include "math.h" #include "dac.h" #include "delay.h" #include "led.h" #define DAC_DHR12R1_ADDRESS 0x40007408 u16 sawtooth[tableSize];// tableSize==250 u16 led1=0; //锯齿波 void sawtooth_Generation(void) { u16 n; for(n=0;n<tableSize;n++) { sawtooth[n] = n*16; } } void TIM6_Configuration(void) { RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6 ENABLE); TIM_PrescalerConfig(TIM6 83 TIM_PSCReloadMode_Update); //设置分频系数为83 TIM_SetAutoreload(TIM6 3); //设置自动重载寄存器值为3 TIM_SelectOutputTrigger(TIM6 TIM_TRGOSource_Update); TIM_Cmd(TIM6 ENABLE); } void DacGPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure;//结构体 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA ENABLE);//使能GPIOA时钟 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;//选定PA4 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;//模拟输入 GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOA &GPIO_InitStructure);//GPIOA初始化 } void DAC_DMA_Configuration(void) { DAC_InitTypeDef DAC_InitStructure; //DAC结构体 DMA_InitTypeDef DMA_InitStructure; //DMA结构体 NVIC_InitTypeDef NVIC_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA1 ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC ENABLE);//使能DAC时钟 DAC_InitStructure.DAC_Trigger = DAC_Trigger_T6_TRGO;//使用触发功能 DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;//不用STM32自带的波形 DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Disable;//设置不使用输出缓存 DAC_Init(DAC_Channel_1 &DAC_InitStructure); //DMA1请求映射,DMA的数据流5和通道7为DAC1功能 DMA_DeInit(DMA1_Stream5);//设置数据流5 DMA_InitStructure.DMA_Channel = DMA_Channel_7;//设置通道7 DMA_InitStructure.DMA_PeripheralbaseAddr = DAC_DHR12R1_ADDRESS; DMA_InitStructure.DMA_Memory0baseAddr = (uint32_t)&sawtooth;//定义DMA外设基地址 DMA_InitStructure.DMA_BufferSize = tableSize; //设置DMA缓存大小 //外设数据宽度 DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.DMA_MemoryDataSize = DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToPeripheral; DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; //设置为正常模式 DMA_InitStructure.DMA_Priority = DMA_Priority_High; DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable; DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull; DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; DMA_Init(DMA1_Stream5 &DMA_InitStructure); DMA_Cmd(DMA1_Stream5 ENABLE); //使能DMA1数据流5 DAC_Cmd(DAC_Channel_1 ENABLE); //使能DAC的通道1 //链接DAC通道和DMA通道 DAC_DMACmd(DAC_Channel_1 ENABLE);//使能DAC_DMA通道1 DMA_ITConfig(DMA1_Stream5DMA_IT_TCENABLE);//开启传输完成中断 NVIC_InitStructure.NVIC_IRQChannel = DMA1_Stream5_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0X00; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0X00; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); } void DMA1_Stream5_IRQHandler(void) { if(DMA_GetFlagStatus(DMA1_Stream5DMA_FLAG_TCIF5)==SET) //传输完成标志 { led1++; if(led1==100) { LED1=!LED1; led1=0; } ADC_SoftwareStartConv(ADC1); //启动一次ADC DMA_ClearFlag(DMA1_Stream5DMA_FLAG_TCIF5); //清除传输完成中断 } } void MYDAC_Init(void) { sawtooth_Generation(); DacGPIO_Configuration(); TIM6_Configuration(); DAC_DMA_Configuration(); } #include "adc.h" #include "delay.h" #include "usart.h" #include "led.h" #define len 1400 u16 ADC_ConvertedValue[len]; u16 save[len]; u16 counter; u16 led=0; void ADC_DMA_Config(void) { ADC_InitTypeDef ADC_InitStructure; ADC_CommonInitTypeDef ADC_CommonInitStructure; DMA_InitTypeDef DMA_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2 | RCC_AHB1Periph_GPIOA ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOA &GPIO_InitStructure); ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent; //独立模式 ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div4; //4分频 ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_1; ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles; //两次采样间隔5周期 ADC_CommonInit(&ADC_CommonInitStructure); ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b; //12位模式 ADC_InitStructure.ADC_ScanConvMode = DISABLE; //关闭扫描模式 ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; //单次转换 ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None; //软件触发 ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; //右对齐 ADC_InitStructure.ADC_NbrOfConversion = 1; ADC_Init(ADC1 &ADC_InitStructure); ADC_RegularChannelConfig(ADC1 ADC_Channel_5 1 ADC_SampleTime_3Cycles); //采样3周期 ADC_DMARequestAfterLastTransferCmd(ADC1 ENABLE); ADC_DMACmd(ADC1 ENABLE); ADC_Cmd(ADC1 ENABLE); DMA_DeInit(DMA2_Stream0); DMA_InitStructure.DMA_Channel = DMA_Channel_0; //选择通道0 DMA_InitStructure.DMA_PeripheralbaseAddr = ((u32)ADC1+0x4c); //外设基地址 DMA_InitStructure.DMA_Memory0baseAddr = (uint32_t)&ADC_ConvertedValue; //数据存放地址 DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory; //设置外设到内存 DMA_InitStructure.DMA_BufferSize = len; //设置一次传输数据大小 DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; //外设地址不变 DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; //内存地址递增 DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; //设置为循环模式 DMA_InitStructure.DMA_Priority = DMA_Priority_Medium; //中等优先级 DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable; DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full; DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; DMA_Init(DMA2_Stream0 &DMA_InitStructure); //初始化 DMA_Cmd(DMA2_Stream0 ENABLE); DMA_ITConfig(DMA2_Stream0DMA_IT_TCENABLE); //开启传输完成中断 NVIC_InitStructure.NVIC_IRQChannel = DMA2_Stream0_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0X00; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0X01; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); } void DMA2_Stream0_IRQHandler(void) { if(DMA_GetFlagStatus(DMA2_Stream0DMA_FLAG_TCIF0)==SET) //传输完成标志 { led++; if(led==100) { LED0=!LED0; led=0; } for(counter=0;counter<len;counter++) save[counter]=ADC_ConvertedValue[counter]; DMA_ClearFlag(DMA2_Stream0DMA_FLAG_TCIF0); //清除传输完成中断 } } 复制代码 板子是探索者f407。