STM32L451 / 452 kompatibiita
Jaroslav Buchta
jaroslav.buchta na hascomp.cz
Pátek Červenec 2 14:05:49 CEST 2021
Zdravim, uz pul dne badam nad divnym problemem, asi je chyba mezi
klavesnici a zidli.
Nahradil jsem 451 za 452 a uz pri inicializaci GPIO jsem narazil na
odlisne chovani, dela to puvodni binarni kod pro 451 i novy kod pro 452.
Vecer budu badat dal, jen jestli nekdo na prvni pohled nevi v cem je
odchylka...
Problem vznika na radku s vykricniky
#define LEDB_Pin GPIO_PIN_13
#define LEDB_GPIO_Port GPIOC
#define LEDR_Pin GPIO_PIN_14
#define LEDR_GPIO_Port GPIOC
#define DISP_BS_Pin GPIO_PIN_5
#define DISP_BS_GPIO_Port GPIOA
#define TP_B0_Pin GPIO_PIN_0
#define TP_B0_GPIO_Port GPIOB
#define TP_B1_Pin GPIO_PIN_1
#define TP_B1_GPIO_Port GPIOB
#define TP_B2_Pin GPIO_PIN_2
#define TP_B2_GPIO_Port GPIOB
#define USART1_NRE_Pin GPIO_PIN_11
#define USART1_NRE_GPIO_Port GPIOA
#define DISP_NSS_Pin GPIO_PIN_15
#define DISP_NSS_GPIO_Port GPIOA
#define DISP_POWER_Pin GPIO_PIN_6
#define DISP_POWER_GPIO_Port GPIOB
#define DISP_NBUSY_Pin GPIO_PIN_7
#define DISP_NBUSY_GPIO_Port GPIOB
#define DISP_NRST_Pin GPIO_PIN_8
#define DISP_NRST_GPIO_Port GPIOB
#define DISP_DC_Pin GPIO_PIN_9
#define DISP_DC_GPIO_Port GPIOB
void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOH_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOC, LEDB_Pin|LEDR_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(DISP_BS_GPIO_Port, DISP_BS_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOB, TP_B0_Pin|TP_B1_Pin|TP_B2_Pin|DISP_POWER_Pin
|DISP_NRST_Pin|DISP_DC_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOA, USART1_NRE_Pin|DISP_NSS_Pin, GPIO_PIN_SET);
/*Configure GPIO pins : PCPin PCPin */
GPIO_InitStruct.Pin = LEDB_Pin|LEDR_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = DISP_BS_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(DISP_BS_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pins : PBPin PBPin PBPin PBPin
PBPin */
GPIO_InitStruct.Pin = TP_B0_Pin|TP_B1_Pin|TP_B2_Pin|DISP_POWER_Pin
|DISP_NRST_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/*Configure GPIO pins : PAPin PAPin */
GPIO_InitStruct.Pin = USART1_NRE_Pin|DISP_NSS_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = DISP_NBUSY_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(DISP_NBUSY_GPIO_Port, &GPIO_InitStruct);
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! tady to nastavi DISP_POWER_Pin (PB6) na
1, nechapu, i pri krokovani do Init to zmeni MODER dle ocekavani zmeni
se jen z xxxxdxxx na xxxx1xxx (prave pri prepisu MODER to skoci na 1)
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = DISP_DC_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM;
HAL_GPIO_Init(DISP_DC_GPIO_Port, &GPIO_InitStruct);
}
Další informace o konferenci Hw-list