小R科技-WIFI机器人网·机器人创意工作室

 找回密码
 立即注册
查看: 5918|回复: 0

STMduino教程之基本键盘控制

[复制链接]
发表于 2016-2-2 18:32:16 | 显示全部楼层 |阅读模式
为了学习同样使用STM32芯片的crazepony我购买了STMduino的小车。之前看了版主发的教程,发现除了IIC与实际代码有些许区别外其它还是很好懂的,但是唯独缺少最基本的键盘控制部分代码的讲解,我不知道是不是因为相关内容太基础了,但我认为对初学者来说,这部分的代码才是最重要的。而且相比51duino,STM32的基础控制代码有些位置比较隐蔽,所以我想对版主的讲解作一个补充。

相关功能涉及的c文件分别为:stm32f10x_it.c,main.c,function.c,Motor.c,Config.c,Time_test.c,usart1.c
其中最重要的四个文件是前四个。

我当时忽略了stm32f10x_it.c,因为这个文件从命名上感觉像系统文件,其实里面的是串口中断的处理代码,而51duino小车里相关部分是放在uart.c也就是串口相关的代码中的。然后Config.c也容易被忽视,因为里面其实放了根据电击动作指令设置GPIO高低电位的代码,但是名称上没有写明。然后Time_test.c的作用主要是通过PWM来进行电机调速的,相关函数在Motor.c里调用了。

具体的流程是main.c函数首先进行初始化,其中包括了串口初始化和PWM相关的初始化。然后当系统收到串口数据后会在stm32f10x_it.c里调用中断处理函数USART1_IRQHandler,成功组成数据包以后会调用function.c中的Communication_Decode如果是键盘输入的移动命令,就会调用相关的motor_go_forward等函数了,这些函数在Motor.c里实现。具体都是先通过PWM设置速度(Time_test实现),然后调用Motor_IN_forward_A等函数给GPIO置高低位,这些实现都在Config.c里。

以上情况,由于crusing_flag是0所以main里循环调用crusing函数没实际效果。

但是我依然有个疑惑,为什么好多的源代码放在driver文件夹下,因为好多操作与我们普遍认知中的驱动程序有区别。当然我还没仔细看完driver中的所有代码,所以理解可能有失偏颇。

评分

参与人数 1威望 +2 金钱 +3 贡献 +1 收起 理由
liuviking + 2 + 3 + 1 很给力!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

新品特惠推荐上一条 /2 下一条

QQ|QQ技术咨询1|QQ技术咨询2|商务合作微信1:xiaorgeek001|商务合作微信2:XiaoRGEEK|诚聘英才|Archiver|手机版|小R科技-WIFI机器人网·机器人创意工作室 ( 粤ICP备15000788号-6 )

GMT+8, 2024-4-25 22:39 , Processed in 1.087127 second(s), 21 queries .

Powered by XiaoR GEEK X3.4

© 2014-2021 XiaoR GEEK

快速回复 返回顶部 返回列表