我正在研究 SPI
我为芯片选择获得的波形的 PFA
蓝色的是时钟,黄色的是片选
我没有得到正确的波形我正在使用下面的代码请检查一次并尽快回复
等待你的回复
#include "S32K148.h"
#include "device_registers.h"
#include "LPSPI.h"
#include "clocks_and_modes.h"
uint16_t tx_16bits = 0xFD00;
uint16_t LPSPI1_16bits_read;
void WDOG_disable (void)
{
WDOG->CNT=0xD928C520; /* 解锁看门狗 */
WDOG->TOVAL=0x0000FFFF; /* 最大超时值 */
WDOG->CS = 0x00002100; /* 禁用看门狗 */
}
void PORT_init (void)
{
/*!
* 引脚定义
* ============================================== =====
*
* 密码 | 函数
* ------------------ |----------------
* PTA26 | LPSPI1_PCS0
* PTA27 | LPSPI1_SOUT
* PTA28 | LPSPI1_SCK
* PTA29 | LPSPI1_SIN
*/
PCC->PCCn[PCC_PORTA_INDEX ]|=PCC_PCCn_CGC_MASK; /* 为 PORTA 启用时钟 */
PORTA->PCR[26]|=PORT_PCR_MUX(3); /* 端口 B14:MUX = ALT3,LPSPI1_PCS0 */
PORTA->PCR[27]|=PORT_PCR_MUX(3); /* 端口 B15:MUX = ALT3,LPSPI1_SOUT */
PORTA->PCR[28]|=PORT_PCR_MUX(3); /* 端口 B16:MUX = ALT3,LPSPI1_SCK */
PORTA->PCR[29]|=PORT_PCR_MUX(5); /* 端口 B17:MUX = ALT3,LPSPI1_SIN */
}
int main(void)
{
/*!
* 初始化:
* =======================
*/
WDOG_disable(); /* 禁用 WDOG */
SOSC_init_8MHz(); /* 为 8 MHz xtal 初始化系统振荡器 */
SPLL_init_160MHz(); /* 使用 8 MHz SOSC 将 SPLL 初始化为 160 MHz */
NormalRUNmode_80MHz(); /* 初始化时钟:80 MHz sysclk 和内核,40 MHz 总线,20 MHz 闪存 */
LPSPI1_init_master(); /* 将 LPSPI 1 初始化为主机 */
PORT_init(); /* 配置端口 */
while(1)
{
uint32_t 计数器 = 0;
LPSPI1_transmit_16bits(tx_16bits); /* 在 LPSPI1 上传输半字(16 位)*/
LPSPI1_16bits_read = LPSPI1_receive_16bits(); /* 在 LSPI1 上接收半字 */
counter++;
}
}