物联网网站开发,网站用品网店进货渠道,室内设计招聘网站有哪些,在线简历制作系统提示#xff1a;文章 文章目录
前言一、背景二、 2.1 2.2 总结
前言
前期疑问#xff1a; 本文目标#xff1a; 一、背景
2024年3月26日23:32:43 今天看了DMA存储器到存储器的DMA传输和存储器到外设的DMA实验#xff0c;在keil仿真可以看到效果。还没有在protues和开发… 提示文章 文章目录
前言一、背景二、 2.1 2.2 总结
前言
前期疑问 本文目标 一、背景
2024年3月26日23:32:43 今天看了DMA存储器到存储器的DMA传输和存储器到外设的DMA实验在keil仿真可以看到效果。还没有在protues和开发板上实验。先记录下来。
二、
2.1 存储器到存储器
存储器到存储器 代码提交记录 SHA-1: bea0109310e47971a4869d13784445d9ee96f536 DMA实现存储器到存储器实验 //main.c文件
int main(void)
{ //RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);/* LED 端口初始化 */LED_GPIO_Config(); //按键初始化函数 gpio_init();//EXTI按键初始化函数bsp_exti_key_gpio_init();bsp_exti_key_nvic_init();bsp_exti_key_exti_init();//RCC初始化RCC_Init(); //USART初始化InitGPIO();InitUsart(); //包含了NVIC中断初始化//USART_Config();//DMA配置存储器到存储器DMA_Config();char array[15] hello world\r\n;while (1){//key_process(); rcc_led_loop();// for(int i 0; i 15; i)
// {
// sendData(array[i]);
// }
// //Delay(1000000);printf(hello world\r\n);if(getBufferCmpResult()){printf(result is same!\r\n);}}
}//打印信息
led_on();
led_off();
hello world
result is same!
led_on();
led_off();
hello world
result is same!
led_on();
led_off();
hello world
result is same!
led_on();
led_off();
hello world
result is same!
led_on();
led_off();
hello world
result is same!
led_on();
led_off();2.2 存储器到外设
代码提交 SHA-1: 8632c414141f7dae6c10e9617b1576f59a09d62e DMA实现存储器到外设数据发送 //main文件
/*** brief 主函数* param 无 * retval 无*/
int main(void)
{ //RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);/* LED 端口初始化 */LED_GPIO_Config(); //按键初始化函数 gpio_init();//EXTI按键初始化函数bsp_exti_key_gpio_init();bsp_exti_key_nvic_init();bsp_exti_key_exti_init();//RCC初始化RCC_Init(); //USART初始化InitGPIO();InitUsart(); //包含了NVIC中断初始化//USART_Config();//DMA配置存储器到存储器DMA_Config();/* 配置使用DMA模式 */USARTx_DMA_Config();printf(\r\n USART1 DMA TX 测试 \r\n);int i 0;/*填充将要发送的数据*/for (i0; iSENDBUFF_SIZE; i){SendBuff[i] P;}/*为演示DMA持续运行而CPU还能处理其它事情持续使用DMA发送数据量非常大*长时间运行可能会导致电脑端串口调试助手会卡死鼠标乱飞的情况*或把DMA配置中的循环模式改为单次模式*//* USART1 向 DMA发出TX请求 */USART_DMACmd(USART1, USART_DMAReq_Tx, ENABLE);char array[15] hello world\r\n;while (1){//key_process(); rcc_led_loop();// for(int i 0; i 15; i)
// {
// sendData(array[i]);
// }
// //Delay(1000000);printf(hello world\r\n);if(getBufferCmpResult()){printf(result is same!\r\n);}}
}keil仿真实验效果
三、
3.1 总结
未完待续