摘要:学习了正点原子MINI板子(STM32F103)的DMA教程之后,感觉没怎么学会,就得自己改改还能跑起来才算会了。魔改1:改为串口回显,串口发送什么,用DMA传回来什么。魔改2为立马回显,不需要按键按下去。

文章目录

  • 魔改1:串口回显
    • 步骤1
    • 步骤2
    • 步骤3
    • 步骤4
    • 结果展示
  • 魔改2
    • 步骤
    • 结果

魔改1:串口回显

原先的程序是,固定的字符串,发送100遍,没什么意思

  1. 本来的思路是打算一个串口1,继续这样按键发送,自己再搞个串口做回显,后来突然意识到一个问题,在串口调试助手发送的数据,到底是给哪个串口的呢?后来意识到只有串口1可用,别的串口没有CH340,当然也能跳线,我的意思是只有一个CH340,一次只能一个串口,反正这个已经掌握了,就不用固定的字符发送了。
  2. 在1中本来打算重新使能一个通道的,以为发送是(u32)&USART1->DR,接收是(u32)&USART1->SR,但是总感觉怪怪的(英文好像对不上),后来查手册知道这个是一个名字两个寄存器,根据读写操作进行区分

步骤1

注释掉部分不用的代码

 //注释掉的部分
//  for(i=0;i<SendBuff_LENTH;i++)//Ìî³äASCII×Ö·û¼¯Êý¾Ý
//    {//      if(t>=TEXT_LENTH)//¼ÓÈë»»Ðзû
//      {
//          SendBuff[i++]=0x0d;
//          SendBuff[i]=0x0a;
//          t=0;
//      }else SendBuff[i]=TEXT_TO_SEND[t++];//¸´ÖÆTEXT_TO_SENDÓï¾ä
//    }

步骤2

MYDMA_Config函数改为下图,并搬进while里面

while(1){t=KEY_Scan(0);if(t==KEY0_PRES)//KEY0°´ÏÂ{MYDMA_Config(DMA1_Channel4,(u32)&USART1->DR,(u32)USART_RX_BUF,USART_RX_STA &0x3F);

步骤3

  1. 修改显示百分比
pro=1-pro/USART_RX_STA;

步骤4

  1. 将串口接收字符缓存位置归0,串口缓存是不断往后缓存的,而我们DMA发送是从起始位置发送n个字节,这样如果不断往后缓存,而发送的字节不变的话,很可能我们第二次发送给单片机的东西,在缓存数组的靠后位置,而我们发送前n个字节的时候,就很可能还是上一次发送的字符,所以我们让新缓存的字符,覆盖掉原先的字符
LCD_ShowNum(60,170,100,3,16);//
LCD_ShowString(60,150,200,16,16,"Transimit Finished!");//
USART_RX_STA=0;

结果展示

操作步骤:

  1. 发送第一句话,按下KEY0
  2. 发送第二句话,按下KEY0
  3. 发送第n句话,按下KEY0

魔改2

老是要按下按键才能回显,太麻烦了,想要发送之后立马回显的,不需要按下按键的。

步骤

在uasart.c文件中定义一个RX_state,用来表明串口接收完成

再在主函数里面注释掉按键的,改为根据RX_state来判断,回显完成,最后把RX_state=0;

结果

正点原子STM32F103 DMA代码例程魔改相关推荐

  1. 对于威纶通MT8071ip与正点原子stm32f103的modbus通信,如何接线和配置

    1.威纶通与正点原子stm32f103的接线关系:威纶通的针脚1接stm32f103开发板的RS485的B端口,针脚2接RS485的A端口. 2.如果是威纶通接usb转串口485的接口,那就是针脚1接 ...

  2. STM32F103RB 实作笔记(九)- PWM + SPI +MAX6675 整合试验 (正点原子 STM32F103 nano开发板)程式解析

    个人工作上的关系,需要做一款温度控制风扇速度的控制器,还需要能够看到温度和PWM的值.于是我用这个不熟悉的 STM32F103 试试,顺便把 PWM 和 SPI 也了解一番. 一开始当然也是跌跌撞撞, ...

  3. 基于正点原子STM32F103精英板IIC实验的MS5611气压计的使用

    MS5611是一款气压计,能够提供高精度的气压值与温度值,这次做项目正好需要用到这款传感器,包括之前也没好好学习用过IIC,所以写下博客记录一下. 如果有需要使用的朋友可以去https://downl ...

  4. STM32F103RB 实作笔记(六)- HC-05 蓝牙模组与手机 APP(正点原子 STM32F103 nano开发板)程式解析

    这一篇文章是为后面的实验做的一个准备工作 我们在做开发板扩展时,最不喜欢遇到的就是"不知道发生了什么事"!所以, 会用一些输出显示装备来告诉我们,现在已经在哪里了. 譬如,前一个实 ...

  5. 正点原子STM32F103综合课程操作学习笔记(包含代码)

    整理资料来源 [正点原子] 手把手教你学STM32单片机教学视频 嵌入式 之 F103-基于新战舰V NANO_STM32F103开发指南-HAL库版本_V1.0.pdf 其它网络操作等 词汇解释 p ...

  6. 正点原子STM32F103精英版开发环境搭建并编写第一个程序(使用串口下载,基于HAL库)

    一:软件下载: 使用图形化配置软件:STM32cubeMX,支持HAL库. 1,下载stm32cubeMX; 2,下载STM32f103器件包: 3,下载IED:keil5 arm版本: 4,下载 s ...

  7. STM32F103RB 实作笔记(一)- GPIOC LED 跑马灯(正点原子 STM32F103 nano开发板)程式解析

    这几天被隔离管着无聊,就上淘宝买了一块<正点原子> STM32F103 nano开发板,来练习 stm32f103 的程式.买这块开发板的原因是因为,板子已经有大部分MPU可以应用的线路包 ...

  8. 关于正点原子STM32的MDK例程移植到IAR中遇到的错误解决方法 __use_no_semihosting

    在移植过程中,估计大部分人应该都又遇到这类问题,主要是usart.c和sys.c这两个文件. 现贴出修改之前和修改之后的代码: usart.c: 之前的代码: #include "sys.h ...

  9. 正点原子STM32F103(精英版)------跑马灯

    配合正点原子视频(工程新建与路径加入省略) 跑马灯硬件连接:         GPIO输出方式:                               推挽输出                 ...

  10. 正点原子STM32F103触摸按键实验指导手册有误

    今天在做触摸按键实验的时候,按照整点原子手册的代码进行实验,但是结果一直不对,最后用一点一点排除的方法花了好几个小时,发现是手册有误,真是哭了. 错误在 TPAD_Get_Val函数中,手册上是这样的 ...

最新文章

  1. 如何画出优秀的架构图?
  2. 三款云数据库性能测试,谁表现最好?
  3. Gym-101466K Random Numbers(线段树,数学,唯一分解定理)
  4. DNN-两种矩阵相乘的理解
  5. Linux PHY几个状态的跟踪
  6. 编译型语言和解释性语言,c++和python
  7. 操作系统实验报告(四)文件系统
  8. Java转码amr_java实现amr转mp3
  9. 【论文01】人脸图像合成综述
  10. 刷题42-m升水倒入n个杯子(动态规划)
  11. 07Spring Boot配置绑定
  12. 小米AI魔法万花筒解密
  13. LGP970刷机心得
  14. 六年安卓开发的技术回顾和展望
  15. app读写照片和文件_App 偷看手机照片文件 25000 次,你要干什么?
  16. 2021-06-15记录端午假期学习微信小程序 计算器
  17. MATLAB中判断两字符串是否相等
  18. crm系统收费多少?
  19. 一场AMA讲透比原链BaaS平台Bystack
  20. linux系统下,Failing to install python-igraph

热门文章

  1. Win7主题制作教程 电脑主题制作图文方法
  2. c语言网页版在线编译器_C语言快速入门技巧
  3. WPF中直接打开网页方法总结
  4. DirectX修复工具使用技巧之三——命令行与配置文件参数介绍
  5. ci mysql空闲连接回收_数据库连接空闲回收问题 CommunicationsException: Communications link failure...
  6. 全球地名中英文对照表(U-Z)
  7. 数学建模论文分析--2015A高教社杯--太阳影子定位的多目标优化模型
  8. 耳机煲机软件测试工资,耳机煲机有必要吗_耳机煲机正确方法
  9. 动态域名解析NAT版结合绿盾加密解密软件使用方法
  10. Win10任务栏卡死情况解决方案