找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2016|回复: 0
收起左侧

单片机智能车电磁循迹源程序,超声波规避路障

[复制链接]
ID:479022 发表于 2021-6-13 09:55 | 显示全部楼层 |阅读模式
V1.0
    增加硬件IIC卡死检测,避免硬件IIC卡死
    修改串口 IIC SPI引脚复用设置错误问题
   
V1.1
    修正注释错误
    GPIO增加单独的上下拉电阻设置函数,便于切换
    修改OLED数字显示函数多余操作,提高速度
    OLED增加oled_printf_int32 oled_printf_float函数可以去除无效0位
    修改OLED画点函数,使得可以控制OLED的每一个像素,从而可以使用OLED画出任意图形
   
V1.11
    修复特殊情况不能复位的问题
    将inc src源代码设置为不加锁,便于修改代码
    增加永久关闭ISP选项
    摄像头驱动程序增加中断优先级设置
   
V1.12
    修复TFT lcd_showint32与lcd_showfloat函数变长度显示时会保留上一次的数据的问题
   
V1.13
    修复OLED oled_printf_int32与oled_printf_float函数变长度显示时会保留上一次的数据的问题
   
V1.14
    修复GINT组中断  默认为与连接的问题  将默认设置改为或链接
    去掉GINT初始化函数无用参数,增加单独的引脚中断启用与禁用函数
    修复硬件IIC等待延时逻辑错误
    修改硬件IIC默认的延时等待时间为10000
    修复SPI片选参数不使用引脚的时,进入断言失败
    修复SPI的片选引脚计算错误的问题
    SPI初始化函数增加模式设置 spi_mosi函数增加是否发送EOT的参数
    增加ICM20602驱动程序   驱动程序包含软件IIC 硬件IIC 硬件SPI三种通信方式
    修改1.8寸TFT 硬件spi波特率为20M,提高液晶的显示速度。
    修改PIT初始化函数默认使能PIT中断
    修改引脚功能说明文件 错误信息
    增加MRT定时器,使得PIT周期中断可以增加4路,4路PIT使用的是同一个中断,在中断里使用标志位区分
    修改eeprom字写入函数的数据形参为uint32 *指针,填写参数时需要变更为需要保存的变量的地址
    修改eeprom读取宏定义函数,增加type参数,用于设置读取的数据类型
    修复eeprom最大偏差宏定义错误问题
    修复flexcomm8不能使用的问题
    软件IIC引脚初始化默认加上OD 开漏
    修改频率设置LPC546XX_MAIN_CLOCK为2时,频率设置为210M
    将摄像头场中断修改为使用PINT引脚中断触发
    增加SCT输出PWM的功能,由于摄像头的PCLK和PWM周期需要各占用一个通道,因此SCT一共十个通道最多只能输出8路PWM,可以用于控制4个电机正反转
    在常用的中断相关的初始化最后,添加开启中断及中断优先级设置函数的注释
    增加PIT计时清除函数





============================ADC============================
模块                具有该功能的引脚
ADC通道0            A10
ADC通道1            A11     与下载口冲突
ADC通道2            A12     与下载口冲突
ADC通道3            A15
ADC通道4            A16
ADC通道5            A31
ADC通道6            B0
ADC通道7            P2_0    LQFP100封装没有这个引脚
ADC通道8            P2_1    LQFP100封装没有这个引脚
ADC通道9            P3_21   LQFP100封装没有这个引脚
ADC通道10           P3_22   LQFP100封装没有这个引脚
ADC通道11           A23     需断开电源检测



============================SCT0 PWM模式============================
由于摄像头的PCLK和PWM周期需要各占用一个通道,因此SCT一共十个通道最多只能输出8路PWM
默认摄像头占用1通道,PWM周期占用0通道
需要特别注意,sct模块能够输出最多8路PWM,但是8路PWM频率都必须一致。所以适合用于控制多个电机
并且每一个通道同一时刻只能有一个引脚输出PWM

通道                具有该功能的引脚
SCT0_CH0            A2  A17 B4  B23      
SCT0_CH1            A3  A18 B8  B24      
SCT0_CH2            A15 A19 B9  B25      
SCT0_CH3            A22 A31 B10 B26      
SCT0_CH4            A23 B3  B17         
SCT0_CH5            A26 B18              
SCT0_CH6            A27 B31              
SCT0_CH7            A28 B19              
SCT0_CH8            A29                  
SCT0_CH9            A30                  





============================定时器PWM模式============================
在使用PWM模式的时候需要注意,一个定时器最多能有三个通道输出PWM
因为需要每一个定时器需要占用一个通道来作为周期通道
周期通道的设置可以在ctimer.h文件文件内的宏定义进行设置

模块                具有该功能的引脚
定时器0=============
通道0                A0 A30
通道1                A3 A31
通道2                A19
通道3                B2 B27

定时器1=============
通道0                A18 B10
通道1                A20 B12
通道2                A23 B14
通道3                B16

定时器2=============
通道0                A10 B5
通道1                B4 B6
通道2                A11 B7
通道3                A29 B22

定时器3=============
通道0                A5
通道1                B19
通道2                A27 B21
通道3                A21 A23

定时器4=============
通道0                A6


============================定时器脉冲计数模式============================
在使用技术模式的时候需要注意,一个定时器在同一时间只能对一个引脚计数
例如:使用两个编码器,则应该使用两个定时器进行计数

模块                具有该功能的引脚
定时器0=============
通道0                A1 A13
通道1                A2 A14
通道2                A28
通道3                B1 B26

定时器1=============
通道0                A16 B9
通道1                B11
通道2                B13
通道3                B15

定时器2=============
通道0                A24
通道1                A25
通道2                A10
通道3                A28

定时器3=============
通道0                A4
通道1                A6
通道2                A26 B20
通道3                A20 A22

定时器4=============
通道0                A15



============================串口============================
在同时使用USART、IIC、SPI通讯端口的时候,需要特别注意,同一个模块号的通讯端口不能同时使用
如USART_0、IIC_0和SPI_0模块号都为0则不能同时使用,如果使用了USART_0模块,则IIC_0和SPI_0模块都不能使用
同理模块号为1、2、3、4、5、6、7、8都是如此     

模块                具有该功能的引脚

串口0 TX            A25 A30 B6
串口0 RX            A24 A29 B5
                        
串口1 TX            A10 B11
串口1 RX            B10
        
串口2 TX            A27 B25
串口2 RX            A26 B24  
        
串口3 TX            A2 A12
串口3 RX            A3 B1  

串口4 TX            A16 B21
串口4 RX            A5  B20

串口5 TX            A9
串口5 RX            A8

串口6 TX            A22 B16
串口6 RX            A11 B13

串口7 TX            A19 B30
串口7 RX            A20 B29

串口8 TX            B18
串口8 RX            B17

============================IIC============================
在同时使用USART、IIC、SPI通讯端口的时候,需要特别注意,同一个模块号的通讯端口不能同时使用
如USART_0、IIC_0和SPI_0模块号都为0则不能同时使用,如果使用了USART_0模块,则IIC_0和SPI_0模块都不能使用
同理模块号为1、2、3、4、5、6、7、8都是如此     


模块                具有该功能的引脚
IIC0 SDA            A24 A29 A31 B5 B8
IIC0 SCL            A25 A30 B0  B6 B7

IIC1 SDA            A13 B10
IIC1 SCL            A10 A14 B11

IIC2 SDA            A26 B24 B26
IIC2 SCL            A27 B25 B27

IIC3 SDA            A1 A3 A20 B1
IIC3 SCL            A2 A7 A12 A21

IIC4 SDA            A5 A18 B9 B21
IIC4 SCL            A16 A19 B15 B20

IIC5 SDA            A8 B14
IIC5 SCL            A9 B15

IIC6 SDA            A11 A15 B29
IIC6 SCL            A22 B16

IIC7 SDA            A20 B21 B29
IIC7 SCL            A19 B20 B30

IIC8 SDA            B17 B31
IIC8 SCL            B18 B22


============================SPI============================
在同时使用USART、IIC、SPI通讯端口的时候,需要特别注意,同一个模块号的通讯端口不能同时使用
如USART_0、IIC_0和SPI_0模块号都为0则不能同时使用,如果使用了USART_0模块,则IIC_0和SPI_0模块都不能使用
同理模块号为1、2、3、4、5、6、7、8都是如此     


模块                具有该功能的引脚
SPI0================
SCK                    A28 B4
MOSI                 A24 A29 B5
MISO                A25 A30 B6
CS0                    B8 A31
CS1                    B0 B7
            
SPI1================
SCK                    A7 B9
MOSI                B10
MISO                A10 B11
CS0                    A13
CS1                    A14
            
SPI2================
SCK                    B23
MOSI                A26 B24
MISO                A27 B25
CS0                    B26
CS1                    B27
            
SPI3================
SCK                    A0 A6
MOSI                A3 B1
MISO                A2 A12
CS0                    A1 A20
CS1                    A7 A21
CS2                    A9 B23
CS3                    A8 B24

SPI4================
SCK                    A4 B19
MOSI                A5 B21
MISO                A16 B20
CS0                    A18 B9
CS1                    A19 B15
CS2                    A17 B8
CS3                    B22

SPI5================
SCK                    A7
MOSI                A8
MISO                A9
CS0                    B14
CS1                    B15

SPI6================
SCK                    A10 B12
MOSI                A11 B13
MISO                A22 B16
CS0                    A15
            
SPI7================
SCK                    A21 B28
MOSI                A20 B29
MISO                A19 B30
CS0                    B21
CS1                    B20

SPI8================
SCK                    B19
MOSI                B17
MISO                B18
CS0                    B31
CS1                    B22

程序下载: 无横断,白色检测断路.7z (1.73 MB, 下载次数: 17)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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