STM8S003F3端口可以设置重映射,如pin16的PC6管脚,默认复用功能是SPI_MOSI功能,可以重映射为TIM1_CH1,也就是timer1的1通道。映射方式并不像STM32那样有个AFR寄存器来配置,而是配置Option bytes字节,如下图
也就是OPT2寄存器,注意是STM8S003F3系列的,其它的芯片配置字节是不一样的。
比如要配置PC6引脚为定时器1PWM输出比较通道TIM_CH1, 配置方法如下:
OPT2是个8位的寄存器,配置的方式比较特别,类似FLASH操作,有两种方法配置,一种是通过STVP进行配置,也就是通过ST的烧录软件界面那里配置(或者IAR软件里选项字节配置);
另一种是通过软件配置方式,说明下软件配置,共4步:
#define FLASH_EOP 0X04 //标志位
#define FLASH_DUL 0X08 //标志位
void FLASH_Init(void) //端口重映射初始化函数,在此将PC5映射为TIM2_CH1
{
unsigned char *flash_OPT2;
unsigned char *flash_NOPT2;
flash_OPT2=(unsigned char*)0x4803; //OPT2寄存器的ADDR
flash_NOPT2=(unsigned char*)0x4804; //NOPT2寄存器的ADDR,此寄存器的值是OPT2的取反值
//-------------------------------------------------------------
//第一步 初始化FLASH
while( (FLASH_IAPSR & FLASH_DUL) == 0X00 )
{
FLASH_DUKR = 0XAE;
FLASH_DUKR = 0X56;
} //一旦配置失败,此处将陷入死循环。实际使用请加入超时机制,在此省略
//-------------------------------------------------------------
//第二步 对OPT进行编程,首先需要如下操作:开启opt编程
FLASH_CR2 |= 0X80; //OPT = 1
FLASH_NCR2 &= 0X7F; //NOPT = 0
//-------------------------------------------------------------
//第三步 修改内存
1.修改参数,启用复用功能
2.OPT2 和 NOPT2要相反
//修改OPT2
*flash_OPT2 = 0X01; // 0000 0001 AFR0=1,PC5复用为TIM2_CH1其它默认清0
while( (FLASH_IAPSR & FLASH_EOP) == 0 ); //等待操作完成
//修改NOPT2
*flash_NOPT2 = ~*flash_OPT2;
while( (FLASH_IAPSR & FLASH_EOP) == 0 ); //等待操作完成
//一旦配置失败,此处将陷入死循环。实际使用请加入超时机制,在此省略
//-------------------------------------------------------------
//第四步 对OPT进行编程,最后需要如下操作:禁用opt编程
FLASH_CR2 &= ~0X80; //OPT = 1
FLASH_NCR2 |= 0X80; //NOPT = 0
}
以上是配置函数,经过验证过可用,但使用过程中建议不要每次都进行配置,因为是对选项字节的操作,如果单片机上电不稳定会造成配置操作出现中断而导致单片机锁住问题。解决方法是第一次运行时,配置完毕后将配置状态写入FLASH某个地址,下次每次启动时读取该FLASH地址状态值,如果是已经配置过,则不需要再次配置。被锁住后通过烧录工具STVP进行复位刷默认配置即可。
上一篇:STM8S外设的端口映射问题
下一篇:Stm8 串口重定向及问题解决
设计资源 培训 开发板 精华推荐
- DER-850 - 基于HiperLCS和LinkSwitch-TN的240 W LLC CV/CC电池充电器电源
- TDA7565四路功率放大器集成升压转换器的应用电路
- GPS 追踪器参考设计
- 使用 STMicroelectronics 的 R5975AD 的参考设计
- 使用 Panasonic 的 NN30321A 的参考设计
- LDK120C28R 2.8V低压降稳压器典型应用(D版)电路
- LTC1709 的典型应用 - 2 相、5 位可调、高效率、同步降压型开关稳压器
- FA-20H,nRF51x22蓝牙16MHz晶体单元振荡电路及选型指南
- 【模拟电路】78L05 三端稳压器
- C8051F800DK、8051 MCU 开发套件旨在用作 C8051F331 微控制器的开发平台
- 睿瀚医疗万斌:“脑机接口+AI+机器人”是康复赛道的未来
- 希润医疗孟铭强:手功能软体机器人,让脑卒中患者重获新生
- 柔灵科技陈涵:将小型、柔性的脑机接口睡眠设备,做到千家万户
- 微灵医疗李骁健:脑机接口技术正在开启意识与AI融合的新纪元
- USB Type-C® 和 USB Power Delivery:专为扩展功率范围和电池供电型系统而设计
- 景昱医疗耿东:脑机接口DBS治疗技术已实现国产替代
- 首都医科大学王长明:针对癫痫的数字疗法已进入使用阶段
- 非常见问题解答第223期:如何在没有软启动方程的情况下测量和确定软启动时序?
- 兆易创新GD25/55全系列车规级SPI NOR Flash荣获ISO 26262 ASIL D功能安全认证证书
- 新型IsoVu™ 隔离电流探头:为电流测量带来全新维度