数码之家

标题: 灵动微电子开发板FTHRG0001通过串口中断实现数据收发 [打印本页]

作者: wangxiangtan2    时间: 2023-11-5 08:27
标题: 灵动微电子开发板FTHRG0001通过串口中断实现数据收发
本帖最后由 wangxiangtan2 于 2023-11-5 11:22 编辑

纸上得来终觉浅,绝知此事要躬行。
学个东西真难啊,老了,不中用了,哎。
[attach]1964034[/attach]
一,目标:通过串口中断实现数据收发并控制LED翻转。
二,过程:
1,查看文档和接线图,确定用到的端口,IO口PA3和PA12连接串口USART1的接收和发送,
IO口PA11连接LED灯。查看引脚复用表,IO口PA3和PA12用作串口通讯时要启用复用功能AF1
[attach]1964036[/attach]
[attach]1964038[/attach]

2,程序里面对IO口PA3、PA13进行初始化,开启复用功能AF1用来串口通讯:
[attach]1964037[/attach]
3,串口中断初始化写到一个单独文件里面,网上抄一段STM32的串口中断程序、字节
字符串的收发程序(官方例程没看懂……),灵动微这个MM32G0001A1的中断初始化
程序跟STM32几乎一毛一样,还做了简化,直接粘贴过来编译通不过,删掉两行就行了。
[attach]1964035[/attach]

4,中断处理函数放main.c里面也行,好神奇的感觉。在中断处理函数里面翻转LED灯,
并把收到的数据加个整数发送回去:
[attach]1964030[/attach]
[attach]1964032[/attach]
[attach]1964031[/attach]
[attach]1964033[/attach]
(数字1、2、3在字符串格式显示的时候就会是方框框,字符串换行在Hex格式
下显示就是0D 0A)
这样就可以了。就这几段代码,昨天折腾了一天……刚开始想用USART2口,配置
好程序,直接把USART2的引脚怼到USART1上,发现不行,一个恒高,一个恒低,
参考网上的例程又改回USART1,才实现数据发送,然后又折腾数据接收,真是怼
着现成的例程还得消化老半天,哎……
三、Keil遇到的问题
1,Keil无法输入、显示中文字符:
在设置里面把文档编码从ANSI改为GB2132:
[attach]1964039[/attach]
2,明明包含路径已经正确设置、编译也正常,就是显示红XX、提示找不到文件:
原因是当前项目路径包含了中文,解决方法
1)把项目文件放到不含中文的目录下,就不会显示红XX了:
[attach]1964069[/attach]
2)暴力点,取消动态语法检测功能,也不会再显示红XX:
[attach]1964068[/attach]

四、做好说明,保存备用
[attach]1964040[/attach]
参考资料:
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翻转一下,同时回传一个数据:
[attach]1964015[/attach]
放个源码,供大家参考
[attach]1964253[/attach]
论坛抽风,发个贴真难……
好了,研究I2C通讯去了,买了一个温湿度小板子,
上面的温度、湿度、大气压力、海拔高度是I2C通讯……
[attach]1964041[/attach]


作者: eric_yangsen    时间: 2023-11-5 09:14
有DMA,应该试试用DMA收发,要不CORTEXM3的优势没发挥出来
作者: lmn2005    时间: 2023-11-5 09:16
手头也有个灵动开发板,有空抄大佬的程序试试,谢谢分享!
作者: wangxiangtan2    时间: 2023-11-5 09:18
eric_yangsen 发表于 2023-11-5 09:14
有DMA,应该试试用DMA收发,要不CORTEXM3的优势没发挥出来

是Direct Memory Access吗?例程里面没有呢亲
作者: 猪小呆    时间: 2023-11-5 09:33
这个kiel好用吗?我的rp2040能不能用它来开发?
作者: eric_yangsen    时间: 2023-11-5 10:21
wangxiangtan2 发表于 2023-11-5 09:18
是Direct Memory Access吗?例程里面没有呢亲

挺多开发板的例程里有串口DMA收发的例子
作者: wangxiangtan2    时间: 2023-11-5 10:59
猪小呆 发表于 2023-11-5 09:33
这个kiel好用吗?我的rp2040能不能用它来开发?

网上看可以的
https://www.eet-china.com/mp/a76305.html
作者: soma    时间: 2023-11-5 16:57
看不懂while循环里面那个延时干嘛的
作者: wangxiangtan2    时间: 2023-11-5 17:15
soma 发表于 2023-11-5 16:57
看不懂while循环里面那个延时干嘛的

没卵用……能说明中断函数起作用了




欢迎光临 数码之家 (https://www.mydigit.cn/) Powered by Discuz! X3.4