OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 317|回复: 7

STM8S IO口高频翻转的方法 最好能达到ns级别

[复制链接]

  离线 

8

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2017-4-1
在线时间
12 小时
发表于 2017-8-29 11:46:08 | 显示全部楼层 |阅读模式
正点原子公众号
STM8S 库函数使用时,IO翻转频率只能达到10Mhz 但是我现在需要精确到ns级别的延时翻转,据说汇编操作IO口能快一些,有哪位前辈能够指点一下汇编操作STM8S IO口的基本操作吗
回复

使用道具 举报

  离线 

8

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2017-4-1
在线时间
12 小时
 楼主| 发表于 2017-10-14 09:02:27 | 显示全部楼层
楼主已经找到方法,分享给大家:采用SPI DMA操作信号输出能够达到ns级别的信号输出,我主要是用在了WS2812灯珠的稳定控制。
回复 支持 反对

使用道具 举报

  离线 

23

主题

488

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1449
金钱
1449
注册时间
2015-11-14
在线时间
192 小时
发表于 2017-10-14 17:52:01 | 显示全部楼层
STM8S没有DMA吧
回复 支持 反对

使用道具 举报

  离线 

8

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2017-4-1
在线时间
12 小时
 楼主| 发表于 2017-10-20 20:36:30 | 显示全部楼层

抱歉,忘了说换主控了,换成了STM32F103了,同时用STM32验证了SPI 和PWM 都可以实现预期的功能,如果用STM8的 PWM 实现ns级电平翻转控制的话,建议用外部晶振比较准确。
回复 支持 反对

使用道具 举报

  离线 

2

主题

149

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
471
金钱
471
注册时间
2013-6-5
在线时间
65 小时
发表于 2017-10-21 22:14:28 | 显示全部楼层
STC 15W 内部RC24MHz 不用汇编,都能驱动   WS2812,STM8S 不行?仔细调试一下.
回复 支持 反对

使用道具 举报

  离线 

8

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2017-4-1
在线时间
12 小时
 楼主| 发表于 2017-10-22 17:13:49 | 显示全部楼层
本帖最后由 陈皮皮 于 2017-10-22 17:18 编辑
zhxzhx 发表于 2017-10-21 22:14
STC 15W 内部RC24MHz 不用汇编,都能驱动   WS2812,STM8S 不行?仔细调试一下.

行是行 直接用IO口电平反转 目前用示波器测出来的周期可能不大准 所以能实现基本控制 但是不是很稳定,出现了无关灯偶尔闪烁的情况,现在换主控板了,但是应该STM8s用定时器PWM也能做出来的,没有做实验验证 ,而且STM8S内部晶振16M 实测出来IO翻转最大频率在3-4M间,所以采用PWM会更准确,频率会更高一些
回复 支持 反对

使用道具 举报

  离线 

2

主题

149

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
471
金钱
471
注册时间
2013-6-5
在线时间
65 小时
发表于 2017-10-22 17:22:13 | 显示全部楼层
本帖最后由 zhxzhx 于 2017-10-22 17:24 编辑
陈皮皮 发表于 2017-10-22 17:13
行是行 直接用IO口电平反转 目前用示波器测出来的周期可能不大准 所以能实现基本控制 但是不是很稳定,出 ...

不准是因为,你在驱动的时候开中断了,关闭一切中断,它的复位时间可以很长,在这个时间里处理需要处理的数据。我用STC做过驱动128个IC的。
回复 支持 反对

使用道具 举报

  离线 

8

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2017-4-1
在线时间
12 小时
 楼主| 发表于 2017-10-22 17:36:54 | 显示全部楼层
zhxzhx 发表于 2017-10-22 17:22
不准是因为,你在驱动的时候开中断了,关闭一切中断,它的复位时间可以很长,在这个时间里处理需要处理的 ...

串口中断是要有的 现在有用上位机来进行485通信,也有可能是这个问题吧、现在换方案之后也能控制400个以上 谢谢您的解答
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2017-11-21 01:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表
/* */