找回密码
 立即注册
查看: 733|回复: 3

STC8H4K64TLCD使用UART4_2的DMA方式不正常!(已上传波形照片)(已解决!)

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-04-23 16:05:29

13

主题

40

回帖

297

积分

中级会员

积分
297
发表于 2023-8-13 00:46:23 | 显示全部楼层 |阅读模式
本帖最后由 zcllom 于 2023-8-13 13:15 编辑

STC8H4K64TLCD使用UART4_2的DMA极其不正常,搞了大半天,这么简单的功能居然不正常,气死人。用的是TIM4做波特率,设置按照STC工具上弄的,用普通UART方式没问题,发送正常,但是改位DMA方式,发送不正常,波形也不对!!不知道怎么回事
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-04-23 16:05:29

13

主题

40

回帖

297

积分

中级会员

积分
297
发表于 2023-8-13 11:02:50 | 显示全部楼层
我把正确的波形和错误的波形都放上来!!!!!


首先是UART方式正确的:

正确.jpg


再就是DMA方式错误的

错误.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2023-8-13 12:13:09 | 显示全部楼层
用STC8H实验箱例程包里面“57-DMA-UART串口与存储器数据自动收发”目录下的串口4使用DMA中断模式与电脑收发测试例程试试看。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-04-23 16:05:29

13

主题

40

回帖

297

积分

中级会员

积分
297
发表于 2023-8-13 13:31:15 | 显示全部楼层
已经越来越多地使用STC芯片了,以前做的一块板子,用的是STC8H8K64U,使用DMA+UART1方式,非常好用。这次做的板子用DMA+UART4出现这种状况,始料不及。那为什么不直接用单独UART方式?因为不能,单片机要控制一长条的级联的幻彩LED,对LED灯组发数据时,一丁点中断都不能产生,甚至用数组循环寻址方式都不行,必须用指针移位来取LED的颜色灰度数据往单总线上发bit数据(21颗幻彩LED,每一颗有红、绿、蓝三个字节寄存器,也就是一次性按照严格的时序发完21x3x8=504bit位数据)。所以DMA功能处理串口收发是刚需!
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

问题解决了,现在总结一下。
DMA好用好用真好用!就是经常在相关设置上会有些小的细节变更,或者说同系列不同型号是否存在一定的设置差异?不得而知!
就比如这次:

前段时间用STC8H8K64U芯片,
设置串口发送DMA:
DMA_UR4T_TXA = (u8)pData;
会出错!
改成以下:
DMA_UR4T_TXA = (u16)pData;                        //只有强制转换(u16),才能避免异常 20230403
好了

这次用的是STC8H4K64TLCD(带触摸键,带LCD驱动很香),沿用之前的设置,结果就坏了
改成:
DMA_UR4T_TXAH = (u8)((u16)pData >> 8);
DMA_UR4T_TXAL = (u8)((u16)pData);
就解决问题了。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-3 01:01 , Processed in 0.147909 second(s), 69 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表