数码之家

 找回密码
 立即注册
搜索
查看: 834|回复: 7

[ARM] 灵动微电子开发板FTHRG0001通过串口中断实现数据收发

[复制链接]
发表于 2023-11-5 08:27:16 | 显示全部楼层 |阅读模式
本帖最后由 wangxiangtan2 于 2023-11-5 11:22 编辑

纸上得来终觉浅,绝知此事要躬行。
学个东西真难啊,老了,不中用了,哎。

一,目标:通过串口中断实现数据收发并控制LED翻转。
二,过程:
1,查看文档和接线图,确定用到的端口,IO口PA3和PA12连接串口USART1的接收和发送,
IO口PA11连接LED灯。查看引脚复用表,IO口PA3和PA12用作串口通讯时要启用复用功能AF1



2,程序里面对IO口PA3、PA13进行初始化,开启复用功能AF1用来串口通讯:

3,串口中断初始化写到一个单独文件里面,网上抄一段STM32的串口中断程序、字节
字符串的收发程序(官方例程没看懂……),灵动微这个MM32G0001A1的中断初始化
程序跟STM32几乎一毛一样,还做了简化,直接粘贴过来编译通不过,删掉两行就行了。


4,中断处理函数放main.c里面也行,好神奇的感觉。在中断处理函数里面翻转LED灯,
并把收到的数据加个整数发送回去:




(数字1、2、3在字符串格式显示的时候就会是方框框,字符串换行在Hex格式
下显示就是0D 0A)
这样就可以了。就这几段代码,昨天折腾了一天……刚开始想用USART2口,配置
好程序,直接把USART2的引脚怼到USART1上,发现不行,一个恒高,一个恒低,
参考网上的例程又改回USART1,才实现数据发送,然后又折腾数据接收,真是怼
着现成的例程还得消化老半天,哎……
三、Keil遇到的问题
1,Keil无法输入、显示中文字符:
在设置里面把文档编码从ANSI改为GB2132:

2,明明包含路径已经正确设置、编译也正常,就是显示红XX、提示找不到文件:
原因是当前项目路径包含了中文,解决方法
1)把项目文件放到不含中文的目录下,就不会显示红XX了:

2)暴力点,取消动态语法检测功能,也不会再显示红XX:


四、做好说明,保存备用

参考资料:
1)官方例程;
2)stm32串口通讯方法:https://blog.csdn.net/qq_44852376/article/details/127890213
3)他人的串口操作:https://www.xcc.com/planet/post/1015
4)https://www.xcc.com/planet/post/1276

五、视频、源码
上位机发个数据,板子上LED翻转一下,同时回传一个数据:

放个源码,供大家参考

论坛抽风,发个贴真难……
好了,研究I2C通讯去了,买了一个温湿度小板子,
上面的温度、湿度、大气压力、海拔高度是I2C通讯……


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

打赏

参与人数 1家元 +150 收起 理由
家睦 + 150

查看全部打赏

发表于 2023-11-5 09:14:05 | 显示全部楼层
有DMA,应该试试用DMA收发,要不CORTEXM3的优势没发挥出来
回复 支持 反对

使用道具 举报

发表于 2023-11-5 09:16:20 | 显示全部楼层
手头也有个灵动开发板,有空抄大佬的程序试试,谢谢分享!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-5 09:18:08 | 显示全部楼层
eric_yangsen 发表于 2023-11-5 09:14
有DMA,应该试试用DMA收发,要不CORTEXM3的优势没发挥出来

是Direct Memory Access吗?例程里面没有呢亲
回复 支持 反对

使用道具 举报

发表于 2023-11-5 09:33:01 | 显示全部楼层
这个kiel好用吗?我的rp2040能不能用它来开发?
回复 支持 反对

使用道具 举报

发表于 2023-11-5 10:21:33 | 显示全部楼层
wangxiangtan2 发表于 2023-11-5 09:18
是Direct Memory Access吗?例程里面没有呢亲

挺多开发板的例程里有串口DMA收发的例子
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-5 10:59:22 | 显示全部楼层
猪小呆 发表于 2023-11-5 09:33
这个kiel好用吗?我的rp2040能不能用它来开发?

网上看可以的
https://www.eet-china.com/mp/a76305.html
回复 支持 反对

使用道具 举报

发表于 2023-11-5 16:57:07 | 显示全部楼层
看不懂while循环里面那个延时干嘛的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-5 17:15:12 | 显示全部楼层
soma 发表于 2023-11-5 16:57
看不懂while循环里面那个延时干嘛的

没卵用……能说明中断函数起作用了
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-6-18 13:49 , Processed in 0.327601 second(s), 11 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

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