你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

[自设制作STM32F103RB实验板测试]实验三、完成首个基于小车...

[复制链接]
zhjb1 发布时间:2018-1-26 10:43
接上篇:实验二、平台搭建和其它硬...
$ R7 F% B4 b% J& a4 N; p# p8 @# h% F; l: C% [6 n8 N+ |
本实验遇到常规的模块,实际用到的模块:
; e3 Y; [: J1 b6 X+ M/ o1个128x64黑白LCD显示屏、1路程序计数器、3路ADC[其中1路Touch检测]、2路PWM[1路电机,1路舵机]、1路脉冲发生器、5路中断输入检测[其中1路超声监测,3路计数,1路按钮开关]、Ticker、Timer两个系统时钟源。0 ]4 t3 x6 D8 j5 o& Q
开发板设定了4路ADC[PC_0~PC_3],PC_1连接了按钮,PC_2连接了Touch[PCB上的一个单面焊盘],因此ADC0-PC_0,ADC1-PC_3。此实验中4路引出的ADC都用上了,需要增加ADC只能从两边的引脚插针取用了。
* k' P$ I' Y) Q' }查手册PWM选用了Timer1控制的PA_10,PA_11。
7 F" t0 l7 O% A8 w0 H- \脉冲发生和中断输入取用连接LCD对面的插针排,没有特定选择对象。实际选用了脉冲发生PB_8[由Ticker中断产生10uS宽度的应该是近2KHz的脉冲,如果是方波则是1KHz]。  G3 `+ l0 t4 y8 v" n# E
外接信号的5路中断检测由PB_4,PB_5,PB_6,PB_7,PC_2。其中PB_4~PB_6输入脉冲计数用,PB_7作为检测超声脉冲测距用[有Timer检测发收脉冲间隔用],代码已敲定,但没有传感器没有做这个实验,以后补;PC_2用于检测Touch触摸实验。  Q3 |8 x$ d8 P3 L: W
具体照片解释:# f' q; H- ~$ b/ t
照片31是整体硬件连接;照片32是正常按压Reset见之后的屏幕显示;照片33,34是PWM检测,33是的PWM1>PWM0时,红色LED渐亮,34是PWM1<PWM0时,绿色LED渐亮;照片35,36是从示波器监测PB_8脉冲输出,35显示频率略低于2KHz,因为每个脉冲宽度占去5uS之故,36显示脉宽为15uS--与实际设置不符,实际设置延时5uS,可能包括执行时间后延时实际近15uS;照片37,38是监测Touch电压变化,37是手指在Touch焊盘上时电压变化很大,几乎是0~1,38是没有触摸时,电压在大于0.5~小于<0.7之间,较为稳定;照片39是Reset键之后的串口初始数据。
8 E. k# ~0 i5 n3 d缺少的照片是按键照片,这个较为简单,就不验证了。
; M* V0 Y9 y# \2 ]$ Q代码很简单,就不给出了,仅对板子设计核试验的结果做一件单讨论:
% b- `- O/ e+ Q* W1. 可以说在小车控制上所需要的信号完全可以满足要求,有点冗余。, `- W# W* n4 _5 R: ?5 E% D
2. 板子在此状态下连续跑了超过16小时没有问题,当然没有连接外设,只属于静态测试。
. _; A; z8 o  S' x0 K% k4 a' o3. 128x64屏幕足够显示所需数据。! r' C1 D; S3 A
问题:
9 k" f4 \+ A( k9 E' f! ?2 {- ?- k+ O, E1. 按键是直接连接在PC_1上的,因为尝试设计为ADC输入,因此没有接防抖动的RC,此案件的响应时间有点长,从串口检测和屏幕显示可以看到那个0->1或1->0变换时间超过1秒或更多,就像老太婆走路一样很慢!
" g( S( d' S6 ~& M9 Y" s2. Touch也是直接接在原来设计为ADC的PC_2上,结果没有触摸时,监测到的电压基本上是中点稍多点,接触后是人体感应的交变电压,其复制在0~1之间[浮点数],因此判断Touch按下需要做些数据处理,带来麻烦。4 q5 o5 d- O/ L5 V' g: i' s
根据以上测试的得到结果,可以这样认定:  v# E& y3 O1 d. Y
1. 用户按键必须重新设计,单独走一个独立的IO,不与ADC口共用!1 Y4 R, T" d1 [9 ]( R. g3 l
2. 用户Touch按键也必须独立IO设计,并且加上必要的RC提高响应速度和减少感应电压的波形影响。
1 k* l2 V/ c% s2 u今天有点时间,将舵机控制的PWM调了出来。模拟舵机是按照PWM高电平的脉宽进行角度控制的,规定1.5mS脉宽为舵机中间的位置,0.5mS是最左边的位置,2.5mS是最右面的位置,写一点代码,控制脉宽0.5mS->2.5mS,再2.5mS->0.5mS,来回变化形成舵机摆动。照片3A为示波器脉宽接近0.5mS的照片,3B是接近2.5mS时的照片。舵机控制视频。7 S% L$ L6 f- a/ P- n9 f: m
增加的内容按照https://www.stmcu.org.cn/module/forum/thread-612788-1-1.html文档的操作一样是在最后。没辙了。
- D6 |* K9 ]/ ^/ S% w2 V- D顺便说一下,STM32F1xx系列的ARM与Freescale的芯片一样在控制PWM上有较好的表现,可以以uS的进度较为精确的控制舵机。这一点非常好!这与他的Timer是24位的有极大的关系。2 i& Q/ W; o- C* [9 x$ w$ Z* q
. F( \0 \& q: ?2 R& a
' T. P  j1 g6 n; P4 e7 r

31

31

32

32

33

33

34

34

35

35

36

36

37

37

38

38

39

39

3A

3A

3B

3B
赞 收藏 评论5 发布时间:2018-1-26 10:43

举报

5个回答
Stm32McuLover 回答时间:2018-1-26 10:54:46
看的头疼,排版
zero99 回答时间:2018-1-26 13:15:50
学习了!不过建议把排版调整下
% ?! G: T6 `4 S) s
- d) a0 {+ A! [% U5 `! r& H如何正确插入图片,看这里7 b* `! r$ Z- S/ V0 g' i. ^3 O
https://www.stmcu.org.cn/module/forum/thread-612788-1-1.html4 P5 d8 ?/ W- u( H" c2 o
chrome777 回答时间:2018-1-26 13:31:19
跳线看着有点难受。。为啥不留个液晶口
zhjb1 回答时间:2018-1-26 16:25:37
morphlings2014 发表于 2018-1-26 13:31
. O7 r# P5 J( x2 }3 u跳线看着有点难受。。为啥不留个液晶口

! i$ @8 R  I9 _7 m: c# o' w$ d) B那个实际是SPI和串口液晶共用口,可以换成排座,但当主辅串口用就麻烦点,所以焊了排针。
chrome777 回答时间:2018-1-26 16:49:52
zhjb1 发表于 2018-1-26 16:25
1 a6 G' @4 q  x8 p/ f那个实际是SPI和串口液晶共用口,可以换成排座,但当主辅串口用就麻烦点,所以焊了排针。 ...

( R7 `  y. ^) k; C0 ?8 j' f9 ^1 f* v可以可以,很棒。

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版