久芯网

STM32F103 GPIO速度。

avatar cookles13 提问时间: 2023-08-02 16:43:25 / 已解决

STM32F103 普通IO模拟通信协议如I2C,SPI,串口等。 怎么精准的控制通讯的速率,我看到STLINK也是用的STM32的芯片,为何通讯速度能达到10M那么高? 怎么操作的,有例程指导一下吗?


如需获得 STM32F103 等器件的更多信息,请点击链接或 点击此处 联系在线客服!

10个回答
  • avatar STMWoodData
    最佳答案
    回答时间: 2023-08-02 17:00:05
    cookles13 发表于 2022-4-7 14:37
    芯片自带的外设肯定是最方便的,但是现在的需求是需要同样的几个IO去连接不同的芯片,通信协议IIC,S ...

    [md]可以找下UART,SPI,IIC可以复用功能共用引脚,用到那个外设就初始化成对应外设引脚。 或者试下把IO引脚并在一起,对应引脚初始化成对应外设,并在一起的另外没用到引脚初始化成高阻输入。

  • avatar STMWoodData
    回答时间: 2023-08-02 17:22:25

    IO模拟通信协议就是控制IO高低之间的延时来控制速率。设置IO高低之间一般都有个延时函数,延时函数精准,通讯速率就比较精准,但还是会被中断打断,速率有误差,而且占用CPU处理时间太多。用硬件通信外设更方便,更精准,更高速,没有这些问题。

  • avatar 废鱼
    回答时间: 2023-08-02 17:46:57

    精准控制速度还是用汇编会好点,如果用C语言,控制好代码应该也没问题。这个时候应该是不要跑系统了,只跑裸机。间隔控制可以考虑用定时器控制到最小或者直接用代码加延时,考虑某段代码用多少机器周期都算好才能达到预想的状态。103是可以达到10M的更新频率的。

  • avatar butterflyspring
    回答时间: 2023-08-02 18:17:54

    STM32F103资源丰富,你说的这些通讯方式都有相应的外设了,不需要模拟了。 ST-LINK也不是用模拟IO方式做的呀。

  • avatar cookles13
    回答时间: 2023-08-02 18:35:18
    butterflyspring 发表于 2022-4-7 14:15
    STM32F103资源丰富,你说的这些通讯方式都有相应的外设了,不需要模拟了。 ST-LINK也不是用模拟IO方式 ...

    [md]我要做的是一个编程器,用同样的几个IO连接不同通信协议的芯片,有IIC,SPI,双线串口,单线串口,JTAG,SWD等等。 所以是需要模拟的。但是模拟的通信速率不好精确控制,只能大概的延时。

  • avatar cookles13
    回答时间: 2023-08-02 19:07:21
    废鱼 发表于 2022-4-7 10:50
    精准控制速度还是用汇编会好点,如果用C语言,控制好代码应该也没问题。这个时候应该是不要跑系统了, ...

    [md]汇编不太会,现在是用C语言写的,也只能用延时来控制大概的时间,太快了延时也不好操作,所以很麻烦。

  • avatar cookles13
    回答时间: 2023-08-02 19:30:58
    STMWoodData 发表于 2022-4-7 09:49
    IO模拟通信协议就是控制IO高低之间的延时来控制速率。设置IO高低之间一般都有个延时函数,延时函数精准 ...

    [md]芯片自带的外设肯定是最方便的,但是现在的需求是需要同样的几个IO去连接不同的芯片,通信协议IIC,SPI,串口都有。 就比较麻烦,目前用的就是延时,但是不太精确且麻烦。

  • avatar 鹿森
    回答时间: 2023-08-02 19:49:06

    学习一下!

  • avatar 这个事情很尴尬
    回答时间: 2023-08-02 20:06:40
    cookles13 发表于 2022-4-7 14:29

    [md]我要做的是一个编程器,用同样的几个IO连接不同通信协议的芯片,有IIC,SPI,双线串口,单线串口 ...

    [md]我有个大胆的想法,用通道选择器怎么样?

  • avatar 这个事情很尴尬
    回答时间: 2023-08-02 20:33:35
    这个事情很尴尬 发表于 2022-4-15 11:25
    我有个大胆的想法,用通道选择器怎么样?

    你可以用定时器或者时间片来轮询,这样就能控制你的频率,不要库函数,直接对寄存器进行操作,

会员中心 微信客服
客服
回到顶部