DMA_LISR - Статусный регистр прерываний, сообщающий о событиях при передаче данных.
TCIFx: прерывание по завершению передачи потока х (х = 3..0)
Этот бит устанавливается аппаратно. Он сбрасывается программно записью 1 в соответствующий бит DMA_LIFCR регистра.
0: Передача не завершена, событие на потоке х.
1: передача завершена, событие на поток х.
HTIFx: флаг прерывания половины передачи на потоке х (х = 3..0)
Этот бит устанавливается аппаратно. Он сбрасывается программно записью 1 в соответствующий бит DMA_LIFCR регистра.
0: Половина данных пока не передалась на потоке х.
1: Передалась половина данных на потоке х.
TEIFx: флаг прерывания по ошибке передачи на потоке х (х = 3..0)
Этот бит устанавливается аппаратно. Он сбрасывается программно записью 1 в соответствующий бит DMA_LIFCR регистра.
0: нет ошибок передачи на потоке х.
1: Произошла ошибка передачи на потоке х.
DMEIFx: флаг прерывания по ошибке в режиме direct на потоке х (х = 3..0) Этот бит устанавливается аппаратно. Он сбрасывается программно записью 1 в соответствующий бит DMA_LIFCR регистра.
0: Нет ошибки работы в режиме direct на потоке х.
1: Произошла ошибка в режиме Direct на потоке х.
FEIFx: Флаг прерывания по ошибке FIFO на потоке х (х = 3..0)
Этот бит устанавливается аппаратно. Он сбрасывается записью 1 с соответствующий бито DMA_LIFCR регистр.
0: Ошибок в FIFO на потоке х нет.
1: Произошла ошибка FIFO на потоке х.
DMA_HISR - подобен регистру DMA_LISR , но для потоков 4-7.
DMA_LIFCR - Регистр сброса флагов прерывания, на потоках 0-3;
CTCIF: Очистка флага прерывания после полной передачи.
CHTIF: Очистка флага прерывания после половины передачи.
CTEIF: Очистка флага прерывания по возникновению ошибки.
CDMEIF: Очистка флага прерывания по возникновению ошибки в режиме Direct.
CFEIF: Очистка флага прерывания по возникновению ошибки в режиме FIFO.
Запись в этот бит очищает соответствующий флаг в регистре DMA_LISR.
DMA_HIFCR - Регистр сброса флагов прерывания аналогичен DMA_LIFCR, но для потоков 4-7;
DMA_CR - Регистр конфигаруции с битами: CHSEL выбор каналов, DIR направление передачи,TEIE/HTIE установки прерываний после передачи, установка шаг (приращение) адреса памяти после чтения/записи регистров. EN - запуск/отключения работы DMA.
DMA_NDTR - Регистр, в котором записывается общий обьем передаваемых данных.
DMA_PAR - Адрес периферии из которого будут переписыватся данные, или в который данные будут записыватся.
DMA_SxM0AR и DMA_SxM1AR - Два регистра в который записываются адреса памяти, между которыми будут передаватся данные в режиме память-память. В случае если копирование данных будет в режиме память-периферия, указывается только один адрес памяти.
DMA_FIFO - Регистр управления DMA в режиме FIFO.
//......DMA....
//.............
#define DMA2_RCC *((uint32_t*)0x40023830)//|=0x400000;
#define DMA2_LISR *((uint32_t*)0x40026400)
#define DMA2_HISR *((uint32_t*)0x40026404)
#define DMA2_LIFCR *((uint32_t*)0x40026408)
#define DMA2_HIFCR *((uint32_t*)0x4002640C)
#define DMA2_S0CR *((uint32_t*)0x40026410)
#define DMA2_S0NDTR *((uint32_t*)0x40026414)
#define DMA2_S0PAR *((uint32_t*)0x40026418)
#define DMA2_S0M0AR *((uint32_t*)0x4002641C)
#define DMA2_S0M1AR *((uint32_t*)0x40026420)
#define DMA2_S0FCR *((uint32_t*)0x40026424)
#define DMA2_S1CR *((uint32_t*)0x40026428)
#define DMA2_S1NDTR *((uint32_t*)0x4002642C)
#define DMA2_S1PAR *((uint32_t*)0x40026430)
#define DMA2_S1M0AR *((uint32_t*)0x40026434)
#define DMA2_S1M1AR *((uint32_t*)0x40026438)
#define DMA2_S1FCR *((uint32_t*)0x4002643C)
#define DMA2_S2CR *((uint32_t*)0x40026440)
#define DMA2_S2NDTR *((uint32_t*)0x40026444)
#define DMA2_S2PAR *((uint32_t*)0x40026448)
#define DMA2_S2M0AR *((uint32_t*)0x4002644C)
#define DMA2_S2M1AR *((uint32_t*)0x40026450)
#define DMA2_S2FCR *((uint32_t*)0x40026454)
#define DMA2_S3CR *((uint32_t*)0x40026458)
#define DMA2_S3NDTR *((uint32_t*)0x4002645C)
#define DMA2_S3PAR *((uint32_t*)0x40026460)
#define DMA2_S3M0AR *((uint32_t*)0x40026464)
#define DMA2_S3M1AR *((uint32_t*)0x40026468)
#define DMA2_S3FCR *((uint32_t*)0x4002646C)
#define DMA2_S4CR *((uint32_t*)0x40026470)
#define DMA2_S4NDTR *((uint32_t*)0x40026474)
#define DMA2_S4PAR *((uint32_t*)0x40026478)
#define DMA2_S4M0AR *((uint32_t*)0x4002647C)
#define DMA2_S4M1AR *((uint32_t*)0x40026480)
#define DMA2_S4FCR *((uint32_t*)0x40026484)
#define DMA2_S5CR *((uint32_t*)0x40026488)
#define DMA2_S5NDTR *((uint32_t*)0x4002648C)
#define DMA2_S5PAR *((uint32_t*)0x40026490)
#define DMA2_S5M0AR *((uint32_t*)0x40026494)
#define DMA2_S5M1AR *((uint32_t*)0x40026498)
#define DMA2_S5FCR *((uint32_t*)0x4002649C)
#define DMA2_S6CR *((uint32_t*)0x400264A0)
#define DMA2_S6NDTR *((uint32_t*)0x400264A4)
#define DMA2_S6PAR *((uint32_t*)0x400264A8)
#define DMA2_S6M0AR *((uint32_t*)0x400264AC)
#define DMA2_S6M1AR *((uint32_t*)0x400264B0)
#define DMA2_S6FCR *((uint32_t*)0x400264B4)
#define DMA2_S7CR *((uint32_t*)0x400264B8)
#define DMA2_S7NDTR *((uint32_t*)0x400264BC)
#define DMA2_S7PAR *((uint32_t*)0x400264C0)
#define DMA2_S7M0AR *((uint32_t*)0x400264C4)
#define DMA2_S7M1AR *((uint32_t*)0x400264C8)
#define DMA2_S7FCR *((uint32_t*)0x400264CC)
TCIFx: прерывание по завершению передачи потока х (х = 3..0)
Этот бит устанавливается аппаратно. Он сбрасывается программно записью 1 в соответствующий бит DMA_LIFCR регистра.
0: Передача не завершена, событие на потоке х.
1: передача завершена, событие на поток х.
HTIFx: флаг прерывания половины передачи на потоке х (х = 3..0)
Этот бит устанавливается аппаратно. Он сбрасывается программно записью 1 в соответствующий бит DMA_LIFCR регистра.
0: Половина данных пока не передалась на потоке х.
1: Передалась половина данных на потоке х.
TEIFx: флаг прерывания по ошибке передачи на потоке х (х = 3..0)
Этот бит устанавливается аппаратно. Он сбрасывается программно записью 1 в соответствующий бит DMA_LIFCR регистра.
0: нет ошибок передачи на потоке х.
1: Произошла ошибка передачи на потоке х.
DMEIFx: флаг прерывания по ошибке в режиме direct на потоке х (х = 3..0) Этот бит устанавливается аппаратно. Он сбрасывается программно записью 1 в соответствующий бит DMA_LIFCR регистра.
0: Нет ошибки работы в режиме direct на потоке х.
1: Произошла ошибка в режиме Direct на потоке х.
FEIFx: Флаг прерывания по ошибке FIFO на потоке х (х = 3..0)
Этот бит устанавливается аппаратно. Он сбрасывается записью 1 с соответствующий бито DMA_LIFCR регистр.
0: Ошибок в FIFO на потоке х нет.
1: Произошла ошибка FIFO на потоке х.
DMA_HISR - подобен регистру DMA_LISR , но для потоков 4-7.
DMA_LIFCR - Регистр сброса флагов прерывания, на потоках 0-3;
CTCIF: Очистка флага прерывания после полной передачи.
CHTIF: Очистка флага прерывания после половины передачи.
CTEIF: Очистка флага прерывания по возникновению ошибки.
CDMEIF: Очистка флага прерывания по возникновению ошибки в режиме Direct.
CFEIF: Очистка флага прерывания по возникновению ошибки в режиме FIFO.
Запись в этот бит очищает соответствующий флаг в регистре DMA_LISR.
DMA_HIFCR - Регистр сброса флагов прерывания аналогичен DMA_LIFCR, но для потоков 4-7;
DMA_CR - Регистр конфигаруции с битами: CHSEL выбор каналов, DIR направление передачи,TEIE/HTIE установки прерываний после передачи, установка шаг (приращение) адреса памяти после чтения/записи регистров. EN - запуск/отключения работы DMA.
DMA_NDTR - Регистр, в котором записывается общий обьем передаваемых данных.
DMA_PAR - Адрес периферии из которого будут переписыватся данные, или в который данные будут записыватся.
DMA_SxM0AR и DMA_SxM1AR - Два регистра в который записываются адреса памяти, между которыми будут передаватся данные в режиме память-память. В случае если копирование данных будет в режиме память-периферия, указывается только один адрес памяти.
DMA_FIFO - Регистр управления DMA в режиме FIFO.
//......DMA....
//.............
#define DMA2_RCC *((uint32_t*)0x40023830)//|=0x400000;
#define DMA2_LISR *((uint32_t*)0x40026400)
#define DMA2_HISR *((uint32_t*)0x40026404)
#define DMA2_LIFCR *((uint32_t*)0x40026408)
#define DMA2_HIFCR *((uint32_t*)0x4002640C)
#define DMA2_S0CR *((uint32_t*)0x40026410)
#define DMA2_S0NDTR *((uint32_t*)0x40026414)
#define DMA2_S0PAR *((uint32_t*)0x40026418)
#define DMA2_S0M0AR *((uint32_t*)0x4002641C)
#define DMA2_S0M1AR *((uint32_t*)0x40026420)
#define DMA2_S0FCR *((uint32_t*)0x40026424)
#define DMA2_S1CR *((uint32_t*)0x40026428)
#define DMA2_S1NDTR *((uint32_t*)0x4002642C)
#define DMA2_S1PAR *((uint32_t*)0x40026430)
#define DMA2_S1M0AR *((uint32_t*)0x40026434)
#define DMA2_S1M1AR *((uint32_t*)0x40026438)
#define DMA2_S1FCR *((uint32_t*)0x4002643C)
#define DMA2_S2CR *((uint32_t*)0x40026440)
#define DMA2_S2NDTR *((uint32_t*)0x40026444)
#define DMA2_S2PAR *((uint32_t*)0x40026448)
#define DMA2_S2M0AR *((uint32_t*)0x4002644C)
#define DMA2_S2M1AR *((uint32_t*)0x40026450)
#define DMA2_S2FCR *((uint32_t*)0x40026454)
#define DMA2_S3CR *((uint32_t*)0x40026458)
#define DMA2_S3NDTR *((uint32_t*)0x4002645C)
#define DMA2_S3PAR *((uint32_t*)0x40026460)
#define DMA2_S3M0AR *((uint32_t*)0x40026464)
#define DMA2_S3M1AR *((uint32_t*)0x40026468)
#define DMA2_S3FCR *((uint32_t*)0x4002646C)
#define DMA2_S4CR *((uint32_t*)0x40026470)
#define DMA2_S4NDTR *((uint32_t*)0x40026474)
#define DMA2_S4PAR *((uint32_t*)0x40026478)
#define DMA2_S4M0AR *((uint32_t*)0x4002647C)
#define DMA2_S4M1AR *((uint32_t*)0x40026480)
#define DMA2_S4FCR *((uint32_t*)0x40026484)
#define DMA2_S5CR *((uint32_t*)0x40026488)
#define DMA2_S5NDTR *((uint32_t*)0x4002648C)
#define DMA2_S5PAR *((uint32_t*)0x40026490)
#define DMA2_S5M0AR *((uint32_t*)0x40026494)
#define DMA2_S5M1AR *((uint32_t*)0x40026498)
#define DMA2_S5FCR *((uint32_t*)0x4002649C)
#define DMA2_S6CR *((uint32_t*)0x400264A0)
#define DMA2_S6NDTR *((uint32_t*)0x400264A4)
#define DMA2_S6PAR *((uint32_t*)0x400264A8)
#define DMA2_S6M0AR *((uint32_t*)0x400264AC)
#define DMA2_S6M1AR *((uint32_t*)0x400264B0)
#define DMA2_S6FCR *((uint32_t*)0x400264B4)
#define DMA2_S7CR *((uint32_t*)0x400264B8)
#define DMA2_S7NDTR *((uint32_t*)0x400264BC)
#define DMA2_S7PAR *((uint32_t*)0x400264C0)
#define DMA2_S7M0AR *((uint32_t*)0x400264C4)
#define DMA2_S7M1AR *((uint32_t*)0x400264C8)
#define DMA2_S7FCR *((uint32_t*)0x400264CC)
Комментариев нет:
Отправить комментарий