stm8s103 外部8m晶振外晶振引脚不用怎么接

查看: 17828|回复: 10
刚刚在网上看到一份 STM8-IO口的详细讲解,给新手们分享一下!
主题帖子精华
初级会员, 积分 54, 距离下一级还需 146 积分
在线时间0 小时
1、上拉输入:上拉就是把电位拉高,比如拉到Vcc。上拉就是将不确定的信号通过一个电阻嵌位在高电平!电阻同时起限流作用!弱强只是上拉电阻的阻值不同,没有什么严格区分。
2、下拉输入:就是把电压拉低,拉到GND。与上拉原理相似。
3、浮空输入:浮空(floating)就是逻辑器件的输入引脚即不接高电平,也不接低电平。由于逻辑器件的内部结构,当它输入引脚悬空时,相当于该引脚接了高电平。一般实际运用时,引脚不建议悬空,易受干扰。 通俗讲就是让管脚什么都不接,浮空着。
4、模拟输入:模拟输入是指传统方式的输入.数字输入是输入PCM数字信号,即0,1的二进制数字信号,通过数模转换,转换成模拟信号,经前级放大进入功率放大器,功率放大器还是模拟的。
5、推挽输出:可以输出高,低电平,连接数字器件; 推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源低定。
6、开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).
7、复用开漏输出、复用推挽输出:可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)。
在STM32中选用IO模式,下面是参考网上的总结一下。
(1) 浮空输入_IN_FLOATING ——浮空输入,可以做KEY识别,RX
(2)带上拉输入_IPU——IO内部上拉电阻输入
(3)带下拉输入_IPD—— IO内部下拉电阻输入
(4) 模拟输入_AIN ——应用ADC模拟输入,或者低功耗下省电
(5)开漏输出_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能
(6)推挽输出_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的
(7)复用功能的推挽输出_AF_PP ——片内外设功能(I2C的SCL,SDA)(8)复用功能的开漏输出_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)
谦虚使人退步,短暂的激情是不值钱的,持久的激情才是赚钱的!持续改善LED电子技术研发!
主题帖子精华
金钱116501
在线时间883 小时
谢谢分享....
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
金牌会员, 积分 1415, 距离下一级还需 1585 积分
在线时间166 小时
谢谢分享....
主题帖子精华
在线时间30 小时
谢谢分享。。。
站在巨人的肩膀上不断的前进。。。
主题帖子精华
新手上路, 积分 44, 距离下一级还需 6 积分
在线时间0 小时
谢谢分享。。。
主题帖子精华
新手上路, 积分 21, 距离下一级还需 29 积分
在线时间0 小时
谢谢分享。。。
主题帖子精华
高级会员, 积分 738, 距离下一级还需 262 积分
在线时间36 小时
谢谢分享。。。
主题帖子精华
新手上路, 积分 24, 距离下一级还需 26 积分
在线时间0 小时
基础知识,谢谢分享
主题帖子精华
新手上路, 积分 29, 距离下一级还需 21 积分
在线时间2 小时
感谢分享。。
主题帖子精华
中级会员, 积分 204, 距离下一级还需 296 积分
在线时间32 小时
试验之后发现浮空输入用作ADC输入也能工作。。。。
主题帖子精华
初级会员, 积分 75, 距离下一级还需 125 积分
在线时间4 小时
STM8没有模拟输入这个模式把?
Powered by21ic官方微信-->
后使用快捷导航没有帐号?
ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU
请完成以下验证码
查看: 1428|回复: 3
请教:STM8S单片机用CAN必须使用外部晶振吗
&&已结帖(20)
主题帖子积分
中级工程师, 积分 3141, 距离下一级还需 1859 积分
中级工程师, 积分 3141, 距离下一级还需 1859 积分
主题帖子积分
专家等级:结帖率:93%打赏:8.00受赏:0.00
主题帖子积分
中级工程师, 积分 3141, 距离下一级还需 1859 积分
中级工程师, 积分 3141, 距离下一级还需 1859 积分
看规格书中时钟拓扑图上,CANDIV时钟分频是连接到fHSE上的,难道不能用内部HSI 16M的RC时钟?
满意回复+10
拓扑图上HSI也可以;
不过内部RC时钟不保证精度,对CAN通信会有影响
画块板子测试下就知道了;
晶振位置可以留着,测试可以再去掉吧;
主题帖子积分
中级工程师, 积分 3337, 距离下一级还需 1663 积分
中级工程师, 积分 3337, 距离下一级还需 1663 积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:1.00
主题帖子积分
中级工程师, 积分 3337, 距离下一级还需 1663 积分
中级工程师, 积分 3337, 距离下一级还需 1663 积分
拓扑图上HSI也可以;
不过内部RC时钟不保证精度,对CAN通信会有影响
主题帖子积分
中级工程师, 积分 3141, 距离下一级还需 1859 积分
中级工程师, 积分 3141, 距离下一级还需 1859 积分
主题帖子积分
专家等级:结帖率:93%打赏:8.00受赏:0.00
主题帖子积分
中级工程师, 积分 3141, 距离下一级还需 1859 积分
中级工程师, 积分 3141, 距离下一级还需 1859 积分
谢谢,HSI手册上说过出厂已经校准,对于1M速率的CAN是否够用?如果不建议,需要外接16.0M,势必增加干扰
汽车电子,车载导航
主题帖子积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:43.00
主题帖子积分
画块板子测试下就知道了;
晶振位置可以留着,测试可以再去掉吧;
欢迎进入21IC ST、机器人等版块
电子工程师群(深圳):
电子工程师群1:1897584;
物联网群:;智能机器人群:; AGV及立体仓库群:;
精华达人奖章
等级类勋章
技术新星奖章
人才类勋章
涓涓之细流
发帖类勋章
时间类勋章
欢快之小溪
发帖类勋章
时间类勋章
技术导师奖章
人才类勋章
技术领袖奖章
人才类勋章
时间类勋章
坚毅之洋流
发帖类勋章
荣誉元老奖章
等级类勋章21ic官方微信-->
后使用快捷导航没有帐号?
ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU
请完成以下验证码
查看: 566|回复: 8
关于stm8s用外接24m晶振问题
&&未结帖(20)
主题帖子积分
高级技术员, 积分 630, 距离下一级还需 370 积分
高级技术员, 积分 630, 距离下一级还需 370 积分
主题帖子积分
专家等级:结帖率:23%
主题帖子积分
高级技术员, 积分 630, 距离下一级还需 370 积分
高级技术员, 积分 630, 距离下一级还需 370 积分
stm8s用外接24m晶振时,串口无**常使用。使用内部的16M频率是正常的。这个是什么原因?函数用的都是库函数
void Init_UART()
&&UART1_DeInit();
&&UART1_Init((u32)115200, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO,& && &UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TXRX_ENABLE);
&&UART1_Cmd(ENABLE);
&&UART1_ITConfig(UART1_IT_RXNE_OR, ENABLE);
&&enableInterrupts();
主题帖子积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:43.00
主题帖子积分
检查主时钟部分程序看看;
应该是时钟不对,导致波特率误差大,通讯不上
欢迎进入21IC ST、机器人等版块
电子工程师群(深圳):
电子工程师群1:1897584;
物联网群:;智能机器人群:; AGV及立体仓库群:;
主题帖子积分
高级工程师, 积分 5749, 距离下一级还需 2251 积分
高级工程师, 积分 5749, 距离下一级还需 2251 积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:0.10
主题帖子积分
高级工程师, 积分 5749, 距离下一级还需 2251 积分
高级工程师, 积分 5749, 距离下一级还需 2251 积分
波特率的配置要重设吧
主题帖子积分
助理工程师, 积分 1531, 距离下一级还需 469 积分
助理工程师, 积分 1531, 距离下一级还需 469 积分
主题帖子积分
专家等级:结帖率:0%打赏:0.00受赏:2.00
主题帖子积分
助理工程师, 积分 1531, 距离下一级还需 469 积分
助理工程师, 积分 1531, 距离下一级还需 469 积分
超过16MHz了,有个等待状态项要配置下。
For clock frequencies above 16 MHz, Flash /data EEPROM access must be configured for 1
wait state. This is enabled by the device option byte. Refer to the datasheet option byte
主题帖子积分
中级技术员, 积分 139, 距离下一级还需 161 积分
中级技术员, 积分 139, 距离下一级还需 161 积分
主题帖子积分
专家等级:结帖率:0%打赏:6.66受赏:5.00
主题帖子积分
中级技术员, 积分 139, 距离下一级还需 161 积分
中级技术员, 积分 139, 距离下一级还需 161 积分
更改了外围晶振的话需要重新设置波特率的!
主题帖子积分
高级工程师, 积分 5240, 距离下一级还需 2760 积分
高级工程师, 积分 5240, 距离下一级还需 2760 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
高级工程师, 积分 5240, 距离下一级还需 2760 积分
高级工程师, 积分 5240, 距离下一级还需 2760 积分
坐等楼主研究出来方法。
主题帖子积分
资深工程师, 积分 16678, 距离下一级还需 3322 积分
资深工程师, 积分 16678, 距离下一级还需 3322 积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:16.00
主题帖子积分
资深工程师, 积分 16678, 距离下一级还需 3322 积分
资深工程师, 积分 16678, 距离下一级还需 3322 积分
波特率问题嘛
主题帖子积分
资深工程师, 积分 16678, 距离下一级还需 3322 积分
资深工程师, 积分 16678, 距离下一级还需 3322 积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:16.00
主题帖子积分
资深工程师, 积分 16678, 距离下一级还需 3322 积分
资深工程师, 积分 16678, 距离下一级还需 3322 积分
不是正常12M得嘛
主题帖子积分
助理工程师, 积分 1119, 距离下一级还需 881 积分
助理工程师, 积分 1119, 距离下一级还需 881 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
助理工程师, 积分 1119, 距离下一级还需 881 积分
助理工程师, 积分 1119, 距离下一级还需 881 积分
stm8s1xx系列最高频率到16M,STM8S2XX系列最高频率可到24M,但必须要加入flash等待周期,说白了就是FLASH的速度跟不上。
技术领袖奖章
人才类勋章
时间类勋章
坚毅之洋流
发帖类勋章
荣誉元老奖章
等级类勋章
技术新星奖章
人才类勋章
奔腾之江水
发帖类勋章
技术高手奖章
人才类勋章
精英会员奖章
等级类勋章
时间类勋章
技术奇才奖章
人才类勋章
时间类勋章STM8 通用输入输出口(GPIO) STM8应用笔记
STM8 通用输入输出口(GPIO)
以下资料由微雪电子整理并发布,未经许可不得转载,否则追究相应责任!
STM8的通用输入/输出口用于芯片和外部进行数据传输。一个IO端口可以包括多达8个引脚,每个引脚可以被独立编程作为数字输入或者数字输出口。另外部分口还可能会有如模拟输入,外部中断,片上外设的输入/输出等复用功能。但是在同一时刻仅有一个复用功能可以映射到引脚上。
复用功能的映射是通过选项字节控制的。请参考数据手册关于选项字节的描述。
每个端口都分配有一个输出数据寄存器,一个输入引脚寄存器,一个数据方向寄存器,一个选择寄存器,和一个配置寄存器。一个I/O口工作在输入还是输出是取决于该口的数据方向寄存器的状态。
GPIO主要功能
可选择的输入模式:浮动输入和带上拉输入
可选择的输出模式:推挽式输出和开漏输出
数据输入和输出采用独立的寄存器
外部中断可以单独使能和关闭
输出摆率控制用以减少EMC噪声
片上外设的I/O功能复用
当作为模拟输入时可以关闭输入施密特触发器来降低功耗
在数据输出锁存时支持读-修改-写
输入兼容5V电压
I/O口工作电压范围为1.6 V到VDDIOmax
I/O的配置和使用
每一个端口都有一个输出数据寄存器(ODR),一个引脚输入寄存器(IDR)和一个数据方向寄存器(DDR)总是同相关的。
控制寄存器1(CR1)和控制寄存器2(CR2)用于对输入/输出进行配置。任何一个I/O引脚可以通过对DDR,ODR,CR1和CR2寄存器的相应位进行编程来配置。
寄存器中的位n对应于口的引脚n。各种不同配置总结如表18。
(表18:IO口配置表)
注意:连接VDD的二极管在实际开漏极状态引脚是无效的,在引脚和VOL之间的局部保护设备重要性是有效的。
   没有使用的I/O引脚必须连接到一个固定的电平值。或者是上拉或者是下拉。
将DDRx位清零就选择了输入模式。在该模式下读IDR寄存器的位将返回对应I/O引脚上的电平值。
如表18所示,理论上STM8可以通过软件配置得到四种不同的输入模式:悬浮不带中断输入,悬浮带中断输入,上拉不带中断输入和上拉带中断输入。但是在实际情况下不是所有的口都具有外部中断能力和上拉,用户应参考数据手册中关于每个引脚的实际硬件性能描述来了解更多细节。
将DDRx位置1就选择了输出模式。在该模式下向ODR寄存器的位写入数据将会通过锁存器输出对应数字值到I/O口。读IDR的位将会返回相应的I/O引脚电平值。通过软件配置CR1,CR2寄存器可以得到不同的输出模式:上拉输出,开漏输出。
低功耗模式
表19低功耗模式对STM8S的GPIO口的影响
等待(Wait)
对I/O口无影响。外部中断可以使MCU退出等待(Wait)模式
停机(Halt)
对I/O口无影响。外部中断可以使MCU从停机(Halt)模式唤醒
注意:如果PA1/PA2被用来连接外部谐振器,为了确保在HALT模式下有最低功耗必须配置PA1和PA2为带上拉输入。
STM8 通用输入输出口(GPIO)后使用快捷导航没有帐号?
查看: 9177|回复: 3
注册时间最后登录阅读权限60积分6050精华1帖子
状元, 积分 6050, 距离下一级还需 3950 积分
TA的每日心情奋斗 09:28签到天数: 222 天连续签到: 1 天[LV.7]常住居民III
如果使用内部RC振荡器而不使用外部晶振,请按照下面方法处理:
1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。
2)对于少于100脚的产品,有2种接法:
&&2.1)OSC_IN和OSC_OUT分别通过10K电阻接地。此方法可提高EMC性能。
&&2.2)分别重映射OSC_IN和OSC_OUT至PD0和PD1,再配置PD0和PD1为推挽输出并输出'0'。此方法可以减小功耗并(相对上面2.1)节省2个外部电阻。
--------------------------------------------------------------------------------
以下是在ST英文网站FAQ上抄下的详细解释:
& & 1)&&In 100 and 144 packages,&&the OSC_IN /OSC_Out pins are a dedicated pins for HSE and mapped respectively on pins 12, 13 and pins 23, 24 for LQFP packages. Although, for BGA 100 and BGA 144 packages, they are mapped respectively on pins C1,D1 and pins D1,E1. In this case the recommended configuration is:
OSC_In pin must be connected to ground as it is always an input pin
OSC_Out must be left not connected as it is always an output pin.
& & 2)&&In LQFP48 and LQFP64 packages,&&the OSC_IN/OSC_Out pins are mapped on pins 5,6 whereas in the VFQFPN36 package they are mapped on pins 2,3. However the PD0 and PD1 functionality can be remapped by software on these pins.&&There are two possible configurations:
Hardware configuration: Connect the OSC_IN/OSC_Out pins to ground through a 10K pull down resistors.
Software configuration: First, the OSC_IN/OSC_Out pins are left not connected on PCB layout. Then, remap the PD0 and PD1 functionality by software on these pins and configure the PD0/PD1 to Output push-pull forced to 0 logic level(Data Register = 0). This will maintain those I/Os to a fixed level minimizing Noise and external stress on these pins.
& & The software configuration is recommended to reduce the power consumption and saves cost by avoiding the use of external pull down resistors as the I/O is already connected to the ground internally. Whereas the hardware configuration is recommended to increase the EMC performance.
STM32中如何使用PC14和PC15
& & 在STM32的数据手册的管脚分配图中可以看到:PC14与OSC32_IN公用一个引脚,PC15与OSC32_OUT公用一个引脚,它们的使用方法如下:
当LSE(低速外部时钟信号)开启时,这两个公用管脚的功能是OSC32_IN和OSC32_OUT。
当LSE(低速外部时钟信号)关闭时这两个公用管脚的功能是PC14和PC15。
& & 备用区域控制寄存器(RCC_BDCR)的LSEON用于控制LSE的开启或关闭。关于这个寄存器的用法请参看《STM3210x技术参考手册》。
--------------------------------------------------------------------------------
作为GPIO输出的配置过程:
(1).使能GPIOC时钟
&&RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
(2).配置GPIOC
&&GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14 | GPIO_Pin_15;
&&GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
&&GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
&&GPIO_Init(GPIOC, &GPIO_InitStructure);
(3).然后写高写低
&&GPIO_WriteBit(GPIOC, GPIO_Pin_14, Bit_SET);
&&GPIO_WriteBit(GPIOC, GPIO_Pin_15, Bit_SET);
&&GPIO_WriteBit(GPIOC, GPIO_Pin_14, Bit_RESET);
&&GPIO_WriteBit(GPIOC, GPIO_Pin_15, Bit_RESET);
& & 以上代码跑在两个板子上,一个是backup区域里的RCC_DBCR的LSEON为0,即LSE关闭,以上(3)的操作从示波器上看到了电平相应变换;另外一个板子,backup区域里的RCC_DBCR的LSEON为1,即LSE打开,则以上(3)的操作从示波器上看到无效。
--------------------------------------------------------------------------------
作为GPIO输入的配置过程:
&&只是把以上的(2)稍微改一下,(3)就不用了
&&GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14 | GPIO_Pin_15;
&&GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
&&GPIO_Init(GPIOC, &GPIO_InitStructure);
&&外部连接为:在PC14引脚焊了一个电阻,电阻另一端通过跳线在上拉到3.3V和下拉到地的两种情况下,读出GPIOC_IDR.14分别为&1&和&0&。
--------------------------------------------------------------------------------
作为外部中断输入的配置过程:
1.时钟使能
// + osc32_in/out --& pc14/15
&&RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC |RCC_APB2Periph_AFIO, ENABLE);
&&注意要使能AFIO的时钟哦
2.中断配置
&&// + for EXTI on PC.14 at falling edge
&&NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
&&NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQC
&&NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
&&NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
&&NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
&&NVIC_Init(&NVIC_InitStructure);
3. GPIO配置同上
4. EXTI配置
// + for PC14 EXTI @ falling edge
&&GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource14);
&&EXTI_InitStructure.EXTI_Line = EXTI_Line14;
&&EXTI_InitStructure.EXTI_Mode = EXTI_Mode_I
&&EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_F
&&EXTI_InitStructure.EXTI_LineCmd = ENABLE;
&&EXTI_Init(&EXTI_InitStructure);
5. 中断处理ISR
void EXTI15_10_IRQHandler(void)
&&if(EXTI_GetITStatus(EXTI_Line14) != RESET)
& & EXTI_ClearITPendingBit(EXTI_Line14);
& & 在中断处设置断点,只要按下key,就进入中断,跑出中断,再按key,再次进入,屡试不爽,试验完成~~~
元器件采购请上
注册时间最后登录阅读权限70积分16329精华0帖子
翰林, 积分 16329, 距离下一级还需 13671 积分
TA的每日心情开心 05:09签到天数: 113 天连续签到: 1 天[LV.6]常住居民II
学习了。谢谢楼主分享。
注册时间最后登录阅读权限100积分1243精华0帖子
TA的每日心情开心 14:45签到天数: 181 天连续签到: 1 天[LV.7]常住居民III
在实际的使用中发现STM32的RC振荡并不是很准,100个中可能有一个用RC振荡串口9600的波特率都不能正确的使用。所以建议使用了异步通信接口的产品尽量使用外部晶振,因为你的样品也许可以正常使用,但是一旦量产就会出各种各样的问题。
SmartStudio主要致力于智能硬件与物联网技术,让生活更智能是我们的梦想。make the life smart
注册时间最后登录阅读权限60积分6050精华1帖子
状元, 积分 6050, 距离下一级还需 3950 积分
TA的每日心情奋斗 09:28签到天数: 222 天连续签到: 1 天[LV.7]常住居民III
小鹏 发表于
在实际的使用中发现STM32的RC振荡并不是很准,100个中可能有一个用RC振荡串口9600的波特率都不能正确的使用 ...
多谢版主指点!
元器件采购请上
爱板会员勋章
注册成为爱板网会员
站长推荐 /2
Powered by Discuz!}

我要回帖

更多关于 stm8s103 外部8m晶振 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信