ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU

[STM8] ARR寄存器设置到150以下频率就不能再上去了

[复制链接]
373|35
 楼主 | 2019-1-16 17:09 | 显示全部楼层 |阅读模式

逻辑很简单,使用通用定时器2,设置每10us产生一次中断,然后在定时器中断里面设置IO口翻转,用示波器观察IO口的翻转频率
硬件上STM8S使用内部16MHZ使用,没有使用外部晶振。定时器2由f(master)二分频,即为2MHZ/2=1MHZ,即每1us计数一次。
设置ARR寄存器值为10,则应该是每10us产生一次中断,中断里面翻转IO,则IO的频率应该是1s/(10us*2)=50KHZ
然后实际测试发现ARR寄存器设置到150以下频率就不能再上去了
| 2019-1-16 17:12 | 显示全部楼层
然后是多少啊
 楼主 | 2019-1-16 17:16 | 显示全部楼层

1s/(150us*2)=3.3KHZ
ARR设置到150以上的所有测试波形都与理论计算符合,150以下所有的测试波形都为3.3KHZ!!!
请问是怎么回事呢??
| 2019-1-16 17:20 | 显示全部楼层
IO口的设置模式是?
 楼主 | 2019-1-16 17:24 | 显示全部楼层

GPIO_MODE_OUT_PP_LOW_FAST 换了几种IO模块波形一样
| 2019-1-16 17:27 | 显示全部楼层
定时器的配置函数呢
 楼主 | 2019-1-16 17:31 | 显示全部楼层


/*通用定时器2配置函数*/
void TIM2_Config(void)
{
  asm("sim");         //sim是禁止中断
  
  TIM2_PrescalerConfig(TIM2_PRESCALER_2,TIM2_PSCRELOADMODE_IMMEDIATE);              //f(master)/2=2MHZ/2=1MHZ=1us/count  
  TIM2_SetCounter(0);
  TIM2_SetAutoreload(200);                                                                              
  TIM2_ITConfig(TIM2_IT_UPDATE,ENABLE);         
  TIM2_Cmd(ENABLE);
  asm("rim");        //rim使能中断
}
 楼主 | 2019-1-16 17:33 | 显示全部楼层
然后没有用到其他外设和中断,只用了定时器2和一个IO口
| 2019-1-16 17:37 | 显示全部楼层
换了其他IO口也是一样的现象?
 楼主 | 2019-1-16 17:40 | 显示全部楼层
一样的现象
 楼主 | 2019-1-16 17:43 | 显示全部楼层


更改定时器2的分频系数也一样,只要频率是低于3.3KHZ的全部没问题,高于3.3KHZ的全部只能到3.3KHZ
| 2019-1-16 17:47 | 显示全部楼层
为使系统快速启动,复位后时钟控制器自动使用HSI的8分频(HSI/8)做为主时钟。
| 2019-1-16 17:51 | 显示全部楼层
其原因为HSI的稳定时间短,而8分频可保证系统在较差的VDD条件下安全启动。
| 2019-1-16 17:52 | 显示全部楼层
不用定时器
直接主函数里
while(1)
{
io_conv;
}
看看是多少频率
| 2019-1-16 17:55 | 显示全部楼层
要16MHZ,初始要 CLK_CKDIVR =0 ;
| 2019-1-16 17:59 | 显示全部楼层
中断响应要时间,主时钟不能太慢。
| 2019-1-16 18:00 | 显示全部楼层
应该是时钟或定时器的设置问题,曾经输出过38K的方波。
| 2019-1-16 18:01 | 显示全部楼层
你在主函数里面用另外一个I/O取反。ARR寄存器设置到150以下的时候,如果主函数里面的I/O频率为0,那可能原因就是I/O取反还没结束呢,10us到了……
 楼主 | 2019-1-16 18:04 | 显示全部楼层

我把f(master)的频率设置为不分频,即为16MHZ,果然速度上去了,然而最高也只能到46KHZ左右
| 2019-1-16 18:07 | 显示全部楼层
通过直接操作寄存器的方式在main函数中直接取反IO,其他啥也不干呢
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

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