-
ADC轉換問題, CORE0是正常的, SHARE使用AN3腳輸入, 結果是錯誤的 sos
我的芯片是dspic33ck32mp105,使用MCC產生代碼,我使用了AN0(可以正常使用了),AN3,AN4(這兩個有問題)我看讀取結果時是有正確讀取正確的BUFER值,但是結果不對?今天下午依照您的建議,關掉CORE0的AN0,及SHARE的AN4,只保留了使用SHARE的AN3,重新用MCC產生新的代碼,結果仍然是錯的.輸入電壓是0V,但是讀值都是1000以上?為什麼?相關代碼如下:main中:while(1){uint16_tValue_ADC=0;DO_ADC(channel_AN3);//只使用SHARE的AN3,Value_ADC=resultADC;}函數://==ADC=====(MCC產生)voidDO_ADC(uint8_tCH){uint32_tconversion,i=0;uint8_tchannel=0;ADC1_Initialize();ADC1_Enable();channel=CH;//ADC1_ChannelSelect(channel);ADC1_SoftwareTriggerEnable();d_ms(1);ADC1_SoftwareTriggerDisable();while(!ADC1_IsConversionComplete(channel));conversion=ADC1_ConversionResultGet(channel);resultADC=conversion;ADC1_Disable();conversion=0;}//讀取值====(MCC產生)inlinestaticuint16_tADC1_ConversionResultGet(ADC1_CHANNELchannel){uint16_tresult;switch(channel){casechannel_AN3:result=ADCBUF3;//有道這裡來讀值,但是結果是錯的break;casechannel_AN4:result=ADCBUF4;break;casechannel_AN19:result=ADCBUF19;break;casechannel_AN20:result=ADCBUF20;break;casechannel_AN0:result=ADCBUF0;break;default:break;}returnresult;}
702浏览 0回复 22关注 -
ADC 更換channel的問題 sos
我的芯片是dspic33ck32mp105,使用MCC產生代碼,我使用了AN0(可以了),AN3,AN4(這兩個有問題)我看讀取結果時是有正確讀取的,但是結果不對?while(1){DISC=1;d_ms(1);DISC=0;d_ms(1);uint32_tconversion,i=0;ADC1_Initialize();ADC1_Enable();channel=channel_AN3;ADC1_ChannelSelect(channel);//這裡選擇channel,我已經改成了channel_AN3;ADC1_SoftwareTriggerEnable();//ProvideDelayfor(i=0;i
1069浏览 0回复 21关注 -
GD32F470VIT6不支持重映射 sos
GD32F470VIT6不支持重映射,使用SPI1和UART3时发现DMA冲突了,都是DMA0_CH4,请问有什么方法,能将SPI1的发送引脚的DMA重新指向一个能用的你,在IO口不变的情况下
460浏览 0回复 21关注 -
求助:GD32E230F8 timer16 dma 变脉宽无法生效问题 sos
源代码如下:#include"gd32e23x.h"#include#include"gd32e230c_eval.h"#defineTIMER16_CH0CV((uint32_t)0x40014834)uint16_tTX_buffer[3];voiddma_config(void){dma_parameter_structdma_init_struct;rcu_periph_clock_enable(RCU_DMA);syscfg_dma_remap_enable(SYSCFG_DMA_REMAP_TIMER16);/*initializeDMAchannel1*/dma_deinit(DMA_CH1);/*DMAchannel4initialize*/dma_init_struct.periph_addr=(uint32_t)TIMER16_CH0CV;dma_init_struct.periph_inc=DMA_PERIPH_INCREASE_DISABLE;dma_init_struct.memory_addr=(uint32_t)TX_buffer;dma_init_struct.memory_inc=DMA_MEMORY_INCREASE_ENABLE;dma_init_struct.periph_width=DMA_PERIPHERAL_WIDTH_16BIT;dma_init_struct.memory_width=DMA_MEMORY_WIDTH_16BIT;dma_init_struct.direction=DMA_MEMORY_TO_PERIPHERAL;dma_init_struct.number=3;dma_init_struct.priority=DMA_PRIORITY_HIGH;dma_init(DMA_CH1,&dma_init_struct);//dma_memory_to_memory_disable(DMA_CH1);//关闭内存到内存模式/*enableDMAcirculationmode*/dma_circulation_enable(DMA_CH1);/*enableDMAchannel4*/dma_channel_enable(DMA_CH1);//nvic_irq_enable(DMA_Channel3_4_IRQn,1);}voidtimer_config(void){uint16_tperiod=(72000/TX_Frequency_KHZ)-1;timer_oc_parameter_structtimer_ocinitpara;timer_parameter_structtimer_initpara;/*enableTIMERclock*/rcu_periph_clock_enable(RCU_TIMER16);timer_deinit(TIMER16);/*initializeTIMERinitparameterstruct*/timer_struct_para_init(&timer_initpara);/*TIMER0configuration*/timer_initpara.prescaler=0;timer_initpara.alignedmode=TIMER_COUNTER_EDGE;timer_initpara.counterdirection=TIMER_COUNTER_UP;timer_initpara.period=period;timer_initpara.clockdivision=TIMER_CKDIV_DIV1;timer_initpara.repetit
599浏览 0回复 24关注 -
电源管理IC电量显示不准确,芯片推荐 sos
现在做一个单击显示电量,双击关闭电量显示,长按开关机电路,有没有好的想法推荐?电源管理用的是TP4056可接4颗LED显示电量,但会出现电量显示不准的情况,电池是单节3.7V锂电池,电量显示不准是芯片问题吗?为何充电宝上的就比较准确,求各位大佬指点一下。tyw注
1406浏览 0回复 21关注 -
小华F460关于SPI求大佬救救 sos
最近在使用小华F460单片机进行通信时,遇到了点问题1:我发现当bitt数设置为8时,在通信1字节后需要将片选信号拉高500ns,而bit设置为32时,通信这4字节时不需要将片选拉高,但是bit数最大就只能设置为4字节,就想问一下大佬们,有没有办法通信更多的字节时片选信号不用拉高2:spi的缓存区无法清空,无论我是直接对其赋值,亦或者是开关SPI,缓存区值都无法清空3:开关SPI时碰到一个问题,倘若我是使用的DMA传输数据,那么开关SPI是可以正常使用的,假如是直接从缓存区取值,那么SPI关掉后只能通过初始化打开,而调用开关函数或者是对寄存器直接写值无法生效4:SPI的配置里面还有一个帧的配置,这个配置应该怎么用呢,有大佬可以分享一下程序吗以上,谢谢大佬们,救救小白吧
1181浏览 0回复 21关注 -
N32WB031有大佬有定频发射的程序吗 sos
当前新画的新板子,功能正常,但接收不到蓝牙信号,相同的程序烧到开发板里能收到蓝牙信号。所以求一个能让芯片定频发射的程序demo来测试频率,看看是否需要修正天线参数
1796浏览 0回复 21关注 -
请教大家关于lora通信的问题。 sos
现场很多lora设备,一个lora网关连接8个lora设备,,这种连接方式有十几组。为了避免同频干扰,请问,lora的工作频率间隔多大设置合适?1Mhz可以吗?
2719浏览 0回复 23关注
没有更多了

问答