南理工微机实验代码
基于先前学长的贡献,学长在bilibili也有教学视频,基础一般的同学可以看看。
- 按键输入侦测
button.c
- 呼吸灯
breath_led.c
- 循迹
track.c
- 时钟延时控制
CLK.c
- LED灯控制
LED.c
- 碰撞开关避障
bump.c
- ADC输入
ADC.c
- 红外测距避障
distance.c
- 电机控制
motor.c
- 人工PWM(基于
TimerA
控制)mpwm.c
- 红外遥控
remote.c
如果先前创建项目请自行导入
driverlib
文件用下面的方式可以免去导入
driverlib
的麻烦,但请务必按照步骤操作
- 下载解压后用CCS文件选项下的导入工程导入如下路径的工程文件
examples/MSP432P4xx/empty_projects/driverlib_empty_project
- 如果想导入其他源码,请使用文件选项下的导入文件进行导入,不要自行复制文件到源码文件夹
- 将CCS的编译选项由默认的C89改为C11
- 将项目默认编码由GBK改为UTF-8(可选)
注意:
目前tirtos环境的中断配置存在问题,参见此issue,如果需要使用中断功能,请使用CCS编译源码,不含中断的代码可以在PlatformIO上编译烧录。
PlatformIO是一款跨平台的物联网开发的生态环境,主流的编辑器(VS Code/CLion)只要装上本插件就可以化身为一款强大的MCU开发平台,支持绝大多数流行的单片机平台,如stm32/esp32。
platform = timsp432
board = lpmsp432p401r
framework = tirtos
driverlib
无需导入,tirtos环境自带。
ADC初始化
读取三个红外测距传感器数据
延时模块初始化
系统时钟初始化
微秒延迟
毫秒延迟
秒延迟
LED模块初始化
打开单色红灯
关闭单色红灯
向红/绿/蓝端口输出高电平
向红/绿/蓝端口输出低电平
清空RGB颜色
RGB显示颜色切换
颜色表:
#define RED 1 #define GREEN 2 #define BLUE 3 #define PURPLE 4 #define YELLOW 5 #define CYAN 6 #define WHITE 7
碰撞开关避障模块初始化
向右避障动作,timer为时间变量,可以考虑用CLK
中的delay来重写
向左避障动作,timer为时间变量,可以考虑用CLK
中的delay来重写
碰撞状态判断及应对
打开碰撞避障功能
关闭碰撞避障功能
碰撞开关中断主方程
按键初始化(无中断)
获取左/右按键输入状态
按键初始化(带中断)
红外测距模块初始化
获取测距距离
避障函数
避障测试(联动LED)
电机初始化
电机启动
电机关闭
前进函数,speed
为最大100的正整数
前进函数,speed
为最大100的正整数
前进右转函数,speed
为最大100的正整数,ratio
为大于1的浮点数
前进左转函数,speed
为最大100的正整数,ratio
为大于1的浮点数
原地右转函数,speed
为最大100的正整数
原地左转函数,speed
为最大100的正整数
mpwm初始化
selectColor
:参照LED里的RGB_pure
strength
:LED强度PulseWidth
:PWM脉宽lastMul
:重复次数/持续时间
呼吸灯初始化
按键键值说明:
红外遥控初始化
遥控按键中断
扫描键值扫描并返回
循迹初始化
扫描红外循迹传感器返回值
直角/锐角左弯
直角/锐角右弯
循迹主方程
循迹测试(联动LED)