完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include <STM32f10x_lib.h>
#include "sys.h" #include "usart.h" #include "delay.h" #include "led.h" #include "key.h" #include "exti.h" #include "wdg.h" #include "timer.h" #include "lcd.h" #include "rtc.h" #include "wkup.h" #include "adc.h" #include "dma.h" //Mini STM32开发板范例代码15 //DMA 实验 //发烧友@ALIENTEK //技术论坛:www.openedv.com u8 SendBuff[5200]; const u8 TEXT_TO_SEND[]={"ALIENTEK MiniSTM32 DMA"}; int main(void) { u16 i; u8 t=0; u8 j,mask=0; float pro=0;//进度 Stm32_Clock_Init(9);//系统时钟设置 delay_init(72); //延时初始化 uart_init(72,9600); //串口1初始化 LED_Init(); KEY_Init(); LCD_Init(); MYDMA_Config(DMA1_Channel3,(u32)&USART1->DR,(u32)SendBuff,5200);//DMA1通道4,外设为串口1,存储器为SendBuff,长度5200. OINT_COLOR=RED;//设置字体为蓝色 LCD_ShowString(60,50,"Mini STM32"); LCD_ShowString(60,70,"DMA USART TEST"); LCD_ShowString(60,90,"ATOM@ALIENTEK"); LCD_ShowString(60,110,"2010/12/30"); //显示提示信息 LCD_ShowString(60,130,"Press KEY0 To Start!"); j=sizeof(TEXT_TO_SEND); for(i=0;i<5200;i++)//填充ASCII字符集数据 { if(t>=j)//加入换行符 { if(mask) { SendBuff=0x0a; t=0; }else { SendBuff=0x0d; mask++; } }else//复制TEXT_TO_SEND语句 { mask=0; SendBuff=TEXT_TO_SEND[t]; t++; } } OINT_COLOR=BLUE;//设置字体为蓝色 i=0; while(1) { t=KEY_Scan(); if(t==1)//KEY0按下 { LCD_ShowString(60,150,"Start Transimit...."); LCD_ShowString(60,170," %");//显示百分号 printf("nnDMA DATA:n"); USART1->CR3=1<<7; //使能串口1的DMA发送 MYDMA_Enable(DMA1_Channel3);//开始一次DMA传输! //等待DMA传输完成,此时我们来做另外一些事,点灯 //实际应用中,传输数据期间,可以执行另外的任务 while(1) { if(DMA1->ISR&(1<<9))//等待通道4传输完成 { DMA1->IFCR|=1<<9;//清除通道4传输完成标志 break; } pro=DMA1_Channel3->CNDTR;//得到当前还剩余多少个数据 pro=1-pro/5200;//得到百分比 pro*=100; //扩大100倍 LCD_ShowNum(60,170,pro,3,16); } LCD_ShowNum(60,170,100,3,16);//显示100% LCD_ShowString(60,150,"Transimit Finished!");//提示传送完成 LCD_ShowString(60,170,SendBuff); } i++; delay_ms(10); if(i==20) { LED0=!LED0;//提示系统正在运行 i=0; } } } 原子的源程序用的是通道4,我想改成通道3,但是不知道为什么不行 屏幕上显示0%,一直不变化,求解,谢谢 |
|
相关推荐
1个回答
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1678 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1580 浏览 1 评论
1012 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
703 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1626 浏览 2 评论
1892浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
673浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
537浏览 3评论
556浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
524浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-2 21:05 , Processed in 0.841070 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号