DMA1 não funciona com USART1 em stm32f103c8?

votos
0

Eu Quero permitir DMA1 com USART1 em stm32f103c8 mas ele não funciona. i permitiu a USART para trabalhar como transmissor. e, em seguida, permitiu a DMA1 e fazer esta configuração para o 1 a activar o relógio DMA1 da RCC. 2-desativado o Canal DMA1. 3-definir o canal periority DMA1 como muito alta periority. 4-fazer a direcção do canal DMA1 da memória para periférica. 5-fazer o tamanho da memória eo tamanho periférica como byte. 6 habilitar incremento de memória e incremento periférica desativar. 7-activar o modo circular. 8-definir a interrupção DMA para completar a transferência. 7-definir o endereço de memória tampão e ajustar o endereço periférica como registar dados usart1. 8-definir o número de vezes que a transferência DMA como 6. 9-permitir a interrupção do canal DMA1 no NVIC. 10 ativar o DMAT na usart1 para fazer o trabalho USART com o DMA1 11 a activar a DMA1 ao trabalho Iniciar.

depois de tudo Nesta configuração, o DMA não wok mas o trabalho USART com sucesso. no código principal i fazer intialize o usart1 e depois intialize o DMA1 como me disse para cima e, em seguida, enviar um personagem para o terminal e fazer enquanto vazia (1). o terminal só obter apenas o caractere i teve enviá-lo, mas não recebem o caractere na memória eo DMA não ir para o manipulador do DMA que significa que o DMA não trabalhar nunca mais por quê?

Publicado 02/12/2019 em 23:57
fonte usuário
Em outras línguas...                            


1 respostas

DMA1 não funciona com USART1 em stm32f103c8?

votos
0

Eu Quero permitir DMA1 com USART1 em stm32f103c8 mas ele não funciona. i permitiu a USART para trabalhar como transmissor. e, em seguida, permitiu a DMA1 e fazer esta configuração para o 1 a activar o relógio DMA1 da RCC. 2-desativado o Canal DMA1. 3-definir o canal periority DMA1 como muito alta periority. 4-fazer a direcção do canal DMA1 da memória para periférica. 5-fazer o tamanho da memória eo tamanho periférica como byte. 6 habilitar incremento de memória e incremento periférica desativar. 7-activar o modo circular. 8-definir a interrupção DMA para completar a transferência. 7-definir o endereço de memória tampão e ajustar o endereço periférica como registar dados usart1. 8-definir o número de vezes que a transferência DMA como 6. 9-permitir a interrupção do canal DMA1 no NVIC. 10 ativar o DMAT na usart1 para fazer o trabalho USART com o DMA1 11 a activar a DMA1 ao trabalho Iniciar.

depois de tudo Nesta configuração, o DMA não wok mas o trabalho USART com sucesso. no código principal i fazer intialize o usart1 e depois intialize o DMA1 como me disse para cima e, em seguida, enviar um personagem para o terminal e fazer enquanto vazia (1). o terminal só obter apenas o caractere i teve enviá-lo, mas não recebem o caractere na memória eo DMA não ir para o manipulador do DMA que significa que o DMA não trabalhar nunca mais por quê?

Respondeu 02/12/2019 em 23:57
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more