打印
[APM32F1]

模拟串口兼容性详解

[复制链接]
415|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
a976209770|  楼主 | 2023-7-31 18:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
之前在其他品牌芯片上的模拟串口代码正常使用,移植至apm芯片上表现为不稳定,偶尔会有丢包或数据错乱问题,主频为120M,定时器配置如下:
RCM EnableAPBlPeriphClock (RCM APB1 PERIPH TMR2);
TMR BaseConfigStruct .clockDivisionTuR BaseConfiostruct .countMode
= TMR CLOCK DIV 1:4TMR COUNTER MODE UP:
TMR BaseConfigStruct .division
SystemCoreClock/3/1000000-1: //3us:"//9600 //采集"149:
//Timeset[TimeRecvstartstepl]: //9600{149,29,29, 251, 311 },
TMR BaseConfigstruct .period
TMR BaseConfiostruct.repetitionCounter=o:
TNR ConfigTimeBase (TMR2,6TMR BaseConfigStruct):
TMR EnableInterrupt (TMR2,TMR INT UPDATE) :
NVIC EnableIRORequest (TMR2 IROn, 1, 0):


模拟串口需要定时采集io的电平来判断当前的数值从而完成串口通信,之前配置为170,29,29,50us读取电平,经测试,修改为150,39,39,50us后测试ok。

以上为定时器方式的模拟串口,模拟串口也可用软件延时来实现,经测试,在主频相同的情况下,for循环,while循环实际运行的时间略有不同,需要根据延时时间的比例进行相应的调整,此问题在软件模拟iic上基本上必会发生,所以必须进行调整

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

20

帖子

0

粉丝