<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: LPC43XX HSADC DMA how to in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC43XX-HSADC-DMA-how-to/m-p/1939931#M56707</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;I suppose that you can use the following code and have a try.&lt;/P&gt;
&lt;DIV style="background-color: #ffffff; padding: 0px 0px 0px 2px;"&gt;
&lt;DIV style="color: #000000; background-color: #ffffff; font-family: 'Consolas'; font-size: 10pt; white-space: pre;"&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; TICKRATE_HZ1 (1000) &lt;/SPAN&gt;&lt;SPAN&gt;/* 10 ticks per second */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; DGEC 0xE&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt; &lt;SPAN&gt;HSADC_DMA_READ&lt;/SPAN&gt;&lt;SPAN&gt; 8&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; DMA_CH 7&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; DMA_TRANSFER_SIZE 1024 &lt;/SPAN&gt;&lt;SPAN&gt;// max. 4095&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; NUM_SAMPLE DMA_TRANSFER_SIZE&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt; descrip0,descrip1,config;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt; freqHSADC;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt; sample[NUM_SAMPLE];&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;ADCHS_DMA_init&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;//uint8_t DGEC = 0xE;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;////////////////////////////////// ADCHS采样频率设置///// ///////////////////////////////////////////////////// ///////// /*80M*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;//CLK_M4_ADCHS uses BASE_M4_CLK&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; Chip_USB0_Init();&lt;/SPAN&gt;&lt;SPAN&gt;/*将USB0 PLL初始化为480 MHz */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; Chip_Clock_SetDivider(&lt;/SPAN&gt;&lt;SPAN&gt;CLK_IDIV_A&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;CLKIN_USBPLL&lt;/SPAN&gt;&lt;SPAN&gt;,2); &lt;/SPAN&gt;&lt;SPAN&gt;/*来自USB0PLL的DIV_A源，并将分频器设置为2(支持的最大&lt;/SPAN&gt;&lt;SPAN&gt;div&lt;/SPAN&gt;&lt;SPAN&gt;值为4)[IN 480 MHz;输出240 MHz */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; Chip_Clock_SetDivider(&lt;/SPAN&gt;&lt;SPAN&gt;CLK_IDIV_B&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;CLKIN_IDIVA&lt;/SPAN&gt;&lt;SPAN&gt;,3); &lt;/SPAN&gt;&lt;SPAN&gt;/*来自DIV_A的源DIV_B，[IN 240 MHz;输出80 MHz */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; Chip_Clock_SetBaseClock(&lt;/SPAN&gt;&lt;SPAN&gt;CLK_BASE_ADCHS&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;CLKIN_IDIVB&lt;/SPAN&gt;&lt;SPAN&gt;, true, false); &lt;/SPAN&gt;&lt;SPAN&gt;/* Source ADHCS base clock from DIV_B */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; freqHSADC = Chip_HSADC_GetBaseClockRate(LPC_ADCHS);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; Chip_Clock_EnableOpts(&lt;/SPAN&gt;&lt;SPAN&gt;CLK_MX_ADCHS&lt;/SPAN&gt;&lt;SPAN&gt;, true, true, 1);&lt;/SPAN&gt;&lt;SPAN&gt;/*启用寄存器时钟*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; Chip_Clock_Enable(&lt;/SPAN&gt;&lt;SPAN&gt;CLK_ADCHS&lt;/SPAN&gt;&lt;SPAN&gt;); &lt;/SPAN&gt;&lt;SPAN&gt;/*启用时钟*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;////////////////////////////////// HSADC设置///// ///////////////////////////////////////////////////// /////////&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;/* 中断设置 */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;// LPC_ADCHS-&amp;gt; INTS [0] .CLR_EN = 0x7F; //禁用中断0&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;// LPC_ADCHS-&amp;gt; INTS [0] .CLR_STAT = 0x7F; //清除中断状态&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;// while(LPC_ADCHS-&amp;gt; INTS [0] .STATUS&amp;amp;0x7D); //等待状态清除，必须排除FIFO_EMPTY&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;// LPC_ADCHS-&amp;gt; INTS [1] .CLR_EN = 0x7F;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;// LPC_ADCHS-&amp;gt; INTS [1] .CLR_STAT = 0x7F;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;// while(LPC_ADCHS-&amp;gt; INTS [1] .STATUS&amp;amp;0x1E);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;/*初始化HSADC */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; Chip_RGU_TriggerReset(&lt;/SPAN&gt;&lt;SPAN&gt;RGU_ADCHS_RST&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;SPAN&gt;//复位HADC&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;while&lt;/SPAN&gt;&lt;SPAN&gt; (Chip_RGU_InReset(&lt;/SPAN&gt;&lt;SPAN&gt;RGU_ADCHS_RST&lt;/SPAN&gt;&lt;SPAN&gt;)){}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_ADCHS-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;POWER_DOWN&lt;/SPAN&gt;&lt;SPAN&gt; = 0; &lt;/SPAN&gt;&lt;SPAN&gt;//禁用电源关闭模式&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;/* FIFO 中断 1， 无 打包模式 */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;//Chip_HSADC_SetupFIFO(LPC_ADCHS, 1, false);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_ADCHS-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;FIFO_CFG&lt;/SPAN&gt;&lt;SPAN&gt; =(8 &amp;lt;&amp;lt; 1); &lt;/SPAN&gt;&lt;SPAN&gt;/* FIFO_LEVEL大小PACKED_READ 数据保存在FIFO的方式，1表示两个采样数据打包存放 */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_ADCHS-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;DSCR_STS&lt;/SPAN&gt;&lt;SPAN&gt; = (1 &amp;lt;&amp;lt; 1)| 0; &lt;/SPAN&gt;&lt;SPAN&gt;//设置活动的描述符表与描述符&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;/* 设置描述符表0中的描述符0*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_ADCHS-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DESCRIPTOR&lt;/SPAN&gt;&lt;SPAN&gt;[0][0] = (1 &amp;lt;&amp;lt; 24) &lt;/SPAN&gt;&lt;SPAN&gt;/* RESET_TIMER 复位定时器*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0 &amp;lt;&amp;lt; 22) &lt;/SPAN&gt;&lt;SPAN&gt;/* THRESH 未添加比较器*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0 &amp;lt;&amp;lt; &lt;LI-EMOJI id="lia_smiling-face-with-sunglasses" title=":smiling_face_with_sunglasses:"&gt;&lt;/LI-EMOJI&gt; &lt;/SPAN&gt;&lt;SPAN&gt;/* MATCH 描述符计时器值等于MATC时，转换描述符*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (1 &amp;lt;&amp;lt; 6) &lt;/SPAN&gt;&lt;SPAN&gt;/* BRANCH to First 转换完成后跳转到该表第一个描述符*/&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; descrip0 =LPC_ADCHS-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DESCRIPTOR&lt;/SPAN&gt;&lt;SPAN&gt;[0][0] ;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;/* Set descriptor 1 to take a measurement after 0x9A clocks and branch to first descriptor*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_ADCHS-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DESCRIPTOR&lt;/SPAN&gt;&lt;SPAN&gt;[0][1] =(1 &amp;lt;&amp;lt; 31) &lt;/SPAN&gt;&lt;SPAN&gt;/* UPDATE TABLE*/&lt;/SPAN&gt; &lt;SPAN&gt;//最高位配置不上&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (1 &amp;lt;&amp;lt; 24) &lt;/SPAN&gt;&lt;SPAN&gt;/* RESET_TIMER*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0 &amp;lt;&amp;lt; 22) &lt;/SPAN&gt;&lt;SPAN&gt;/* THRESH*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0 &amp;lt;&amp;lt; &lt;LI-EMOJI id="lia_smiling-face-with-sunglasses" title=":smiling_face_with_sunglasses:"&gt;&lt;/LI-EMOJI&gt; &lt;/SPAN&gt;&lt;SPAN&gt;/* MATCH*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x01 &amp;lt;&amp;lt; 6) &lt;/SPAN&gt;&lt;SPAN&gt;/* BRANCH to first*/&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; descrip1 =LPC_ADCHS-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DESCRIPTOR&lt;/SPAN&gt;&lt;SPAN&gt;[0][1] ;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_ADCHS-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;CONFIG&lt;/SPAN&gt;&lt;SPAN&gt; =(0x90 &amp;lt;&amp;lt; 6)&lt;/SPAN&gt;&lt;SPAN&gt;/*恢复时间,建议值*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0 &amp;lt;&amp;lt; 5)&lt;/SPAN&gt;&lt;SPAN&gt;/* CHANNEL_ID_EN ，0表示不将通道ID输入到FIFO中*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x01)&lt;/SPAN&gt;&lt;SPAN&gt;/* TRIGGER_MASK 01 表示仅使用软件触发*/&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;/* CRS设置为0x4，所以SPEED所有DGEC应该被设置为0xE */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_ADCHS-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;ADC_SPEED&lt;/SPAN&gt;&lt;SPAN&gt; =(DGEC &amp;lt;&amp;lt; 20)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (DGEC &amp;lt;&amp;lt; 16)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (DGEC &amp;lt;&amp;lt; 12)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (DGEC &amp;lt;&amp;lt; &lt;LI-EMOJI id="lia_smiling-face-with-sunglasses" title=":smiling_face_with_sunglasses:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (DGEC &amp;lt;&amp;lt; 4)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (DGEC);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;//未设置阈值寄存器，因为未使用它们&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_ADCHS-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;POWER_CONTROL&lt;/SPAN&gt;&lt;SPAN&gt; =(1 &amp;lt;&amp;lt; 18)&lt;/SPAN&gt;&lt;SPAN&gt;/* BGAP */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; |(1 &amp;lt;&amp;lt; 17)&lt;/SPAN&gt;&lt;SPAN&gt;/*电源 ADC保持供电*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; |(0 &amp;lt;&amp;lt; 4) &lt;/SPAN&gt;&lt;SPAN&gt;/* DCINNEG在ADC0 No &lt;/SPAN&gt;&lt;SPAN&gt;dc&lt;/SPAN&gt;&lt;SPAN&gt; bias 当 DCINNEG 设置为 0 时，提供 ADCHS_NEG 引脚上的电压（ADCHS 用于真差分模式）：*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; |(0 &amp;lt;&amp;lt; 10)&lt;/SPAN&gt;&lt;SPAN&gt;/* DC在ADC0中 No &lt;/SPAN&gt;&lt;SPAN&gt;dc&lt;/SPAN&gt;&lt;SPAN&gt; bias*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; |(0 &amp;lt;&amp;lt; 16)&lt;/SPAN&gt;&lt;SPAN&gt;/* 1 =以TWOS输出-0 =以Offset Binary输出*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; |(0x4)&lt;/SPAN&gt;&lt;SPAN&gt;/* CRS ，设置ADC速度*/&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_ADCHS-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;FLUSH&lt;/SPAN&gt;&lt;SPAN&gt; = 1; &lt;/SPAN&gt;&lt;SPAN&gt;//FIFO刷新&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;///////////////////////////////////////////////////// //// DMA设置///////////////////////////////////////////// ///////////////////////&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; NVIC_DisableIRQ(&lt;/SPAN&gt;&lt;SPAN&gt;DMA_IRQn&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_GPDMA-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;CH&lt;/SPAN&gt;&lt;SPAN&gt; [DMA_CH] .&lt;/SPAN&gt;&lt;SPAN&gt;CONFIG&lt;/SPAN&gt;&lt;SPAN&gt; |=0; &lt;/SPAN&gt;&lt;SPAN&gt;//启用位，1启用，0禁用&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_GPDMA-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;INTTCCLEAR&lt;/SPAN&gt;&lt;SPAN&gt; |= ((1UL &amp;lt;&amp;lt;DMA_CH ) &amp;amp; 0xFF);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_GPDMA-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;INTERRCLR&lt;/SPAN&gt;&lt;SPAN&gt; |= ((1UL &amp;lt;&amp;lt;DMA_CH ) &amp;amp; 0xFF);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_GPDMA-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;CONFIG&lt;/SPAN&gt;&lt;SPAN&gt; = 0x01;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;while&lt;/SPAN&gt;&lt;SPAN&gt;(!(LPC_GPDMA-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;CONFIG&lt;/SPAN&gt;&lt;SPAN&gt;&amp;amp;0x01)); &lt;/SPAN&gt;&lt;SPAN&gt;//使能&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;/* 描述符寄存器的值仅能通过DMA通道7传递 */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_GPDMA-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;CH&lt;/SPAN&gt;&lt;SPAN&gt;[DMA_CH].&lt;/SPAN&gt;&lt;SPAN&gt;SRCADDR&lt;/SPAN&gt;&lt;SPAN&gt; =(&lt;/SPAN&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt;)&amp;amp;LPC_ADCHS-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;FIFO_OUTPUT&lt;/SPAN&gt;&lt;SPAN&gt; [0];&lt;/SPAN&gt;&lt;SPAN&gt;//DMA源地址&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_GPDMA-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;CH&lt;/SPAN&gt;&lt;SPAN&gt;[DMA_CH].&lt;/SPAN&gt;&lt;SPAN&gt;DESTADDR&lt;/SPAN&gt;&lt;SPAN&gt; =((&lt;/SPAN&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt;)&amp;amp;sample);&lt;/SPAN&gt;&lt;SPAN&gt;//DMA目标地址&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_GPDMA-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;CH&lt;/SPAN&gt;&lt;SPAN&gt;[DMA_CH].&lt;/SPAN&gt;&lt;SPAN&gt;CONTROL&lt;/SPAN&gt;&lt;SPAN&gt; =(DMA_TRANSFER_SIZE)&lt;/SPAN&gt;&lt;SPAN&gt;//传输大小 最大4095&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x0 &amp;lt;&amp;lt; 12)&lt;/SPAN&gt;&lt;SPAN&gt;// &lt;/SPAN&gt;&lt;SPAN&gt;src&lt;/SPAN&gt;&lt;SPAN&gt;突发大小&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x0 &amp;lt;&amp;lt; 15)&lt;/SPAN&gt;&lt;SPAN&gt;// &lt;/SPAN&gt;&lt;SPAN&gt;dst&lt;/SPAN&gt;&lt;SPAN&gt;突发大小&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x2 &amp;lt;&amp;lt; 18)&lt;/SPAN&gt;&lt;SPAN&gt;// &lt;/SPAN&gt;&lt;SPAN&gt;src&lt;/SPAN&gt;&lt;SPAN&gt;传输宽度，0x2表示以字的形式传输&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x2 &amp;lt;&amp;lt; 21)&lt;/SPAN&gt;&lt;SPAN&gt;// &lt;/SPAN&gt;&lt;SPAN&gt;dst&lt;/SPAN&gt;&lt;SPAN&gt;传输宽度，0x2表示以字的形式传输&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x1 &amp;lt;&amp;lt; 24)&lt;/SPAN&gt;&lt;SPAN&gt;// &lt;/SPAN&gt;&lt;SPAN&gt;src&lt;/SPAN&gt;&lt;SPAN&gt; AHB主选择&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x0 &amp;lt;&amp;lt; 25)&lt;/SPAN&gt;&lt;SPAN&gt;// &lt;/SPAN&gt;&lt;SPAN&gt;dst&lt;/SPAN&gt;&lt;SPAN&gt; AHB主选择&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x0 &amp;lt;&amp;lt; 26)&lt;/SPAN&gt;&lt;SPAN&gt;// &lt;/SPAN&gt;&lt;SPAN&gt;src&lt;/SPAN&gt;&lt;SPAN&gt;增量：0，每次传输后&lt;/SPAN&gt;&lt;SPAN&gt;src&lt;/SPAN&gt;&lt;SPAN&gt;地址不递增&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x1 &amp;lt;&amp;lt; 27)&lt;/SPAN&gt;&lt;SPAN&gt;// &lt;/SPAN&gt;&lt;SPAN&gt;dst&lt;/SPAN&gt;&lt;SPAN&gt;增量：1，每次传输后的&lt;/SPAN&gt;&lt;SPAN&gt;dst&lt;/SPAN&gt;&lt;SPAN&gt;地址增量&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x1 &amp;lt;&amp;lt; 31); &lt;/SPAN&gt;&lt;SPAN&gt;//终端计数中断使能位：1，使能&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_GPDMA-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CH&lt;/SPAN&gt;&lt;SPAN&gt;[DMA_CH].&lt;/SPAN&gt;&lt;SPAN&gt;CONFIG&lt;/SPAN&gt;&lt;SPAN&gt; = (&lt;/SPAN&gt;&lt;SPAN&gt;HSADC_DMA_READ&lt;/SPAN&gt;&lt;SPAN&gt; &amp;lt;&amp;lt; 1)&lt;/SPAN&gt;&lt;SPAN&gt;// &lt;/SPAN&gt;&lt;SPAN&gt;src&lt;/SPAN&gt;&lt;SPAN&gt;外设：设置为8-HSADC&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x0 &amp;lt;&amp;lt; 6)&lt;/SPAN&gt;&lt;SPAN&gt;// &lt;/SPAN&gt;&lt;SPAN&gt;dst&lt;/SPAN&gt;&lt;SPAN&gt;外设：无设置-内存&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x6 &amp;lt;&amp;lt; 11)&lt;/SPAN&gt;&lt;SPAN&gt;//流控制：外设-存储器&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x1 &amp;lt;&amp;lt; 14); &lt;/SPAN&gt;&lt;SPAN&gt;// IE-中断错误掩码&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;//| (0x1 &amp;lt;&amp;lt; 15);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;// ITC-终端计数中断屏蔽&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;//| (0x1 &amp;lt;&amp;lt; 0);// enable bit: 1 enable, 0 disable&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;//| (0x0 &amp;lt;&amp;lt; 16)//锁定：置位时，此位启用锁定传输&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;//| (0x1 &amp;lt;&amp;lt; 18); //进一步忽略&lt;/SPAN&gt;&lt;SPAN&gt;src&lt;/SPAN&gt;&lt;SPAN&gt; DMA &lt;/SPAN&gt;&lt;SPAN&gt;req&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_CREG-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DMAMUX&lt;/SPAN&gt;&lt;SPAN&gt;=3&amp;lt;&amp;lt;16; &lt;/SPAN&gt;&lt;SPAN&gt;//select HSADC read for DMAMUXPER8&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_GPDMA-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;CH&lt;/SPAN&gt;&lt;SPAN&gt; [DMA_CH] .&lt;/SPAN&gt;&lt;SPAN&gt;LLI&lt;/SPAN&gt;&lt;SPAN&gt; = 0;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;// NVIC_EnableIRQ(DMA_IRQn);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; config =LPC_GPDMA-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;CH&lt;/SPAN&gt;&lt;SPAN&gt; [DMA_CH] .&lt;/SPAN&gt;&lt;SPAN&gt;CONFIG&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_GPDMA-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;CH&lt;/SPAN&gt;&lt;SPAN&gt; [DMA_CH].&lt;/SPAN&gt;&lt;SPAN&gt;CONFIG&lt;/SPAN&gt;&lt;SPAN&gt;|=(0x1 &amp;lt;&amp;lt; 0);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; Chip_HSADC_SWTrigger(LPC_ADCHS);&lt;/SPAN&gt;&lt;SPAN&gt;//启动ADCHS软件触发&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;//不配置就无法读取到数据，但会覆盖之前的配置&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; NVIC_SetPriority(&lt;/SPAN&gt;&lt;SPAN&gt;DMA_IRQn&lt;/SPAN&gt;&lt;SPAN&gt;,0x00);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; NVIC_ClearPendingIRQ(&lt;/SPAN&gt;&lt;SPAN&gt;DMA_IRQn&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; NVIC_EnableIRQ(&lt;/SPAN&gt;&lt;SPAN&gt;DMA_IRQn&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;__asm&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;cpsie&lt;/SPAN&gt;&lt;SPAN&gt; i"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;DMA_IRQHandler&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;__asm&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;nop&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;//stop &lt;/SPAN&gt;&lt;SPAN&gt;hsadc&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_GPDMA-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;CH&lt;/SPAN&gt;&lt;SPAN&gt; [DMA_CH].&lt;/SPAN&gt;&lt;SPAN&gt;CONFIG&lt;/SPAN&gt;&lt;SPAN&gt;&amp;amp;=~(0x1 &amp;lt;&amp;lt; 0);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;Hope it can help you&lt;/P&gt;
&lt;P style="margin: 0;"&gt;BR&lt;/P&gt;
&lt;P style="margin: 0;"&gt;XiangJun Rong&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
    <pubDate>Mon, 26 Aug 2024 05:39:21 GMT</pubDate>
    <dc:creator>xiangjun_rong</dc:creator>
    <dc:date>2024-08-26T05:39:21Z</dc:date>
    <item>
      <title>LPC43XX HSADC DMA how to</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC43XX-HSADC-DMA-how-to/m-p/1938925#M56693</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Hi&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;After seup hsadc’s descriptor0, It can sampling data to FIFOOUTPUT register by software trigger.&lt;BR /&gt;&lt;/SPAN&gt;And set FIFO_LEVEL register to 7. Then it &lt;STRONG&gt;successfully interrupts to ADCHS_IRQHandler().&lt;/STRONG&gt;&lt;BR /&gt;Based on programming guide, it should also trigger DMA_HSADC_read signal to trigger DMA channel activation.&lt;/P&gt;&lt;P&gt;However,&lt;STRONG&gt; DMA channel 7 never work&lt;/STRONG&gt;.(did not copy src:FIFOOUTPUT to dst:Memory)&lt;BR /&gt;Is something wrong for DMA setup here? Or how to check/debug this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;PS: DMAMUXER8 already set in this case.&lt;/P&gt;&lt;PRE&gt;LPC_CREG-&amp;gt;DMAMUX = (LPC_CREG-&amp;gt;DMAMUX | (0x3 &amp;lt;&amp;lt; 16)); //16b(DMAMUXER8) = 0x3&lt;/PRE&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Ref - &lt;A href="https://community.nxp.com/t5/LPC-Microcontrollers/DMA-keep-getting-quot-Empty-FIFO-empty-quot-0x8000-from-HSADC/m-p/734753" target="_blank" rel="noopener"&gt;https://community.nxp.com/t5/LPC-Microcontrollers/DMA-keep-getting-quot-Empty-FIFO-empty-quot-0x8000-from-HSADC/m-p/734753&lt;/A&gt;&lt;BR /&gt;&lt;A href="https://community.nxp.com/t5/LPC-Microcontrollers/LPC-Link2-High-Speed-ADC-and-DMA-Interrupt/td-p/1532249" target="_blank" rel="noopener"&gt;https://community.nxp.com/t5/LPC-Microcontrollers/LPC-Link2-High-Speed-ADC-and-DMA-Interrupt/td-p/1532249&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Setup HSADC is working.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;	 Chip_HSADC_SetupDescEntry(LPC_ADCHS, 0, 0, (HSADC_DESC_CH(1) |
	 HSADC_DESC_BRANCH_NEXT | HSADC_DESC_MATCH(1) |
	 HSADC_DESC_THRESH_NONE | HSADC_DESC_RESET_TIMER ));

	 Chip_HSADC_SetupDescEntry(LPC_ADCHS, 0, 1, (HSADC_DESC_CH(1) |
	 HSADC_DESC_BRANCH_NEXT | HSADC_DESC_MATCH(1) |
	 HSADC_DESC_THRESH_NONE | HSADC_DESC_RESET_TIMER));

	 Chip_HSADC_SetupDescEntry(LPC_ADCHS, 0, 2, (HSADC_DESC_CH(1) |
	 HSADC_DESC_BRANCH_NEXT | HSADC_DESC_MATCH(1) |
	 HSADC_DESC_THRESH_NONE | HSADC_DESC_RESET_TIMER ));

	 Chip_HSADC_SetupDescEntry(LPC_ADCHS, 0, 3, (HSADC_DESC_CH(1) |
	 HSADC_DESC_BRANCH_NEXT | HSADC_DESC_MATCH(1) |
	 HSADC_DESC_THRESH_NONE | HSADC_DESC_RESET_TIMER ));

	 Chip_HSADC_SetupDescEntry(LPC_ADCHS, 0, 4, (HSADC_DESC_CH(1) |
	 HSADC_DESC_BRANCH_NEXT | HSADC_DESC_MATCH(1) |
	 HSADC_DESC_THRESH_NONE | HSADC_DESC_RESET_TIMER ));

	 Chip_HSADC_SetupDescEntry(LPC_ADCHS, 0, 5, (HSADC_DESC_CH(1) |
	 HSADC_DESC_BRANCH_NEXT | HSADC_DESC_MATCH(1) |
	 HSADC_DESC_THRESH_NONE | HSADC_DESC_RESET_TIMER ));

	 Chip_HSADC_SetupDescEntry(LPC_ADCHS, 0, 6, (HSADC_DESC_CH(1) |
	 HSADC_DESC_BRANCH_NEXT | HSADC_DESC_MATCH(1) |
	 HSADC_DESC_THRESH_NONE | HSADC_DESC_RESET_TIMER ));

	 Chip_HSADC_SetupDescEntry(LPC_ADCHS, 0, 7, (HSADC_DESC_CH(1) |
	 HSADC_DESC_MATCH(1) | HSADC_DESC_THRESH_NONE |HSADC_DESC_BRANCH_FIRST |
	 HSADC_DESC_RESET_TIMER | HSADC_DESC_HALT |HSADC_DESC_INT));&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;DMA not work&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;static void App_DMA_Init(void)
{
	/* Initialize GPDMA controller */
	Chip_GPDMA_Init(LPC_GPDMA);
	/* Setting GPDMA interrupt */
	NVIC_DisableIRQ(DMA_IRQn);
	NVIC_SetPriority(DMA_IRQn, ((0x01 &amp;lt;&amp;lt; 3) | 0x01));
	NVIC_EnableIRQ(DMA_IRQn);
}

void Setup_DMA_J(void) //copy from https://community.nxp.com/t5/LPC-Microcontrollers/DMA-keep-getting-quot-Empty-FIFO-empty-quot-0x8000-from-HSADC/m-p/734753
{
uint8_t DMA_CH = 7
	App_DMA_Init();
	LPC_CREG-&amp;gt;DMAMUX = (LPC_CREG-&amp;gt;DMAMUX | (0x3 &amp;lt;&amp;lt; 16)); //16b(DMAMUXER8) = 0x3
	/* Clear all DMA interrupt and error flag */
	LPC_GPDMA-&amp;gt;CONFIG = 0x00;
#if 0 /* PTM duplicated */
	LPC_GPDMA-&amp;gt;INTTCCLEAR = 0xFF; //clears channel terminal count interrupt
	LPC_GPDMA-&amp;gt;INTERRCLR = 0xFF; //clears channel error interrupt.
#endif
	LPC_GPDMA-&amp;gt;CONFIG = 0x01;
	while (!(LPC_GPDMA-&amp;gt;CONFIG &amp;amp; 0x01))
		;
	LPC_GPDMA-&amp;gt;CH[DMA_CH].SRCADDR = (uint32_t) &amp;amp;LPC_ADCHS-&amp;gt;FIFO_OUTPUT[0];
	LPC_GPDMA-&amp;gt;CH[DMA_CH].DESTADDR = ((uint32_t) gluData);
	//LPC_GPDMA-&amp;gt;CH[DMA_CH].DESTADDR = ((uint32_t) &amp;amp;sample);
	//LPC_GPDMA-&amp;gt;CH[DMA_CH].CONTROL = (DMA_TRANSFER_SIZE &amp;lt;&amp;lt; 0) // transfer size
	LPC_GPDMA-&amp;gt;CH[DMA_CH].CONTROL = (FIFO_OUTPUT_LEVEL &amp;lt;&amp;lt; 0)
			| (0x0 &amp;lt;&amp;lt; 12) // src burst size
			| (0x0 &amp;lt;&amp;lt; 15) // dst burst size
			| (0x2 &amp;lt;&amp;lt; 18) // src transfer width
			| (0x2 &amp;lt;&amp;lt; 21) // dst transfer width
			| (0x1 &amp;lt;&amp;lt; 24) // src AHB master select
			| (0x0 &amp;lt;&amp;lt; 25) // dst AHB master select
			| (0x0 &amp;lt;&amp;lt; 26) // src increment: 0, src address not increment after each trans
			| (0x1 &amp;lt;&amp;lt; 27) // dst increment: 1, dst address increment after each trans
			| (0x1 &amp;lt;&amp;lt; 31); // terminal count interrupt enable bit: 1, enabled, (0x0UL &amp;lt;&amp;lt; 31); // Terminal count interrupt disabled
	LPC_GPDMA-&amp;gt;CH[DMA_CH].CONFIG = (0x1 &amp;lt;&amp;lt; 0) // enable bit: 1 enable, 0 disable
	| (HSADC_DMA_READ &amp;lt;&amp;lt; 1) // src peripheral: set to 8 - HSADC
			| (0x0 &amp;lt;&amp;lt; 6) // dst peripheral: no setting - memory
			| (0x0 &amp;lt;&amp;lt; 11) // flow control: peripheral to memory - DMA control
			| (0x1 &amp;lt;&amp;lt; 14) // IE - interrupt error mask
			| (0x1 &amp;lt;&amp;lt; 15) // ITC - terminal count interrupt mask
			| (0x0 &amp;lt;&amp;lt; 16) // lock: when set, this bit enables locked transfer
			| (0x1 &amp;lt;&amp;lt; 18); // Halt: 1, enable DMA requests; 0, ignore further src DMA req
	LPC_GPDMA-&amp;gt;CH[DMA_CH].LLI = 0;
	NVIC_SetPriority(DMA_IRQn,0x00);
	NVIC_ClearPendingIRQ(DMA_IRQn);
	LPC_GPDMA-&amp;gt;CONFIG = 0x01;
	NVIC_EnableIRQ(DMA_IRQn);
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 23 Aug 2024 04:23:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC43XX-HSADC-DMA-how-to/m-p/1938925#M56693</guid>
      <dc:creator>robberpen</dc:creator>
      <dc:date>2024-08-23T04:23:43Z</dc:date>
    </item>
    <item>
      <title>Re: LPC43XX HSADC DMA how to</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC43XX-HSADC-DMA-how-to/m-p/1939412#M56699</link>
      <description>&lt;P&gt;&lt;SPAN&gt;I can work hsadc with DMA transfer, but I need more future feature by DMA_read REQ signal.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Here some keys need confirm&lt;/P&gt;&lt;P&gt;Based on&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN class=""&gt;48.7.4.1 DMA read&lt;/SPAN&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;hsadc only support DMA channel 8 for read?&lt;/LI&gt;&lt;LI&gt;My workaround solution is set bit 1 on IRQ handler.&lt;DIV&gt;&lt;DIV&gt;&lt;P&gt;&lt;SPAN&gt;&amp;gt;LPC_GPDMA-&amp;gt;CH[DMA_CH].CONFIG = LPC_GPDMA-&amp;gt;CH[DMA_CH].CONFIG |&amp;nbsp; 0x1;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;But I wand to active DMA by&amp;nbsp;&amp;nbsp;&lt;STRONG&gt;DMA_read REQ siganl&lt;/STRONG&gt;, so I also set&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;DMAMUXER8&lt;/STRONG&gt;, But it still not working as I expect that DMA_read signal should be trigger when&lt;STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;FIFO_LEVEL&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;FIFO_FULL&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;occur.&lt;BR /&gt;&amp;gt;LPC_CREG-&amp;gt;&lt;SPAN&gt;DMAMUX&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;= (LPC_CREG-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DMAMUX&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;| (0x3 &amp;lt;&amp;lt; 16));&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;void ADCHS_IRQHandler(void) {
	LPC_GPDMA-&amp;gt;CH[DMA_CH].CONFIG = LPC_GPDMA-&amp;gt;CH[DMA_CH].CONFIG |  0x1;
	Chip_HSADC_ClearIntStatus(LPC_ADCHS, 1, Chip_HSADC_GetIntStatus(LPC_ADCHS, 1) &amp;amp; Chip_HSADC_GetEnabledInts(LPC_ADCHS, 1));
	Chip_HSADC_ClearIntStatus(LPC_ADCHS, 0, Chip_HSADC_GetIntStatus(LPC_ADCHS, 0) &amp;amp; Chip_HSADC_GetEnabledInts(LPC_ADCHS, 0));
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt; &lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2024-08-24 02_02_06-UM10503.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/295035i5E46C079FEB3C4DC/image-size/medium?v=v2&amp;amp;px=400" role="button" title="2024-08-24 02_02_06-UM10503.png" alt="2024-08-24 02_02_06-UM10503.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 23 Aug 2024 18:35:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC43XX-HSADC-DMA-how-to/m-p/1939412#M56699</guid>
      <dc:creator>robberpen</dc:creator>
      <dc:date>2024-08-23T18:35:17Z</dc:date>
    </item>
    <item>
      <title>Re: LPC43XX HSADC DMA how to</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC43XX-HSADC-DMA-how-to/m-p/1939931#M56707</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;I suppose that you can use the following code and have a try.&lt;/P&gt;
&lt;DIV style="background-color: #ffffff; padding: 0px 0px 0px 2px;"&gt;
&lt;DIV style="color: #000000; background-color: #ffffff; font-family: 'Consolas'; font-size: 10pt; white-space: pre;"&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; TICKRATE_HZ1 (1000) &lt;/SPAN&gt;&lt;SPAN&gt;/* 10 ticks per second */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; DGEC 0xE&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt; &lt;SPAN&gt;HSADC_DMA_READ&lt;/SPAN&gt;&lt;SPAN&gt; 8&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; DMA_CH 7&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; DMA_TRANSFER_SIZE 1024 &lt;/SPAN&gt;&lt;SPAN&gt;// max. 4095&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; NUM_SAMPLE DMA_TRANSFER_SIZE&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt; descrip0,descrip1,config;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt; freqHSADC;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt; sample[NUM_SAMPLE];&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;ADCHS_DMA_init&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;//uint8_t DGEC = 0xE;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;////////////////////////////////// ADCHS采样频率设置///// ///////////////////////////////////////////////////// ///////// /*80M*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;//CLK_M4_ADCHS uses BASE_M4_CLK&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; Chip_USB0_Init();&lt;/SPAN&gt;&lt;SPAN&gt;/*将USB0 PLL初始化为480 MHz */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; Chip_Clock_SetDivider(&lt;/SPAN&gt;&lt;SPAN&gt;CLK_IDIV_A&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;CLKIN_USBPLL&lt;/SPAN&gt;&lt;SPAN&gt;,2); &lt;/SPAN&gt;&lt;SPAN&gt;/*来自USB0PLL的DIV_A源，并将分频器设置为2(支持的最大&lt;/SPAN&gt;&lt;SPAN&gt;div&lt;/SPAN&gt;&lt;SPAN&gt;值为4)[IN 480 MHz;输出240 MHz */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; Chip_Clock_SetDivider(&lt;/SPAN&gt;&lt;SPAN&gt;CLK_IDIV_B&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;CLKIN_IDIVA&lt;/SPAN&gt;&lt;SPAN&gt;,3); &lt;/SPAN&gt;&lt;SPAN&gt;/*来自DIV_A的源DIV_B，[IN 240 MHz;输出80 MHz */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; Chip_Clock_SetBaseClock(&lt;/SPAN&gt;&lt;SPAN&gt;CLK_BASE_ADCHS&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;CLKIN_IDIVB&lt;/SPAN&gt;&lt;SPAN&gt;, true, false); &lt;/SPAN&gt;&lt;SPAN&gt;/* Source ADHCS base clock from DIV_B */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; freqHSADC = Chip_HSADC_GetBaseClockRate(LPC_ADCHS);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; Chip_Clock_EnableOpts(&lt;/SPAN&gt;&lt;SPAN&gt;CLK_MX_ADCHS&lt;/SPAN&gt;&lt;SPAN&gt;, true, true, 1);&lt;/SPAN&gt;&lt;SPAN&gt;/*启用寄存器时钟*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; Chip_Clock_Enable(&lt;/SPAN&gt;&lt;SPAN&gt;CLK_ADCHS&lt;/SPAN&gt;&lt;SPAN&gt;); &lt;/SPAN&gt;&lt;SPAN&gt;/*启用时钟*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;////////////////////////////////// HSADC设置///// ///////////////////////////////////////////////////// /////////&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;/* 中断设置 */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;// LPC_ADCHS-&amp;gt; INTS [0] .CLR_EN = 0x7F; //禁用中断0&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;// LPC_ADCHS-&amp;gt; INTS [0] .CLR_STAT = 0x7F; //清除中断状态&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;// while(LPC_ADCHS-&amp;gt; INTS [0] .STATUS&amp;amp;0x7D); //等待状态清除，必须排除FIFO_EMPTY&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;// LPC_ADCHS-&amp;gt; INTS [1] .CLR_EN = 0x7F;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;// LPC_ADCHS-&amp;gt; INTS [1] .CLR_STAT = 0x7F;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;// while(LPC_ADCHS-&amp;gt; INTS [1] .STATUS&amp;amp;0x1E);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;/*初始化HSADC */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; Chip_RGU_TriggerReset(&lt;/SPAN&gt;&lt;SPAN&gt;RGU_ADCHS_RST&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;SPAN&gt;//复位HADC&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;while&lt;/SPAN&gt;&lt;SPAN&gt; (Chip_RGU_InReset(&lt;/SPAN&gt;&lt;SPAN&gt;RGU_ADCHS_RST&lt;/SPAN&gt;&lt;SPAN&gt;)){}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_ADCHS-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;POWER_DOWN&lt;/SPAN&gt;&lt;SPAN&gt; = 0; &lt;/SPAN&gt;&lt;SPAN&gt;//禁用电源关闭模式&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;/* FIFO 中断 1， 无 打包模式 */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;//Chip_HSADC_SetupFIFO(LPC_ADCHS, 1, false);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_ADCHS-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;FIFO_CFG&lt;/SPAN&gt;&lt;SPAN&gt; =(8 &amp;lt;&amp;lt; 1); &lt;/SPAN&gt;&lt;SPAN&gt;/* FIFO_LEVEL大小PACKED_READ 数据保存在FIFO的方式，1表示两个采样数据打包存放 */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_ADCHS-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;DSCR_STS&lt;/SPAN&gt;&lt;SPAN&gt; = (1 &amp;lt;&amp;lt; 1)| 0; &lt;/SPAN&gt;&lt;SPAN&gt;//设置活动的描述符表与描述符&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;/* 设置描述符表0中的描述符0*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_ADCHS-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DESCRIPTOR&lt;/SPAN&gt;&lt;SPAN&gt;[0][0] = (1 &amp;lt;&amp;lt; 24) &lt;/SPAN&gt;&lt;SPAN&gt;/* RESET_TIMER 复位定时器*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0 &amp;lt;&amp;lt; 22) &lt;/SPAN&gt;&lt;SPAN&gt;/* THRESH 未添加比较器*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0 &amp;lt;&amp;lt; &lt;LI-EMOJI id="lia_smiling-face-with-sunglasses" title=":smiling_face_with_sunglasses:"&gt;&lt;/LI-EMOJI&gt; &lt;/SPAN&gt;&lt;SPAN&gt;/* MATCH 描述符计时器值等于MATC时，转换描述符*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (1 &amp;lt;&amp;lt; 6) &lt;/SPAN&gt;&lt;SPAN&gt;/* BRANCH to First 转换完成后跳转到该表第一个描述符*/&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; descrip0 =LPC_ADCHS-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DESCRIPTOR&lt;/SPAN&gt;&lt;SPAN&gt;[0][0] ;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;/* Set descriptor 1 to take a measurement after 0x9A clocks and branch to first descriptor*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_ADCHS-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DESCRIPTOR&lt;/SPAN&gt;&lt;SPAN&gt;[0][1] =(1 &amp;lt;&amp;lt; 31) &lt;/SPAN&gt;&lt;SPAN&gt;/* UPDATE TABLE*/&lt;/SPAN&gt; &lt;SPAN&gt;//最高位配置不上&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (1 &amp;lt;&amp;lt; 24) &lt;/SPAN&gt;&lt;SPAN&gt;/* RESET_TIMER*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0 &amp;lt;&amp;lt; 22) &lt;/SPAN&gt;&lt;SPAN&gt;/* THRESH*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0 &amp;lt;&amp;lt; &lt;LI-EMOJI id="lia_smiling-face-with-sunglasses" title=":smiling_face_with_sunglasses:"&gt;&lt;/LI-EMOJI&gt; &lt;/SPAN&gt;&lt;SPAN&gt;/* MATCH*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x01 &amp;lt;&amp;lt; 6) &lt;/SPAN&gt;&lt;SPAN&gt;/* BRANCH to first*/&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; descrip1 =LPC_ADCHS-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DESCRIPTOR&lt;/SPAN&gt;&lt;SPAN&gt;[0][1] ;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_ADCHS-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;CONFIG&lt;/SPAN&gt;&lt;SPAN&gt; =(0x90 &amp;lt;&amp;lt; 6)&lt;/SPAN&gt;&lt;SPAN&gt;/*恢复时间,建议值*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0 &amp;lt;&amp;lt; 5)&lt;/SPAN&gt;&lt;SPAN&gt;/* CHANNEL_ID_EN ，0表示不将通道ID输入到FIFO中*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x01)&lt;/SPAN&gt;&lt;SPAN&gt;/* TRIGGER_MASK 01 表示仅使用软件触发*/&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;/* CRS设置为0x4，所以SPEED所有DGEC应该被设置为0xE */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_ADCHS-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;ADC_SPEED&lt;/SPAN&gt;&lt;SPAN&gt; =(DGEC &amp;lt;&amp;lt; 20)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (DGEC &amp;lt;&amp;lt; 16)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (DGEC &amp;lt;&amp;lt; 12)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (DGEC &amp;lt;&amp;lt; &lt;LI-EMOJI id="lia_smiling-face-with-sunglasses" title=":smiling_face_with_sunglasses:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (DGEC &amp;lt;&amp;lt; 4)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (DGEC);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;//未设置阈值寄存器，因为未使用它们&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_ADCHS-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;POWER_CONTROL&lt;/SPAN&gt;&lt;SPAN&gt; =(1 &amp;lt;&amp;lt; 18)&lt;/SPAN&gt;&lt;SPAN&gt;/* BGAP */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; |(1 &amp;lt;&amp;lt; 17)&lt;/SPAN&gt;&lt;SPAN&gt;/*电源 ADC保持供电*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; |(0 &amp;lt;&amp;lt; 4) &lt;/SPAN&gt;&lt;SPAN&gt;/* DCINNEG在ADC0 No &lt;/SPAN&gt;&lt;SPAN&gt;dc&lt;/SPAN&gt;&lt;SPAN&gt; bias 当 DCINNEG 设置为 0 时，提供 ADCHS_NEG 引脚上的电压（ADCHS 用于真差分模式）：*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; |(0 &amp;lt;&amp;lt; 10)&lt;/SPAN&gt;&lt;SPAN&gt;/* DC在ADC0中 No &lt;/SPAN&gt;&lt;SPAN&gt;dc&lt;/SPAN&gt;&lt;SPAN&gt; bias*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; |(0 &amp;lt;&amp;lt; 16)&lt;/SPAN&gt;&lt;SPAN&gt;/* 1 =以TWOS输出-0 =以Offset Binary输出*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; |(0x4)&lt;/SPAN&gt;&lt;SPAN&gt;/* CRS ，设置ADC速度*/&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_ADCHS-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;FLUSH&lt;/SPAN&gt;&lt;SPAN&gt; = 1; &lt;/SPAN&gt;&lt;SPAN&gt;//FIFO刷新&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;///////////////////////////////////////////////////// //// DMA设置///////////////////////////////////////////// ///////////////////////&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; NVIC_DisableIRQ(&lt;/SPAN&gt;&lt;SPAN&gt;DMA_IRQn&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_GPDMA-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;CH&lt;/SPAN&gt;&lt;SPAN&gt; [DMA_CH] .&lt;/SPAN&gt;&lt;SPAN&gt;CONFIG&lt;/SPAN&gt;&lt;SPAN&gt; |=0; &lt;/SPAN&gt;&lt;SPAN&gt;//启用位，1启用，0禁用&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_GPDMA-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;INTTCCLEAR&lt;/SPAN&gt;&lt;SPAN&gt; |= ((1UL &amp;lt;&amp;lt;DMA_CH ) &amp;amp; 0xFF);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_GPDMA-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;INTERRCLR&lt;/SPAN&gt;&lt;SPAN&gt; |= ((1UL &amp;lt;&amp;lt;DMA_CH ) &amp;amp; 0xFF);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_GPDMA-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;CONFIG&lt;/SPAN&gt;&lt;SPAN&gt; = 0x01;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;while&lt;/SPAN&gt;&lt;SPAN&gt;(!(LPC_GPDMA-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;CONFIG&lt;/SPAN&gt;&lt;SPAN&gt;&amp;amp;0x01)); &lt;/SPAN&gt;&lt;SPAN&gt;//使能&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;/* 描述符寄存器的值仅能通过DMA通道7传递 */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_GPDMA-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;CH&lt;/SPAN&gt;&lt;SPAN&gt;[DMA_CH].&lt;/SPAN&gt;&lt;SPAN&gt;SRCADDR&lt;/SPAN&gt;&lt;SPAN&gt; =(&lt;/SPAN&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt;)&amp;amp;LPC_ADCHS-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;FIFO_OUTPUT&lt;/SPAN&gt;&lt;SPAN&gt; [0];&lt;/SPAN&gt;&lt;SPAN&gt;//DMA源地址&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_GPDMA-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;CH&lt;/SPAN&gt;&lt;SPAN&gt;[DMA_CH].&lt;/SPAN&gt;&lt;SPAN&gt;DESTADDR&lt;/SPAN&gt;&lt;SPAN&gt; =((&lt;/SPAN&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt;)&amp;amp;sample);&lt;/SPAN&gt;&lt;SPAN&gt;//DMA目标地址&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_GPDMA-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;CH&lt;/SPAN&gt;&lt;SPAN&gt;[DMA_CH].&lt;/SPAN&gt;&lt;SPAN&gt;CONTROL&lt;/SPAN&gt;&lt;SPAN&gt; =(DMA_TRANSFER_SIZE)&lt;/SPAN&gt;&lt;SPAN&gt;//传输大小 最大4095&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x0 &amp;lt;&amp;lt; 12)&lt;/SPAN&gt;&lt;SPAN&gt;// &lt;/SPAN&gt;&lt;SPAN&gt;src&lt;/SPAN&gt;&lt;SPAN&gt;突发大小&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x0 &amp;lt;&amp;lt; 15)&lt;/SPAN&gt;&lt;SPAN&gt;// &lt;/SPAN&gt;&lt;SPAN&gt;dst&lt;/SPAN&gt;&lt;SPAN&gt;突发大小&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x2 &amp;lt;&amp;lt; 18)&lt;/SPAN&gt;&lt;SPAN&gt;// &lt;/SPAN&gt;&lt;SPAN&gt;src&lt;/SPAN&gt;&lt;SPAN&gt;传输宽度，0x2表示以字的形式传输&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x2 &amp;lt;&amp;lt; 21)&lt;/SPAN&gt;&lt;SPAN&gt;// &lt;/SPAN&gt;&lt;SPAN&gt;dst&lt;/SPAN&gt;&lt;SPAN&gt;传输宽度，0x2表示以字的形式传输&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x1 &amp;lt;&amp;lt; 24)&lt;/SPAN&gt;&lt;SPAN&gt;// &lt;/SPAN&gt;&lt;SPAN&gt;src&lt;/SPAN&gt;&lt;SPAN&gt; AHB主选择&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x0 &amp;lt;&amp;lt; 25)&lt;/SPAN&gt;&lt;SPAN&gt;// &lt;/SPAN&gt;&lt;SPAN&gt;dst&lt;/SPAN&gt;&lt;SPAN&gt; AHB主选择&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x0 &amp;lt;&amp;lt; 26)&lt;/SPAN&gt;&lt;SPAN&gt;// &lt;/SPAN&gt;&lt;SPAN&gt;src&lt;/SPAN&gt;&lt;SPAN&gt;增量：0，每次传输后&lt;/SPAN&gt;&lt;SPAN&gt;src&lt;/SPAN&gt;&lt;SPAN&gt;地址不递增&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x1 &amp;lt;&amp;lt; 27)&lt;/SPAN&gt;&lt;SPAN&gt;// &lt;/SPAN&gt;&lt;SPAN&gt;dst&lt;/SPAN&gt;&lt;SPAN&gt;增量：1，每次传输后的&lt;/SPAN&gt;&lt;SPAN&gt;dst&lt;/SPAN&gt;&lt;SPAN&gt;地址增量&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x1 &amp;lt;&amp;lt; 31); &lt;/SPAN&gt;&lt;SPAN&gt;//终端计数中断使能位：1，使能&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_GPDMA-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CH&lt;/SPAN&gt;&lt;SPAN&gt;[DMA_CH].&lt;/SPAN&gt;&lt;SPAN&gt;CONFIG&lt;/SPAN&gt;&lt;SPAN&gt; = (&lt;/SPAN&gt;&lt;SPAN&gt;HSADC_DMA_READ&lt;/SPAN&gt;&lt;SPAN&gt; &amp;lt;&amp;lt; 1)&lt;/SPAN&gt;&lt;SPAN&gt;// &lt;/SPAN&gt;&lt;SPAN&gt;src&lt;/SPAN&gt;&lt;SPAN&gt;外设：设置为8-HSADC&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x0 &amp;lt;&amp;lt; 6)&lt;/SPAN&gt;&lt;SPAN&gt;// &lt;/SPAN&gt;&lt;SPAN&gt;dst&lt;/SPAN&gt;&lt;SPAN&gt;外设：无设置-内存&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x6 &amp;lt;&amp;lt; 11)&lt;/SPAN&gt;&lt;SPAN&gt;//流控制：外设-存储器&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; | (0x1 &amp;lt;&amp;lt; 14); &lt;/SPAN&gt;&lt;SPAN&gt;// IE-中断错误掩码&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;//| (0x1 &amp;lt;&amp;lt; 15);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;// ITC-终端计数中断屏蔽&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;//| (0x1 &amp;lt;&amp;lt; 0);// enable bit: 1 enable, 0 disable&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;//| (0x0 &amp;lt;&amp;lt; 16)//锁定：置位时，此位启用锁定传输&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;//| (0x1 &amp;lt;&amp;lt; 18); //进一步忽略&lt;/SPAN&gt;&lt;SPAN&gt;src&lt;/SPAN&gt;&lt;SPAN&gt; DMA &lt;/SPAN&gt;&lt;SPAN&gt;req&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_CREG-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DMAMUX&lt;/SPAN&gt;&lt;SPAN&gt;=3&amp;lt;&amp;lt;16; &lt;/SPAN&gt;&lt;SPAN&gt;//select HSADC read for DMAMUXPER8&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_GPDMA-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;CH&lt;/SPAN&gt;&lt;SPAN&gt; [DMA_CH] .&lt;/SPAN&gt;&lt;SPAN&gt;LLI&lt;/SPAN&gt;&lt;SPAN&gt; = 0;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;// NVIC_EnableIRQ(DMA_IRQn);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; config =LPC_GPDMA-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;CH&lt;/SPAN&gt;&lt;SPAN&gt; [DMA_CH] .&lt;/SPAN&gt;&lt;SPAN&gt;CONFIG&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_GPDMA-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;CH&lt;/SPAN&gt;&lt;SPAN&gt; [DMA_CH].&lt;/SPAN&gt;&lt;SPAN&gt;CONFIG&lt;/SPAN&gt;&lt;SPAN&gt;|=(0x1 &amp;lt;&amp;lt; 0);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; Chip_HSADC_SWTrigger(LPC_ADCHS);&lt;/SPAN&gt;&lt;SPAN&gt;//启动ADCHS软件触发&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;//不配置就无法读取到数据，但会覆盖之前的配置&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; NVIC_SetPriority(&lt;/SPAN&gt;&lt;SPAN&gt;DMA_IRQn&lt;/SPAN&gt;&lt;SPAN&gt;,0x00);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; NVIC_ClearPendingIRQ(&lt;/SPAN&gt;&lt;SPAN&gt;DMA_IRQn&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; NVIC_EnableIRQ(&lt;/SPAN&gt;&lt;SPAN&gt;DMA_IRQn&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;__asm&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;cpsie&lt;/SPAN&gt;&lt;SPAN&gt; i"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;DMA_IRQHandler&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;__asm&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;nop&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;//stop &lt;/SPAN&gt;&lt;SPAN&gt;hsadc&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt; LPC_GPDMA-&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;CH&lt;/SPAN&gt;&lt;SPAN&gt; [DMA_CH].&lt;/SPAN&gt;&lt;SPAN&gt;CONFIG&lt;/SPAN&gt;&lt;SPAN&gt;&amp;amp;=~(0x1 &amp;lt;&amp;lt; 0);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0;"&gt;Hope it can help you&lt;/P&gt;
&lt;P style="margin: 0;"&gt;BR&lt;/P&gt;
&lt;P style="margin: 0;"&gt;XiangJun Rong&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 26 Aug 2024 05:39:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC43XX-HSADC-DMA-how-to/m-p/1939931#M56707</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2024-08-26T05:39:21Z</dc:date>
    </item>
    <item>
      <title>Re: LPC43XX HSADC DMA how to</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC43XX-HSADC-DMA-how-to/m-p/1952956#M56838</link>
      <description>&lt;P&gt;Seems&lt;EM&gt;&lt;STRONG&gt; 0x06 &amp;lt;&amp;lt; 11&lt;/STRONG&gt;&lt;/EM&gt; is for burst DMA.&lt;/P&gt;&lt;P&gt;I am keep more testing. thanks&lt;/P&gt;&lt;LI-CODE lang="c"&gt;	LPC_GPDMA-&amp;gt;CH[DMA_CH].CONFIG = (0x1 &amp;lt;&amp;lt; 0) // enable bit: 1 enable, 0 ...
	| (0x6 &amp;lt;&amp;lt; 11) // flow control: peripheral to memory - DMA control&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 12 Sep 2024 03:30:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC43XX-HSADC-DMA-how-to/m-p/1952956#M56838</guid>
      <dc:creator>robberpen</dc:creator>
      <dc:date>2024-09-12T03:30:24Z</dc:date>
    </item>
  </channel>
</rss>

