在线时间16 小时
UID3513498
注册时间2018-10-16
NXP金币0
TA的每日心情 | 慵懒 2023-4-20 13:11 |
---|
签到天数: 9 天 [LV.3]偶尔看看II
注册会员
- 积分
- 139
- 最后登录
- 2023-4-20
|
最近在调试S32K144的UART模块功能,使用的硬件是NXP官方的EVB,软件是S32DS 2018,在SDK的Demo样例中稍作更改,想要实现在接收的回掉函数中接收数据,可是测试后发现,一旦通过电脑的串口助手向单片机发送信息后,就会执行回掉函数中的函数,且一直循环执行。小弟新接触S32K系列的芯片,有很多地方不懂,希望各位大哥大姐们在闲暇之余帮助一下小弟,万分感谢。下面是我写的代码。PS 基础配置为 UART0,RX管脚为PTA2,TX管脚为PTA3
uint8_t data[6]={0xAA,0xBB,0xCC,0,0,0};
uint8_t dat[8]={0x01,0x02,0x03,0x04,0,0,0,0};
uint8_t Buffer;
uint8_t buffer[255] = {0,};
uint8_t i = 0;
uint32_t bytesRemaining;
void RXCallBack(void*driverState,uart_event_t event,void*userData)
{
LPUART1->CTRL&=~LPUART_CTRL_RIE_MASK;
LPUART_DRV_ReceiveData(INST_LPUART1, &Buffer, 1UL);
if(event==UART_EVENT_RX_FULL)
{
if(Buffer==0xAA)
{
PINS_DRV_TogglePins(PTD,(1<<15));
while(LPUART_DRV_GetTransmitStatus(INST_LPUART1, &bytesRemaining) != STATUS_SUCCESS);
LPUART_DRV_SendData(INST_LPUART1, dat, 8);
i=0;
}
}
}
int main(void)
{
#ifdef PEX_RTOS_INIT
PEX_RTOS_INIT(); /* Initialization of the selected RTOS. Macro is defined by the RTOS component. */
#endif
/*** End of Processor Expert internal initialization. ***/
/* Write your code here */
/* For example: for(;;) { } */
CLOCK_SYS_Init(g_clockManConfigsArr, CLOCK_MANAGER_CONFIG_CNT,
g_clockManCallbacksArr, CLOCK_MANAGER_CALLBACK_CNT);
CLOCK_SYS_UpdateConfiguration(0U, CLOCK_MANAGER_POLICY_AGREEMENT);
PINS_DRV_Init(NUM_OF_CONFIGURED_PINS, g_pin_mux_InitConfigArr);
LPUART_DRV_Init(INST_LPUART1, &lpuart1_State, &lpuart1_InitConfig0);
while(LPUART_DRV_GetTransmitStatus(INST_LPUART1, &bytesRemaining) != STATUS_SUCCESS);
LPUART_DRV_SendData(INST_LPUART1, data, 6);
INT_SYS_EnableIRQ(LPUART0_RxTx_IRQn);
LPUART_DRV_ReceiveData(INST_LPUART1, &Buffer, 1UL);
LPUART_DRV_InstallRxCallback(INST_LPUART1,RXCallBack,NULL);
while (1)
{
}
|
|