历史上的今天
返回首页

历史上的今天

今天是:2025年02月15日(星期六)

2020年02月15日 | stm8 io口重映射

2020-02-15 来源:eefocus

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进行复位刷默认配置即可。 

推荐阅读

史海拾趣

Epistar Corp公司的发展小趣事

面对不断变化的市场需求和行业竞争格局Epistar始终保持创新精神不断探索新的技术方向和应用领域。公司加强与高校和研究机构的合作共同研发新技术、新产品;同时,Epistar还积极参与制定行业标准推动LED行业的健康发展。这些创新举措使Epistar在行业中始终保持领先地位引领着未来LED技术的发展方向。

ELANTEC (Renesas )公司的发展小趣事

作为一家半导体公司,技术突破和创新是ELANTEC发展的核心动力。在移动通信领域,ELANTEC不断推出具有创新性的产品和技术,如低功耗、高性能的移动通信芯片等。此外,在汽车电子、工业控制等领域,ELANTEC也取得了多项技术突破,为客户提供了更加优质的产品和服务。

芯海科技(CHIPSEA)公司的发展小趣事

随着市场需求的不断升级,芯海科技在ADC芯片的基础上,开始研发自主知识产权的8位MCU(微控制器)内核。经过数年的努力,公司成功将8位MCU内核技术应用于消费类电子产品市场,如小家电、电子玩具等。这一技术的突破进一步巩固了芯海科技在电子行业的地位,并为其后续发展提供了有力支撑。

Broadband公司的发展小趣事

近年来,随着新能源汽车市场的快速崛起,BMS(电池管理系统)技术成为关键。芯海科技凭借在“模拟信号链+MCU”领域的技术积累,成功开发出应用于BMS锂电管理的高精度模拟信号链芯片。这一技术的突破使得芯海科技能够切入新能源汽车市场,为行业的发展提供了有力支持。

意华(CZT)公司的发展小趣事

意华在发展过程中,积极拓展国内外市场,与华为、中兴、富士康等知名企业建立了长期稳定的合作伙伴关系。这些合作伙伴的加入,不仅为意华带来了更多的订单和业务机会,也促进了公司技术的交流和提升。通过与这些行业巨头的合作,意华在电子连接器领域的影响力逐渐扩大。

EPSON公司的发展小趣事

EPSON公司,原名精工爱普生,成立于1942年,最初以制造手表起家。然而,随着技术的不断进步和市场需求的变化,EPSON逐渐将业务扩展到电子领域。在创始人及其团队的带领下,EPSON凭借其卓越的技术创新能力,成功研发出了一系列具有划时代意义的电子产品,如世界上第一台微型打印机和喷墨打印机,奠定了其在电子行业的领先地位。

问答坊 | AI 解惑

接地电阻测试仪常用知识解答

1. 定义地电流:在大地或在接地极中流过的电流。接地导体:指构成地的导体,该导体将设备、电气器件、布线系统、或其他导体(通常指中性线)与接地极连接。接地极:构成地的一种导体。接地连接:用来构成地的连接,系由接地导体、接地极和围绕接地 ...…

查看全部问答>

经济型袖珍示波器V1.1版材料清单及成本估算

整理后经济型袖珍示波器V1.1版材料清单及成本估算如下: 电路原理图PCB图请参阅之前在坛子里发的“经济型袖珍示波器V1.1版电路原理图”及“经济型袖珍示波器PCB图” 至于包含已经焊好零件并检测完成的电路板的全套套件,就在上面全套散件价格的 ...…

查看全部问答>

VCC、VDD和VSS

在电子电路中,常可以看到VCC、VDD和VSS三种不同的符号,它们有什么区别呢? 一、解释 VCC:C=circuit 表示电路的意思, 即接入电路的电压; VDD:D=device 表示器件的意思, 即器件内部的工作电压; VSS:S=series 表示公共连接的意 ...…

查看全部问答>

c8051f020串口1UART1发送数据的问题。

大虾们好,以下是我的UART1中断函数 void UART1 (void) interrupt 20 using 2 {   unsigned char xdata tChar=0;         EIE2 &= 0xBF;         RI1Flag=(SCON1 & 0x01);     ...…

查看全部问答>

高效率LED驅動電源設計

本帖最后由 dontium 于 2015-1-23 13:33 编辑 高效率LED驅動電源設計 作者: 德州儀器Robert Kollman 摘要 本文提供LED特性及驅動電源優缺點的概要說明。文中將介紹數種常見的電源供應應用電路,並且詳細說明其閉迴路設計。本文亦討論LED調 ...…

查看全部问答>

有关TI F28335 定时器中断问题

我们公司以前一直用NEC的单片机,现在改为用TI 28335,刚开始用;想问一个问题,就是看资料说TIMER 0是给用户用的,那是否定时器中断,只能有一个了?若想多定时中断咋办?…

查看全部问答>

基于MSP430的MPPT控制器

本系统系统以MSP430G2231位核心控制器,核心控制器通过DC-DC降压电路从12V蓄电池取电。通过对光伏太阳能板输出电压与电流进行采样,可以实现最大功率跟踪。通过对铅酸电池的电压及充电电流进行采样,可以实现蓄电池充电的控制。   …

查看全部问答>

求IAR 8051.8.10版本的软件

邮箱:chinaymj@gmail.com   官网的软件是8.11的我没有找到8.10的版本的,8.11的试用期过了,现在网上还没的破解的。 希望好心人能给我传一个谢谢!…

查看全部问答>

一直用IO口模拟I2C,这两天做msp430用到I2C却遇到问题,特来请教各位高手

以前用IO口模拟I2C一直都没有出现问题,现在正在做的msp430板子却怎么都调试不出来。现将所遇到的情况向各位汇报:1、一开始是向24C04写地址,但是始终没有应答信号,用示波器观察,SDA信号电平在中间位置,所以判断信号为高,无应答 2、于是我怀 ...…

查看全部问答>

步进电机控制

近来跟几个朋友一起玩,聊到工业机械化这个方向,于是用手上原来有的板子,朝着一个方向的设计,设计的目标方向是可以做到多轴联动。目前受限于硬件的资源,已经做到两轴联动了。我现在的方案上用到FPGA,所以理论上如果资源足够,再扩展几个轴是没 ...…

查看全部问答>