stm8l gpio模拟串口,有没有好方法啊,我用定时器不停判断高低电平,现在接收数据老是有误码,
就一个串口,现在要三个,得模拟两个,
模拟串口9600波特率,
是用定时器不断的判断起始位接收数据,还是外部中断加定时器,
两种方法都试了,都只能接受到前面几个字节是对的,后面就错了.
晶振16Mhz 2分频, 8Mhz,
我用示波器比较了标准串口的104us,然后我用定时器拉高拉低io口,示波器量了也是104us,
发送没什么问题,就是接收比较麻烦.
离线
你可以短路你自己模拟的两个io,看看能不能自发自收
前面几个字节正常,后面就错了,是不是由于定时器中断代码运行占用了一定的时间,导致后面时序偏差了
离线
你用大循环做肯定不行
别人的例子只是例子而已,只是告诉你有这么一个功能和方法
你需要用状态机
主循环去轮巡状态机,中断去填充缓冲区
你想想,如果让你设计个硬件串口,你能如何设计?就解决这个问题了
另外就是,单片机要跑16M
示波器看下波特率是不是偏差太大,如果太大,需要用外部晶振
离线
谢谢大家搞定了, 我提高了采用频率,连续三个低则判定低电平,连续三个高则判定高电平。
离线