stm32开发软件版那个屏怎么不亮了

后使用快捷导航没有帐号?
查看: 1569|回复: 5
注册时间最后登录阅读权限50积分2320精华0帖子
进士, 积分 2320, 距离下一级还需 680 积分
TA的每日心情开心 09:44签到天数: 26 天[LV.4]偶尔看看III
很多朋友刚拿到开发板的时候,经常会问开发板的JLINK为什么连接不上,这里上传光盘的几个资料.& &&&连接不上,首先请看:ALIENTEK MiniSTM32开发板入门教程.pdf. 如果看了入门教程,还是不行.那么再请看:JLINK问题汇总.pdf 最后,如果还是不行.就用绝招:把B0接V3.3,再试.如果这样都连接不上,要嘛开发板硬件有问题,要嘛JLINK有问题(驱动问题必须先排除哦).
先来上一段ALIENTEK MiniSTM32开发板入门教程(要了解更多,文章末端有PDF哟)
1、开发板检测在收到快递之后,您第一步需要做的就是检测开发板是否完好。虽然我们的包装已经很仔细了,测试也很小心了,但是快递公司的人,并不是个个都那么有素质,难免会造成损坏。所以,在拿到开发板之后,烦请大家先检测开发板是否有损坏。先看看我们发货是否完整,购买218 套餐的朋友,收货应该有6 件:(1) ALIENTEK MiniSTM32 开发板底板一块。(2) ALIENTEK 2.8 寸TFTLCD 模块一个。(3) 5P Mini USB 数据线一条。(4) ALIENTEK 资料光盘一张(莱德光盘)。(5) ALIENTEK 遥控器一个。(6) 杜邦线2 跟。购买了288 套餐的朋友,在218 的基础上,应该再多3 件:(1) B 型USB 数据线一条。(2) JLINK V8 一个。(3) JLINK V8 光盘一张。购买了138 套餐的朋友,在218 的基础上,去掉2.8 寸TFTLCD 模块即是收货清单。另外对购买了其他配件的朋友,请针对配件做逐项检查。看发货是否齐全。在确认接收到的开发板及配件外观没问题(主要看看LCD 的触摸屏,是否有裂痕)之后,请您开始检测开发板的硬件,是否存在问题(主要是LCD 的问题,在运输过程中损坏的最多)。在出厂的时候,我们默认都是刷了UCGUI 的(购买了SD 卡的客户,则给您刷的是综合测试实验【实验28】),所以在收到板子之后,请您别急着刷代码。先把LCD 接到底板上(JLINK 先不要接上去),通上电源。看看LCD 是否显示UCGUI 。如果能显示,则证明您收到的板子,基本没问题了。可以开始下面的学习了。如果不是,则可能会是如下几种情况:(a) LCD 白屏。这种情况比较多见,首先,请检查开发板上的B0 和B1 是否都接地了,如图1.1所示:
14:51 上传
图1.1 B0,B1 均接GND
如果两个都已经接地了,请按复位键试试。如果按复位键还是不行,则请按旁边的电源开关,先断电一下,然后再次按该开关,打开电源。如果此时还不行,就比较麻烦了。但也还是有办法,协助查出问题的根源。此时我们先接上USB 线到图1.1 中的Mini USB头(此USB 是用来接USB 串口的,另外一个USB 是用来USB 通信的!别搞错哦)上。然后在电脑上安装USB 串口驱动软件(USB 串口软件安装详见&&STM32 不完全手册&&的2.5 节,不过这里不是用来下载代码哦,只要安装驱动即可),再安装串口调试助手,如图1.2 所示:
14:52 上传
图1.2 串口调试助手
安装完毕后,我们打开串口调试助手,并打开USB 串口所在的那个串口。如下图1.3所示:
14:52 上传
图1.3 打开USB 串口 此时,我们按开发板的复位键(B0,B1 均接GND),然后松开,可以看到串口调试助手打印出了一个数据(每按复位均会打印一次),如图1.4 所示:
14:52 上传
图1.4 串口打印的LCD ID此数据9325 即是LCD 的ID,也就是我们LCD 驱动IC 的型号(注意,我们开发板选用的LCD 驱动型号可能有如下型号:4531、9320、5408、9320 等,以实际型号为准)。如果这个数据和LCD 的驱动IC 型号对不上(在上述几个型号之外,且屏幕无显示者),说明LCD和单片机连接的数据线有问题(短路或者断路),此时问题就比较大了,需要返回给我们修理。或者联系我们解决。(a) 开发板电源灯不亮。此问题出现的很少,有几种情况:(b) 电源开关没有打开。此种情况,只需要按一下电源开关即可解决。(c) 电源线没接好。请检查USB 连接是否正常。比如你的电脑此USB 口是否能输出电压等。(d) 开发板有问题。这种情况,有可能是开发板发生了短路,请马上拔掉USB 电源,并联系我们解决。在做实验28的时候,当发现ALIENTEK MiniSTM32开发板的触摸屏不准,不好使的情况,可以采用重新校准.该如何进入校准模式呢?&&这个在&&不完全手册&&的3.28.1节有说.即:& &&&如果在启动的时候(按下复位键的同时,按键检测发生在RTC检测之前!),按下了KEY0,则系统会强制设置当前时间为编译时间,如果按下了KEY1,则会强制进行屏幕校准,如果按下WK_UP则会强制进行字库更新。总结操作就是:同时按下RESET+KEY1,然后松开RESET,然后松开KEY1即可进入校准界面
2.......(更多请看PDF)
(413.13 KB, 下载次数: 29)
14:56 上传
点击文件名下载附件
(150.13 KB, 下载次数: 14)
14:56 上传
点击文件名下载附件
注册时间最后登录阅读权限70积分21912精华2帖子
翰林, 积分 21912, 距离下一级还需 8088 积分
TA的每日心情奋斗 09:10签到天数: 361 天[LV.8]以坛为家I
好厉害的说。我不得不佩服。
爱板&&爱板&&爱板& &&&
注册时间最后登录阅读权限100积分3211精华2帖子
TA的每日心情慵懒 10:02签到天数: 122 天[LV.7]常住居民III
资料好丰富啊!!!
专业为学电子的大学生开设的网店祥云科技正式上线!&&
注册时间最后登录阅读权限60积分9746精华1帖子
状元, 积分 9746, 距离下一级还需 254 积分
TA的每日心情怒昨天&13:19签到天数: 1037 天[LV.10]以坛为家III
学习下JLINK问题汇总!!!
注册时间最后登录阅读权限50积分1156精华0帖子
进士, 积分 1156, 距离下一级还需 1844 积分
TA的每日心情奋斗 09:00签到天数: 205 天[LV.7]常住居民III
原子的确实很牛。。
没人在乎过程,只在乎结果。
注册时间最后登录阅读权限10积分12精华0帖子
白丁, 积分 12, 距离下一级还需 38 积分
TA的每日心情开心 00:29签到天数: 1 天[LV.1]初来乍到
资料不错,顶
分区版主职务勋章
爱板网分区版主
爱板会员勋章
注册成为爱板网会员
活跃会员勋章
经常参与各类话题的讨论,发帖内容较有主见
在线达人勋章
在线时间长,且活跃度高
在线之王勋章
在线时间非常长,且活跃度高
灌水专家勋章
长期在论坛灌水,活跃论坛气氛
发帖机器勋章
在论坛积极发帖,数量巨大,质量较高
论坛骨干勋章
在论坛积极发帖,并积极与坛友交流互动,成为论坛骨干力量
站长推荐 /4
本周日()上午,摩尔吧孵化器邀请资深研发工程师从ASIC前端设计到验证工具与流程,来和你讲讲数字芯片设计这些事儿。活动时间: 9:30-11:30
具体详情查看
现在e络盟与TE Connectivity联手共同举办在线调查问卷活动,只需回答两个简单问题,便有机会获得小米充电宝一只。立刻参与!
物联网的发展使得各类无线技术受到越来越多的关注,Atmel凭借着自身在无线技术领域的积累以及结合自身低功耗技术推出了多款优异的无线评估套件,如基于WiFi技术的Atmel WINC1500-XSTK 立即参与!
你可以直接使用嵌入了花生壳(内网版)的树莓派实现web网站,SFTP远程传输文件等应用。这无疑给众树莓派用户,带来了更多玩法。 立刻抢楼!
Powered by Discuz!
活动传送门×【连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第三十一章 触摸屏实验 - STM32 - 意法半导体STM32/STM8技术社区
后使用快捷导航没有帐号?
查看: 2304|回复: 0
【连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第三十一章 触摸屏实验
主题帖子积分
新手上路, 积分 22, 距离下一级还需 28 积分
新手上路, 积分 22, 距离下一级还需 28 积分
&div style=&padding-bottom: 5 line-height: 1.5; background-color: rgb(255,255,255); margin: 0 padding-left: 5 padding-right: 5 color: rgb(0,0,0); font-size: 12 padding-top: 5px&&触摸屏实验
本章,我们将介绍如何使用STM32来驱动触摸屏,ALIENTEK战舰STM32开发板本身并没有触摸屏控制器,但是它支持触摸屏,可以通过外接带触摸屏的LCD模块(比如ALIENTEK TFTLCD模块),来实现触摸屏控制。在本章中,我们将向大家介绍STM32控制ALIENTKE TFTLCD模块,使用软件模拟SPI来实现对TFTLCD模块的触摸屏控制,最终实现一个手写板的功能。本章分为如下几个部分:
31.1 触摸屏简介
31.2 硬件设计
31.3 软件设计
31.4 下载验证
触摸屏简介
我们一般液晶所用的触摸屏,最多的就是电阻式触摸屏了(多点触摸属于电容式触摸屏,比如几乎所有智能机都支持多点触摸,它们所用的屏就是电容式的触摸屏),ALIENTEK TFTLCD自带的触摸屏属于电阻式触摸屏,下面简单介绍下电阻式触摸屏的原理。
电阻式触摸屏利用压力感应进行控制。电阻触摸屏的主要部分是一块与显示器表面非常配合的电阻薄膜屏,这是一种多层的复合薄膜,它以一层玻璃或硬塑料平板作为基层,表面涂有一层透明氧化金属(透明的导电电阻)导电层,上面再盖有一层外表面硬化处理、光滑防擦的塑料层、它的内表面也涂有一层涂层、在他们之间有许多细小的(小于1/1000英寸)的透明隔离点把两层导电层隔开绝缘。 当手指触摸屏幕时,两层导电层在触摸点位置就有了接触,电阻发生变化,在X和Y两个方向上产生信号,然后送触摸屏控制器。控制器侦测到这一接触并计算出(X,Y)的位置,再根据获得的位置模拟鼠标的方式运作。这就是电阻技术触摸屏的最基本的原理。
电阻屏的特点有:
1)是一种对外界完全隔离的工作环境,不怕灰尘、水汽和油污。
2)可以用任何物体来触摸,可以用来写字画画,这是它们比较大的优势。
3)电阻触摸屏的精度只取决于A/D转换的精度,因此都能轻松达到。
从以上介绍可知,触摸屏都需要一个AD转换器, 一般来说是需要一个控制器的。ALIENTEK TFTLCD模块选择的是四线电阻式触摸屏,这种触摸屏的控制芯片有很多,包括:ADS7843、ADS7846、TSC2046、XPT2046和AK4182等。这几款芯片的驱动基本上是一样的,也就是你只要写出了ADS7843的驱动,这个驱动对其他几个芯片也是有效的。而且封装也有一样的,完全PIN TO PIN兼容。所以在替换起来,很方便。
ALIENTEK TFTLCD模块自带的触摸屏控制芯片为XPT2046。XPT2046是一款4导线制触摸屏控制器,内含12位分辨率125KHz转换速率逐步逼近型A/D转换器。XPT2046支持从1.5V到5.25V的低电压I/O接口。XPT2046能通过执行两次A/D转换查出被按的屏幕位置, 除此之外,还可以测量加在触摸屏上的压力。内部自带2.5V参考电压可以作为辅助输入、温度测量和电池监测模式之用,电池监测的电压范围可以从0V到6V。XPT2046片内集成有一个温度传感器。 在2.7V的典型工作状态下,关闭参考电压,功耗可小于0.75mW。XPT2046采用微小的封装形式:TSSOP-16,QFN-16(0.75mm厚度)和VFBGA-48。工作温度范围为-40℃~+85℃。
该芯片完全是兼容ADS7843和ADS7846的,关于这个芯片的详细使用,可以参考这两个芯片的datasheet。
本章实验功能简介:开机的时候先通过24C02的数据判断触摸屏是否已经校准过,如果没有校准,则执行校准程序,校准过后再进入手写程序。如果已经校准了,就直接进入手写程序,此时可以通过按动屏幕来实现手写输入。屏幕上会有一个清空的操作区域(RST),点击这个地方就会将输入全部清除,恢复白板状态。程序会设置一个强制校准,就是通过按KEY0来实现,只要按下KEY0就会进入强制校准程序。
所要用到的硬件资源如下:
3) TFTLCD模块(带触摸屏)
所有这些资源与STM32的连接图,在前面都已经介绍了,这里我们只针对TFTLCD模块与STM32的连接端口再说明一下,TFTLCD模块的触摸屏总共有5跟线与STM32连接,连接电路图如图31.2.1所示:
&span style=&font-size: small&&
图31.2.1 触摸屏与STM32的连接图
从图中可以看出,T_MISO、T_PEN、T_CS、T_MOSI和T_SCK分别连接在STM32的:PF8、PF10、PB2、PF9和PB1上。
打开上一章的工程,首先在HARDWARE文件夹下新建一个TOUCH文件夹。然后新建一个touch.c和touch.h的文件保存在TOUCH文件夹下,并将这个文件夹加入头文件包含路径。
打开touch.c文件,在里面输入与触摸屏相关的代码,这里我们也不全部贴出来了,仅介绍几个重要的函数。
首先我们要介绍的是TP_Read_XY2这个函数,该函数专门用于从触摸屏控制IC读取坐标的值(0~4095),TP_Read_XY2的代码如下:
//连续2次读取触摸屏IC,且这两次的偏差不能超过
//ERR_RANGE,满足条件,则认为读数正确,否则读数错误.
//该函数能大大提高准确度
//x,y:读取到的坐标值
//返回值:0,失败;1,成功。
#define ERR_RANGE 50 //误差范围
u8 TP_Read_XY2(u16 *x,u16 *y)
u16 x1,y1;
u16 x2,y2;
flag=TP_Read_XY(&x1,&y1);
if(flag==0)return(0);
flag=TP_Read_XY(&x2,&y2);
if(flag==0)return(0);
if(((x21000)
TP_Get_Adjdata();
TP_Adjust是此部分最核心的代码,在这里,给大家介绍一下我们这里所使用的触摸屏校正原理:我们传统的鼠标是一种相对定位系统,只和前一次鼠标的位置坐标有关。而触摸屏则是一种绝对坐标系统,要选哪就直接点哪,与相对定位系统有着本质的区别。绝对坐标系统的特点是每一次定位坐标与上一次定位坐标没有关系,每次触摸的数据通过校准转为屏幕上的坐标,不管在什么情况下,触摸屏这套坐标在同一点的输出数据是稳定的。不过由于技术原理的原因,并不能保证同一点触摸每一次采样数据相同,不能保证绝对坐标定位,点不准,这就是触摸屏最怕出现的问题:漂移。对于性能质量好的触摸屏来说,漂移的情况出现并不是很严重。所以很多应用触摸屏的系统启动后,进入应用程序前,先要执行校准程序。 通常应用程序中使用的LCD坐标是以像素为单位的。比如说:左上角的坐标是一组非0的数值,比如(20,20),而右下角的坐标为(220,300)。这些点的坐标都是以像素为单位的,而从触摸屏中读出的是点的物理坐标,其坐标轴的方向、XY值的比例因子、偏移量都与LCD坐标不同,所以,需要在程序中把物理坐标首先转换为像素坐标,然后再赋给POS结构,达到坐标转换的目的。
校正思路:在了解了校正原理之后,我们可以得出下面的一个从物理坐标到像素坐标的转换关系式:
LCDx=xfac*Px+xoff;
LCDy=yfac*Py+yoff;
其中(LCDx,LCDy)是在LCD上的像素坐标,(Px,Py)是从触摸屏读到的物理坐标。xfac,yfac分别是X轴方向和Y轴方向的比例因子,而xoff和yoff则是这两个方向的偏移量。
这样我们只要事先在屏幕上面显示4个点(这四个点的坐标是已知的),分别按这四个点就可以从触摸屏读到4个物理坐标,这样就可以通过待定系数法求出xfac、yfac、xoff、yoff这四个参数。我们保存好这四个参数,在以后的使用中,我们把所有得到的物理坐标都按照这个关系式来计算,得到的就是准确的屏幕坐标。达到了触摸屏校准的目的。
TP_Adjust就是根据上面的原理设计的校准函数,注意该函数里面多次使用了lcddev.width和lcddev.height,用于坐标设置,主要是为了兼容不同尺寸的LCD(比如320*480和320*240的屏都可以兼容)。其他的函数我们这里就不多介绍了,保存touch.c文件,并把该文件加入到HARDWARE组下。接下来打开touch.h文件,在该文件里面输入如下代码:
#ifndef __TOUCH_H__
#define __TOUCH_H__
#include &sys.h&
#define TP_PRES_DOWN 0x80
//触屏被按下
#define TP_CATH_PRES 0x40
//有按键按下了
//触摸屏控制器
typedef struct
u8 (*init)(void);
//初始化触摸屏控制器
u8 (*scan)(u8);
//扫描触摸屏.0,屏幕扫描;1,物理坐标;
void (*adjust)(void);
//触摸屏校准
//原始坐标(第一次按下时的坐标)
//当前坐标(此次扫描时,触屏的坐标)
//笔的状态
//b7:按下1/松开0;
//b6:0,没有按键按下;1,有按键按下.
////////////////////////触摸屏校准参数/////////////////////////
//新增的参数,当触摸屏的左右上下完全颠倒时需要用到.
//touchtype=0的时候,适合左右为X坐标,上下为Y坐标的TP.
//touchtype=1的时候,适合左右为Y坐标,上下为X坐标的TP.
extern _m_tp_dev tp_
//触屏控制器在touch.c里面定义
//与触摸屏芯片连接引脚
#define PEN
//PF10 INT
#define DOUT
#define TDIN
#define TCLK
#define TCS
void TP_Write_Byte(u8 num);
//向控制芯片写入一个数据
u16 TP_Read_AD(u8 CMD);
//读取AD转换值
u16 TP_Read_XOY(u8 xy);
//带滤波的坐标读取(X/Y)
u8 TP_Read_XY(u16 *x,u16 *y);
//双方向读取(X+Y)
u8 TP_Read_XY2(u16 *x,u16 *y);
//带加强滤波的双方向坐标读取
void TP_Drow_Touch_Point(u16 x,u16 y,u16 color);
//画一个坐标校准点
void TP_Draw_Big_Point(u16 x,u16 y,u16 color);
//画一个大点
u8 TP_Scan(u8 tp);
void TP_Save_Adjdata(void);
//保存校准参数
u8 TP_Get_Adjdata(void);
//读取校准参数
void TP_Adjust(void);
//触摸屏校准
u8 TP_Init(void);
void TP_Adj_Info_Show(u16 x0,u16 y0,u16 x1,u16 y1,u16 x2,u16 y2,u16 x3,u16 y3,u16 fac);
//显示校准信息
上述代码,我们定义了_m_tp_dev结构体,用于管理和记录触摸屏相关信息,在外部调用的时候,我们一般直接调用tp_dev的相关成员函数/变量屏即可达到需要的效果。这样种设计简化了接口,另外管理和维护也比较方便,大家可以效仿一下。其他部分我们不做多的介绍,最后我们打开test.c,修改代码如下:
//清屏,重新装载对话界面
void Load_Drow_Dialog(void)
LCD_Clear(WHITE);//清屏
POINT_COLOR=BLUE;//设置字体为蓝色
LCD_ShowString(lcddev.width-24,0,200,16,16,&RST&);//显示清屏区域
POINT_COLOR=RED;//设置画笔蓝色
int main(void)
Stm32_Clock_Init(9);
//系统时钟设置
uart_init(72,9600);
//串口初始化为9600
delay_init(72);
//延时初始化
LED_Init();
//初始化与LED连接的硬件接口
LCD_Init();
//初始化LCD
usmart_dev.init(72);
//初始化USMART
KEY_Init();
//按键初始化
POINT_COLOR=RED;//设置字体为红色
LCD_ShowString(60,50,200,16,16,&WarShip STM32&);
LCD_ShowString(60,70,200,16,16,&TOUCH TEST&);
LCD_ShowString(60,90,200,16,16,&ATOM@ALIENTEK&);
LCD_ShowString(60,110,200,16,16,&&);
LCD_ShowString(60,130,200,16,16,&quotress KEY0 to Adjust&);
tp_dev.init();
delay_ms(1500);
Load_Drow_Dialog();
key=KEY_Scan(0);
tp_dev.scan(0);
if(tp_dev.sta&TP_PRES_DOWN)
//触摸屏被按下
&span style=&background-color: rgb(229,229,229)&&&span style=&font-size: small&&
if(tp_dev.x
22:47 上传
点击文件名下载附件
622.08 KB, 下载次数: 32
22:47 上传
点击文件名下载附件
142.04 KB, 下载次数: 25
站长推荐 /1
欢迎大家分享基于STM32 Nucleo板的设计方案,社区将提供100套开发板团购,29.9元包邮,更有100-1000元不等的开发经费支持——赶紧来赢取ST MCU社区赞助吧!
Tel: 3-8056
备案号: 苏ICP备号-2
Powered by关于STM32开发板晶振相关的问题汇总 - STM32/STM8技术论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
关于STM32开发板晶振相关的问题汇总
15:16:54  
关于STM32开发板晶振相关的问题汇总
由于开发板上晶振稍多,买的板子还配有几个额外的晶振,搞不明白,就在论坛上查了一些资料。看了相关帖子将近30篇,基本上搞定了。现将相关问题汇总如下,分项给大家。1、自己做了个STM32 的板子,,但是手里没有8M的晶振,所以就用 了,12M的,,但是不正常,上电之后PA15和PA14接的是两个led,PA15接的led常亮,PA14接的的led不亮,,而且芯片下载程序又能下载,应该不是芯片坏的问题吧,,而且不管我些什么程序进去,两个脚的状态都不变,,我怀疑是电路有问题,,可是我仔细检查了电路和板子,都没问题,,JTAG正常使用。我用的是12M的晶振,这会有影响吗?感觉不管下什么程序进去感觉芯片好像没有运行。
答:如果使用12M的晶振,那么要修改启动文档中的关于RCC的语句。 因为如果你使用库文件的话,ST的库,默认外部晶振是8M,所以如果你不修改RCC部分的语句,会造成CPU不启动,或者启动不成功。 现象是,在MDK环境下,能够通过JTAG识别到芯片,但是无法下载或者debug。 会提示 can not attach CPU。
2、突然想到这个问题,外部无源晶振选择大小的区别是什么?对STM32芯片它都要先分频,再倍频。我在想,假设,如果它分频都要降到2M,再倍频上去那我直接2M的晶振1分频再倍频,跟24M先12分频再倍频他们的区别是什么?还是说本身就是任意的,根据自己需要选择?
答:方便各种应用场景。
3、自己做的STM32F103RBT6板子,外接8M晶振,现在程序下载正常,运行正常,在程序初始化时用到Stm32_Clock_Init(9)这条语句,我想问下是不是外部晶振如果没起振在执行这条语句时会停止?也就是说我的程序下载和运行都正常说明外部晶振肯定起振了,而且已经倍频到72M了。
答:默认是用内部8M RC震荡的,你切换为PLL之后,才是使用8M倍频的,如果你注释掉Stm32_Clock_Init(9),那么代码也会跑,但是是用内部8M RC震荡。
4、外部晶振换成了25MHz,但是想方便的移植以前8MHz板子上程序,应该怎么修改系统时钟?看了system_stm32f10x.c系统时钟设置&&,但是不知道怎么修改!求指点&&谢谢下面参数是system_stm32f10x.c系统时钟设置&& //默认SYSCLK_FREQ_72MHz&&可在system_stm32f10x.c改变设置& & //默认 HCLK = SYSCLK; &&RCC-&CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1;& & //默认 PCLK2 = HCLK ;&& RCC-&CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1;&& //默认 PCLK1 = HCLK ; RCC-&CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2;&& //默认 PLL as&&RCC_CFGR_SW_PLL;
答:25M不用想了,必须是25的整数倍才行。原子哥&&要是把它设置成75MHz&&具体怎么修改哪些配置参数?25*3=75了 设置倍频数为3. 但是库函数这个不懂,寄存器的 就很简单
5、STM32的RTC不能用,想确定是否硬件问题。但不知道测量的是哪2个引脚。希望知道的高手指教一下
答:1,去掉RTC晶振的电容 2,换晶振. 如果1,2还不行,多换几个晶振. 如果还不行,换MCU. 换到能用为止.... STM32的RTC,就这么蛋疼...
6、手头 有几块 RTC 初始化不成功的,到底是啥原因,用示波器也看不到波形,一共有30 块板子 大概有5块出现这种问题,时钟不正常,其中拿 一块是 换了 IC ,然后OK的, 不会是 IC问题吧,如果是IC 问题,那后期生产 不好弄啊,有经验的朋友 进来 看看,谢谢了
答:就算你用6pf负载电容晶振,STM32的rtc还是会有一部分不能起振的. 如果产品确实需要RTC功能,我建议你还是外加RTC芯片靠谱点.
7、32K内部晶振 16M内部晶振 32K外部晶振,弱弱的想有16M的可以分频还要那两个干嘛啊,为什么分内外啊16M的为什么不设成外部晶振呢?以下 是百度的一段话,外部晶振稳定 内部晶振的误差比较大,但如果对频率要求不高的话(比如不涉及串口通信和精确定时等的话),用内部晶振就行 。内部时钟,频率受温度等其它影响,但是能省下晶振的钱,还有2个I/O。如果对频率要求不高,一般是优先选用内部振荡。 如果你要省电,用了SLEEP,那你就不能用内部振荡了,内部振荡回停止!
答:STM32一般推荐用内部8M RC或者外部8M晶振. 你这个16M,除非个人癖好,一般没必要用. 用内部还是外部,主要看你自己的考虑了. 理论上说,外部准确度高,用到USB通信的时候,建议用外部晶振.另外,内部RC是无法倍频到72M的,最高是4*16=64Mhz. 但是内部晶振如你所说:1,不占空间.2,省成本. 所以,到底用内部还是用外部,根据自己需求来就可以了.
8、各位大大,求一个用内部晶振HSI作系统时钟源的系统时钟配置函数。最好是寄存器版的,谢谢了.
答:把我们的Stm32_Clock_Init屏蔽,用的就是内部8M RC震荡了
9、焊接了一个STM32F103C8T6的最小系统,晶振是16MHZ,程序不能正常运行?怎样修改哪些程序使芯片的还是在72MHZ下工作。只用下面这个函数修改时钟,但是程序还是不能运行,串口发送数据一堆没用的数据。该怎样设置???
答:修改SetSysClockTo72函数中有关时钟配置的地方/* PLL configuration: PLLCLK = PREDIV1 * 9 = 72 MHz */ & & RCC-&CFGR &= (uint32_t)~(RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL);& & RCC-&CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLSRC_PREDIV1 | & && && && && && && && && & RCC_CFGR_PLLMULL9);以上是8M晶振的设置,把分频和倍频改成你要的值
10、请问在“Option for Target”里的“Target”的XTAL填的MHZ数就是开发板上那个两头圆的晶振的参数吗,我的那个上面显示的Y8.000,是不是就填8就可以了。另外,还有一个圆柱形两个管脚的听说那也是晶振,那“Target”里XTAL的参数到底该照谁的填?ALIENTEK教程里的源代码默认都是72MHZ,应该都要改吧
答:填8M,32.768K是rtc晶振不用填
11、STM32没有8M的外部晶振,依然可以运行跑马灯实验(程序设定使用外部晶振),有人知道是为啥不?自己焊了一块板子,没有接外部的8MHZ晶振,可是将原子的跑马灯程序下载进去之后,小灯竟然间歇性的闪烁了。可是原子的程序里面明明是用的外部晶振啊!
答:没外部的直接切换到内部晶振。
12、stm32f103c8t6的五六脚应该接多大的晶振?
答:系统时钟(SYSCLK)有3个来源,内部高速8M时钟(HSI),PLL时钟和外部高速时钟(5 6脚接的HSE),而PLL时钟又有2个来源,即内部高速时钟2分频(HSI/2=4M)和外部高速时钟(HSE) 通常,SYSCLK常用PLL倍频而来,当SYSCLK=72M,外部(5 6脚)接8M晶振,经过9倍频即为72M,如果外部使用12M,那只需要6倍频即可得到72M&&SYSCLK, 具体的细节请参考STM32参考手册6.2节(那个时钟树很清晰明了)
13、战舰stm32开发板上,32.768K晶振电路的作用?这部分电路有什么作用啊?去掉会有什么影响吗?提供时钟的不是8M晶振那部分时钟电路吗?
答:建议你看看时钟树,32.768可以做RTC的时钟源。
14、系统时钟可以由内部时钟RC振荡器、外部时钟、锁相环三者提供,那么设置成内部时钟,是不用外部放置8M晶振了?
答:可以用内部时钟,不用接外部晶振,只是外部时钟更好一些
15、如果不用RTC,最小系统可以去掉一个晶振吗?最近正在自制32的最小系统,用来参加电设比赛的,感觉用不上RTC的功能。请教大家,可以把32.768K的晶振部分去掉,当作普通IO口使用吗?
答:是的,不过32.768K晶振那两个脚当GPIO用的话,驱动能力会比其它的弱,具体的看手册上有具体说明
16、做最小系统版的时候晶振布在底层是否会有影响 ?
答:放在底层或者顶层 没什么影响, 但是晶振最好靠近芯片,晶振下面也最好不要走线。
17、疑问?对于PCLK1是高速时钟,手册高速我们是不能超过36M,如果配置他为系统时钟,会有哪些影响。我有一份代码一直都是按照系统时钟运行的,所以,我也不清楚会造成什么问题?
答:系统时钟是HCLK,不是PCLK1,PCLK1是无法设置为系统时钟的。
18、最近开始画原理图,首先就是最小系统啦,参考战舰开发板、某火开发板、官方的硬件开发使用入门的外部晶振电路,都各不相同,又看了ST的晶体振荡器电路设计指南,还是有些不懂啊。我的理解是调整两个外部电容,使之与晶振的负载电容相等,看看战舰板上是22pF,难道8M晶振的负载电容是10pF?还有并联1M的电阻起什么作用呢?不加限流电阻是因为晶振功耗低?
答:因为每一种晶振都有各自的特性,所以最好按制造厂商所提供的数值选择外部元器件。 ①在许可范围内,C1,C2值越低越好。C值偏大虽有利于振荡器的稳定,但将会增加起振时间。&&②工作良好的振荡波形应该是一个漂亮的正弦波,峰峰值应该大于电源电压的70%。 & &若峰峰值小于70%,可适当减小OSCI及OSCO管脚上的外接负载电容。 & &反之,若峰峰值接近电源电压且振荡波形发生畸变,则可适当增加负载电容。& & & &例子:若取中心值15pF,则C1,C2各取30pF可得到其串联等效电容值15pF,这个值与晶振内部等效电容接近最好, & && && && &如果要达到8pF(内部电容的),则要选择外部两个电容为15pF, & && && && &通常厂家建议的外接负载电容为10~30pF左右。并且C1,C2使用瓷片电容为佳。&&③用示波器检测OSCI(Oscillator input)管脚,容易导致振荡器停振,原因是:部分的探头阻抗小不可以直接测试,可以用串电容的方法来进行测试。 ④当波形出现削峰,畸变时,可增加负载电阻调整(几十K到几百K).要稳定波形是并联一个1M左右的反馈电阻,电阻使稳定,并加速晶振起振时间
19:32:45  
学习了,感激你
00:11:59  
谢谢分享。。。。。。。。。。。。。。。。。。
21:47:49  
好东西,谢谢分享
15:10:36  
好东西,谢谢分享
15:04:58  
音叉型水晶振动子标准品(32.768Khz圆柱体型晶振)使用上的注意事项
1.& && &&&耐冲击性
施加了过大的冲击后,会引起特性的恶化或不发振。
充分注意不要发生落下。另外,尽可能在无冲击的条件下使用。
自动焊接或条件变更时,在使用前应充分确认一下。
2.& && &&&耐热性、耐湿性
在高温或低温或高湿度条件下长时间的使用及保管,会引起振动子的恶化。尽可能在常温、常湿条件下使用、保管。
3.& && &&&焊锡耐热性
标准型的振动子使用178℃熔点的焊锡。振动子内部的温度超过150℃,会引起制品特性的恶化或不发振。
要在超过上面温度的条件进行组装时,是否改用耐热制品或SMD振动子。
使用流动焊锡焊接时,请贵公司充分确认或与我公司联络。
焊接条件,引线部,280℃以下5秒以内或260℃以下10秒以内。
且,请不要在引线根部直接焊接。是造成特性恶化的原因。
4.& && &&&印刷电路板的组装方法
音叉型振动子横向倒放时,请充分固定到电路板上。特别是振动的部位,如图所示在电路板与振动子间放入缓冲材料,或用弹力较好的接着剂(硅胶等)进行固定。另外,请避免在底座玻璃部涂布接着剂。
振动子直立使用时,振动子与电路板间隔开DT-38型3mm以上,DT-26型2mm以上。
5.& && &&&引线加工
要进行引线切断时,应对切断刀进行充分整备。
引线加工时,或引线弯曲修正时,对引线根部施加过大的力,会引起底座玻璃裂等,或对压入部施加过大的力,注意会引起漏气不良。另外,引线根部应留0.5mm以上的直线引线部分。
6.& && &&&超音波洗净及超音波焊着
由于是内部的水晶片谐振,造成不发振的原因,因此不能保证能否进行超音波焊着。
关于超音波洗净,请贵公司确认。
7.& && &&&激振标准
振动子在过大的激振标准上使用后,会引起特性恶化或不发振。
对于此种振动子,我公司建议在1.0μW以下使用。尚,不能保证在2.0μW以上使用。
32.768晶振,请找 上海唐辉电子,天天现货,非常专业,行业公认的。
上海唐辉电子,深耕晶振行业15年,享有盛誉!
14:56:59  
音叉型水晶振动子标准品(32.768Khz圆柱体型晶振)使用上的注意事项
1.& && &&&耐冲击性
施加了过大的冲击后,会引起特性的恶化或不发振。
充分注意不要发生落下。另外,尽可能在无冲击的条件下使用。
自动焊接或条件变更时,在使用前应充分确认一下。
2.& && &&&耐热性、耐湿性
在高温或低温或高湿度条件下长时间的使用及保管,会引起振动子的恶化。尽可能在常温、常湿条件下使用、保管。
3.& && &&&焊锡耐热性
标准型的振动子使用178℃熔点的焊锡。振动子内部的温度超过150℃,会引起制品特性的恶化或不发振。
要在超过上面温度的条件进行组装时,是否改用耐热制品或SMD振动子。
使用流动焊锡焊接时,请贵公司充分确认或与我公司联络。
焊接条件,引线部,280℃以下5秒以内或260℃以下10秒以内。
且,请不要在引线根部直接焊接。是造成特性恶化的原因。
4.& && &&&印刷电路板的组装方法
音叉型振动子横向倒放时,请充分固定到电路板上。特别是振动的部位,如图所示在电路板与振动子间放入缓冲材料,或用弹力较好的接着剂(硅胶等)进行固定。另外,请避免在底座玻璃部涂布接着剂。
振动子直立使用时,振动子与电路板间隔开DT-38型3mm以上,DT-26型2mm以上。
5.& && &&&引线加工
要进行引线切断时,应对切断刀进行充分整备。
引线加工时,或引线弯曲修正时,对引线根部施加过大的力,会引起底座玻璃裂等,或对压入部施加过大的力,注意会引起漏气不良。另外,引线根部应留0.5mm以上的直线引线部分。
6.& && &&&超音波洗净及超音波焊着
由于是内部的水晶片谐振,造成不发振的原因,因此不能保证能否进行超音波焊着。
关于超音波洗净,请贵公司确认。
7.& && &&&激振标准
振动子在过大的激振标准上使用后,会引起特性恶化或不发振。
对于此种振动子,我公司建议在1.0μW以下使用。尚,不能保证在2.0μW以上使用。
上海唐辉电子有限公司
TEL:021-分机
QQ:;189 234 84 81289;
地址:上海市奉贤区西渡镇兴中路225号(201401)
& && &深圳办:深圳宝安西乡银田路6号 宝安智谷 7;
Powered by

我要回帖

更多关于 stm32f7开发板 的文章

 

随机推荐