没有合适的资源?快使用搜索试试~ 我知道了~
首页S32K144的LPSPI使用配置详解
S32K144的LPSPI使用配置详解

手头的项目要使用NXP的S32K144,之前从没用过,这个芯片的技术支持不是很多,LPSPI的使用,自己分析了官方的HAL库,慢慢调试总结的配置详解,里面有代码和我用示波器检测的波形图,很清晰,一看就明白了;
资源详情
资源评论
资源推荐

LPSPI 的配置和常规 SPI 基本相同,HAL 库中提供了初始化函数,我们只需要定义好对应结
构体,并初始化位我们需要的值即可:
下面的代码是我在 TBOX 项目中,使用的初始化代码:
/*管脚映射*/
#define PORT_SPI1 PORTB
#define SPI1_PCS3 GPIO_PinSource17
#define SPI1_SOUT GPIO_PinSource16
#define SPI1_SIN GPIO_PinSource15
#define SPI1_SCK GPIO_PinSource14
/*配置参数定义*/
#define SPI1_BAUD 1000000 //1M
#define DATA_WIDTH 16
void LPSPI1_Init_Master(void)
{
lpspi_init_config_t lpspiCfg;
lpspi_tx_cmd_config_t lpspi_tx_cmd;
uint32_t tcrPre;
/*选择 SPI1 时钟源 FIRCDIV2_CLK=24MH*/
PCC_HAL_SetClockSourceSel(PCC, PCC_LPSPI1_CLOCK, CLK_SRC_FIRC);
/*开启 SPI1 模块时钟及端口时钟*/
PCC_HAL_SetClockMode(PCC, PCC_LPSPI1_CLOCK, ENABLE);
PCC_HAL_SetClockMode(PCC, PCC_PORTB_CLOCK, ENABLE); /*该时钟源在
uart0 的初始化中已经打开了,这里暂时不用打开*/
/*管脚配置 */
PORT_HAL_SetMuxModeSel(PORT_SPI1, SPI1_PCS3, PORT_MUX_ALT3);
PORT_HAL_SetMuxModeSel(PORT_SPI1, SPI1_SOUT, PORT_MUX_ALT3);
PORT_HAL_SetMuxModeSel(PORT_SPI1, SPI1_SIN, PORT_MUX_ALT3);
PORT_HAL_SetMuxModeSel(PORT_SPI1, SPI1_SCK, PORT_MUX_ALT3);
/*SPI 参数配置*/
LPSPI_HAL_Init(LPSPI1); //首先复位模块
LPSPI_HAL_SetMasterSlaveMode(LPSPI1, LPSPI_MASTER); //设置位主机模
式
/*设置片选信号和 clk 信号的时间关系,需要根据具体的外部设备来配置该参数,*/


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论6