stm8s硬件层配置



时钟配置


系统时钟默认高速内部时钟HIS,如果想要切换主时钟,可添加以下配置:

bool_t  bSucc = eFALSE;
CLK_SWCR |= 0x02;  /* 时钟切换使能 */
CLK_SWR = 0xB4;  /* 选择目标时钟源 0xB4: HSE,0xE1: HIS, 0xD2: LSI */
while(CLK_SWCR & 0x01);  /* 等待时钟切换完成 */
if (CLK_SWCR & 0x08) /* 判断目标时钟源是否准备就绪 */
{
   
  CLK_SWCR = !0x08;
  bSucc = eTRUE;
}
return bSucc;

系统时钟分频,默认是8分频,时钟分频寄存器如图所示:
时钟分配器


HIS时钟比其他时钟多一个分配器,可查看时钟树,如图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BdkxQ9oT-1640787486170)(/imges/clktree.png)]
时钟树

一般默认8分频即可,但如果使用串口通信,则选择1分频,频率太低会丢包。

CLK_CKDIVR = 0x00;

看门狗配置


看门狗用于解决软件卡死跑飞的问题,通俗的说就是计时复位,如果一段时间程序没执行喂狗函数,就会将程序复位,重新开始运行。
我们这里使用独立看门狗,它由一个内部128kHz的LSI阻容振荡器作为时钟源驱动,因此即使是主时钟失效时它仍然照常工作。


初始化配置如下:

void HW_Init_IWDG(void)
{
   
  /* Enable IWDG */
  IWDG_KR = 0xcc;
  /* relieve PR and PLR write protection */
  IWDG_KR = 0x55;
  /* watchdog counter reload value */
  IWDG_RLR = 0xff;
  /* Set prescaler register to 256, 1.02s */
  IWDG_PR = 0x06;
  /* Reloads IWDG count
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
stm8s硬件I2C是指STM8系列单片机上集成的硬件I2C模块。I2C是一种串行通信协议,用于在芯片之间进行通信。在STM8S系列单片机中,硬件I2C模块可以通过配置相应的寄存器来实现各种功能。 在进行I2C总线初始化时,需要注意以下几个寄存器的配置。首先,I2C_CR1寄存器的bit0用于控制I2C模块的启动/禁用。在配置TRISER相关寄存器之前,需要先禁用I2C模块才能进行写操作。 其次,I2C_OARH和I2C_OARL寄存器用于设置I2C模块的从机地址。这两个寄存器需要在I2C模块禁用的状态下改变值。 另外,如果希望特定事件以中断形式通知,可以使用I2C_ITR寄存器。例如,写入一字节数据至I2C_DR寄存器后,CPU可以处理其他事件。当收到TXE触发的中断事件后,再写入下一字节数据。这样,CPU在处理整个I2C读写事件的过程中可以不需要进行循环判断等待。 总之,通过配置相应的寄存器,我们可以实现对STM8S硬件I2C模块的初始化和功能定制。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [总结stm8硬件IIC主模式的寄存器设置及调试心得](https://blog.csdn.net/chounanwang/article/details/78326983)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值