分享自己移植的STM8 IO口模拟串口 代码

2020-01-02 19:37发布

使用普通的IO口,模拟串口协议, 和PC端串口调试软件实现通信。
网上找了很多资料,有很多网友有写程序,但是感觉都不是很完整,无意间看到ST官方居然有实现,直接下载代码开始用。

针对官方的IO口模拟串口软件,简单介绍下用到资源。
由于模拟的串口RX脚,对于电平的输入判断用到定时器的输入捕获功能,所以官方用的是定时器3的通道2。
我自己在STM8S003F3P6最小系统上,移植到了TIM2的CH1即PD4用来做串口的RX脚,和PC端串口调试器的TX脚连接。
模拟串口的TX脚没有特殊要求,我这里用的PD3。。。。
修改了MAIN里面的函数,实现模拟串口直接发送接收到的数据。

PPS,关于串口波特率的配置,
这个软件包你需要配置下使用外部24MHZ还是内部16MHZ的晶振,我这里配置的内部16M,
然后在模拟串口初始化里面,按照需要配置的波特率,配置定时器的时基。
常用的函数注释里面已经有给你计算好,直接copy就好, 我这里用的16M,9600bsp,所以填的是注释里面给的833.

简单配置以后就可以实现IO模拟串口通信了。


主要是为了节约成本,加个硬件的串口,成本又加了。

点我下载源码
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
38条回答
shangdawei
1楼-- · 2020-01-04 00:23
szxszx 发表于 2017-3-18 19:06
高波特率时用IO口模拟串口,对CPU的开销比较大,适合系统中其他任务的实时性要求不高场合 ...

如果能使用DMA的话,是不是会好一些?
shangdawei
2楼-- · 2020-01-04 05:57
AN10955_-_Full-duplex_software_UART_for_LPC111x_and_LPC13xx.zip (735.35 KB, 下载次数: 42) 2017-3-18 19:15 上传 点击文件名下载附件



AN10955.pdf (390.01 KB, 下载次数: 39) 2017-3-18 19:16 上传 点击文件名下载附件

HyperSnap_441.jpg (105.04 KB, 下载次数: 0)

下载附件

2017-3-18 19:16 上传

shangdawei
3楼-- · 2020-01-04 07:31

LPC1768的全双工UART的软件模拟实现

LPC1768的全双工UART的软件模拟实现.rar (194.7 KB, 下载次数: 50) 2017-3-18 19:21 上传 点击文件名下载附件

基于LPC1768的全双工UART的软件模拟实现.pdf (676.71 KB, 下载次数: 55) 2017-3-18 19:21 上传 点击文件名下载附件





HyperSnap_444.jpg (61.29 KB, 下载次数: 0)

下载附件

2017-3-18 19:23 上传



shangdawei
4楼-- · 2020-01-04 13:25
 精彩回答 2  元偷偷看……
szxszx
5楼-- · 2020-01-04 19:05
IO口中断配合定时器中断高效一些,详见张明峰的《PIC单片机入门与实战》305页有详细介绍
hecat
6楼-- · 2020-01-04 21:58
16M,模拟串口跑9600还行,波特率再高,就太耗CPU资源了

一周热门 更多>