历史上的今天
今天是:2025年04月13日(星期日)
2018年04月13日 | STM8S---IO复用配置(STVP方式)
2018-04-13 来源:eefocus
1 说明
STM8S的IO复用用程序代码配置起来比较麻烦,一般是操作flash来操作option byte字节,配置寄存器更加麻烦,可以使用STM 标准外设驱动库来设置。本文使用一种界面配置的方式来配置IO复用管脚,即使用STVP来配置。 因为FLASH保存的数据是掉电不丢失的,先用STVP把Option Bytes擦写好后,再用STVD仿真器烧写程序就可实现IO复用了。
程序方式配置IO复用见这里
2 配置流程
【step1】打开STVP软件
【step2】打开我们需要下载的xxx.s19文件,CTRL+F5(File->Ram Exec)
【step3】配置需要复用的引脚
IO口的复用功能主要配置在于AFR0-AFR7。这里我们配置定时器TIM2_CH3通道的PWM输出管脚复用,默认是PD2为输出,将其配置成复用为PA3输出。如上图,在AFR1中的下拉菜单中选择PA3即可。【step4】下载程序到STM8S中,Progam->All tabs。这样就实现了IO复用配置。
3 测试程序
/*
TIM2_CH3 PWM
PD2 output
*/
#include
void CLK_init(void)
{
CLK_ICKR |= 0X01; //使能内部高速时钟 HSI
CLK_CKDIVR |= 0x08; // 16M内部RC经2分频后系统时钟为8M
while(!(CLK_ICKR&0x02));//HSI准备就绪
CLK_SWR=0xe1; //HSI为主时钟源
}
void Init_Tim2(void)
{
TIM2_CCMR3 |= 0X70; //设置定时器2三通道(PD2)输出比较三模式
TIM2_CCMR3 |= 0X04; //输出比较3预装载使能
TIM2_CCER2 |= 0x03; //通道3使能,低电平有效,配置为输出
// 初始化时钟分频器为1,即计数器的时钟频率为Fmaster=8M/64=0.125MHZ
TIM2_PSCR = 0X06;
//初始化自动装载寄存器,决定PWM 方波的频率,Fpwm=0.125M/62500=2HZ
TIM2_ARRH = 62500/256;
TIM2_ARRL = 62500%256;
//初始化比较寄存器,决定PWM 方波的占空比:5000/10000 = 50%
TIM2_CCR3H = 31250/256;
TIM2_CCR3L = 31250%256;
// 启动计数;更新中断失能
TIM2_CR1 |= 0x81;
//TIM2_IER |= 0x00;
}
void Init_GPIO(void)
{
/*设置为推挽输出,PD2接了LED灯*/
PD_DDR |= 0X04; //设置PD2端口为输出模式
PD_CR1 |= 0X04; //设置PD2端口为推挽输出模式
PD_CR2 &= 0XFD;
PA_DDR |= 0X08; //设置PA3端口为输出模式
PA_CR1 |= 0X08; //设置PA3端口为推挽输出模式
PA_CR2 |= 0XF7;
}
void main(void)
{
CLK_init();
Init_GPIO();
Init_Tim2();
while (1);
}
下一篇:单片机执行程序的过程
史海拾趣
|
中心议题: 电磁干扰滤波器的构造原理及应用EMI滤波器在[url=]开关[/url]电源中的应用EMI滤波器的技术参数及测试方法 随着电子设备、计算机与家用电器的大量涌现和广泛普及,电网噪声干扰日益严重并形成一种公害。特别是瞬态噪声干扰,其上升速度 ...… 查看全部问答> |
|
以前听说前后台的操作模式,一般不在中断服务程序里写复杂的算法,即使各个中断协调的很好。说是因为进中断的时候CPU不一定将全部的寄存器保护,所以会影响程序正确性。请问STM32有这样的问题吗?期待DX们来交流!… 查看全部问答> |
|
大电阻的测量2—低功率纳米技术[1]及其它敏感器件的交流与直流测量方法的比较 相比之下,纳伏表[2]具有1000倍高的输入阻抗(也就是10GΩ),因此它可以以±1%精度来测量高于1GΩ的电阻。(消除10GΩ的负载影响只需将输入阻抗精确到±10%,以开路作为测试对象,通过直流反转测量的方法即可得到。)此外,一些电流源提 ...… 查看全部问答> |
|
求教Altium Designer 10 进行pcb 4层板技巧 刚用Altium Designer 10 进行pcb 4层板设计,以前没做过4层板的。板子比较复杂,要做一个6410核心板的母版。 论坛有做过4层板的朋友给点布线技巧吧。… 查看全部问答> |
|
使用GPIO读写eeprom没问题后 想学习I2C mode 下了TI的SLAA208c范例來调适 其中 void EEPROM_ByteWrite(unsigned int Address, unsigned char Data) { unsigned char adr_hi; unsigned char adr_lo; wh ...… 查看全部问答> |
|
上一贴点亮了显示屏,觉得不错,那就显示一下买屏时带的图片吧。 这个屏的位置得注意,我用uchar不行的。刚开始调时我还以为卖我屏的那个卖家程序有毛病了呢。 查半天才看到是自己的有病,改成uint就OK啦! 上程序: include \"mbed.h\" SPI ...… 查看全部问答> |




