历史上的今天
今天是:2024年09月05日(星期四)
2018年09月05日 | stm32串口的DMA接收
2018-09-05 来源:eefocus
UART5不支持DMA
不同的外设需要使用不同的DMA
UART4需要使用DMA2的通道3或者5
例如:
void DMA1_Channel5_IRQHandler(void)
{
u16 i,j=0;
OS_ENTER_CRITICAL(); /* Tell uC/OS-II that we are starting an ISR */
OSIntNesting++;
OS_EXIT_CRITICAL();
if(DMA_GetITStatus(DMA1_IT_TC5)!= RESET)
{
DMA_ClearITPendingBit(DMA1_IT_GL5); //清除全部中断标志
DMA_ClearITPendingBit(DMA1_IT_TC5);
DMA_ClearFlag(DMA1_FLAG_TC5);
/*每个距离测试数据包有3 个字节(依次标号为A,B,C),前面2 个字节高位为0,
最后一个字节高位为1,标示此数据包的结束*/
memcpy(Uart_Rx_Backup,Uart_Rx,UART_RX_LEN);
if((Uart_Rx_Backup[0]&0x80) != 0)//
j=1;
else if((Uart_Rx_Backup[1]&0x80) != 0)//
j=2;
else if((Uart_Rx_Backup[2]&0x80) != 0)//
j=0;
for(i=0;i<50;i++)
{
RecorderData_FileWrite[i]=DecodeLaseData3Byte(Uart_Rx_Backup+i*3+j);
}
}
else if(DMA_GetITStatus(DMA1_IT_HT5) == SET)
{
DMA_ClearITPendingBit(DMA1_IT_HT5);
DMA_ClearITPendingBit(DMA1_IT_GL5);
}
OSIntExit();
}
上一篇:stm32 独立看门狗时钟配置
下一篇:STM32 AD DMA模式
史海拾趣
|
我目前想使用C8051F040的P3.0作为外部中断脚-INT0,我用示波器已经观察了管脚上的 波形,一切正常,但是始终进不了外部中断服务子程序。我使用了P1口的部分脚作中断 脚,中断是成功的,只要用到P3口就不行,P2口我没有去试, 所以我想请问 ...… 查看全部问答> |
|
/******************************************************************************************* 函数名称: GPIO_SetPin 描 述: 设置某个引脚输出高电平 输入参数: DWORD dwIoControlCode : I/O control code, 指出操作的GPIO组, ...… 查看全部问答> |
|
VECTOR_BRANCH ldr pc,=HandlerEINT0 ;mGA 中断向量表 ldr pc,=HandlerEINT1 ; ldr pc,=HandlerEINT2 ; ...… 查看全部问答> |
|
我刚刚学习dsp课程,就按着书本上的代码写上,但是用汇编写老是错,\"TEXTxf.asm\", ERROR! at line 15: [E0002] Invalid instruction for specified   ...… 查看全部问答> |
|
我用的C8051单片机,现在串口0能正常收发,但串口1能发数据但不能进入接收中断,下面是软件代码,麻烦各位前辈帮我看看。 void UARTInit(void) { PCON = 0x90;   ...… 查看全部问答> |
|
硬件资源 MSP-EXP430F5739学习板 TMP006基本电路(2层板) 硬件连接:SCL---P1。7 SDA--P1。6 [ 本帖最后由 蓝雨夜 于 2012-7-27 11:50 编辑 ]… 查看全部问答> |
|
将一段FLASH区用做数据存储,已经实现, 使用芯片为28035 请教: 1.程序使用API函数对FLASH进行读操作,是否需要UNLOCK,(进行写操作肯定是要UNLOCK的,否则写不进) 2.使用过程中发现未进行UNLOCK操作,也能读出FLASH中的值,LOCK难道只针对仿真JTAG通 ...… 查看全部问答> |




