sml via uart2 works first time almost properly
This commit is contained in:
parent
d378c05073
commit
41469673b6
@ -38,12 +38,13 @@ extern "C" {
|
|||||||
/* USER CODE BEGIN ET */
|
/* USER CODE BEGIN ET */
|
||||||
RTC_HandleTypeDef hrtc;
|
RTC_HandleTypeDef hrtc;
|
||||||
|
|
||||||
TIM_HandleTypeDef htim2;
|
|
||||||
|
|
||||||
SPI_HandleTypeDef hspi1;
|
SPI_HandleTypeDef hspi1;
|
||||||
|
|
||||||
|
TIM_HandleTypeDef htim2;
|
||||||
|
|
||||||
UART_HandleTypeDef huart1;
|
UART_HandleTypeDef huart1;
|
||||||
UART_HandleTypeDef huart2;
|
UART_HandleTypeDef huart2;
|
||||||
|
|
||||||
/* USER CODE END ET */
|
/* USER CODE END ET */
|
||||||
|
|
||||||
/* Exported constants --------------------------------------------------------*/
|
/* Exported constants --------------------------------------------------------*/
|
||||||
@ -66,6 +67,10 @@ void Error_Handler(void);
|
|||||||
/* Private defines -----------------------------------------------------------*/
|
/* Private defines -----------------------------------------------------------*/
|
||||||
#define LED_Pin GPIO_PIN_1
|
#define LED_Pin GPIO_PIN_1
|
||||||
#define LED_GPIO_Port GPIOA
|
#define LED_GPIO_Port GPIOA
|
||||||
|
#define USART2_TX_Pin GPIO_PIN_2
|
||||||
|
#define USART2_TX_GPIO_Port GPIOA
|
||||||
|
#define USART2_RX_Pin GPIO_PIN_3
|
||||||
|
#define USART2_RX_GPIO_Port GPIOA
|
||||||
#define NSS_Pin GPIO_PIN_4
|
#define NSS_Pin GPIO_PIN_4
|
||||||
#define NSS_GPIO_Port GPIOA
|
#define NSS_GPIO_Port GPIOA
|
||||||
#define RST_Pin GPIO_PIN_9
|
#define RST_Pin GPIO_PIN_9
|
||||||
@ -79,6 +84,11 @@ void Error_Handler(void);
|
|||||||
#define DIO2_Pin GPIO_PIN_5
|
#define DIO2_Pin GPIO_PIN_5
|
||||||
#define DIO2_GPIO_Port GPIOB
|
#define DIO2_GPIO_Port GPIOB
|
||||||
#define DIO2_EXTI_IRQn EXTI4_15_IRQn
|
#define DIO2_EXTI_IRQn EXTI4_15_IRQn
|
||||||
|
#define USART1_TX_Pin GPIO_PIN_6
|
||||||
|
#define USART1_TX_GPIO_Port GPIOB
|
||||||
|
#define USART1_RX_Pin GPIO_PIN_7
|
||||||
|
#define USART1_RX_GPIO_Port GPIOB
|
||||||
|
|
||||||
/* USER CODE BEGIN Private defines */
|
/* USER CODE BEGIN Private defines */
|
||||||
|
|
||||||
/* USER CODE END Private defines */
|
/* USER CODE END Private defines */
|
||||||
|
44
src/main.c
44
src/main.c
@ -41,7 +41,7 @@
|
|||||||
/* Private define ------------------------------------------------------------*/
|
/* Private define ------------------------------------------------------------*/
|
||||||
/* USER CODE BEGIN PD */
|
/* USER CODE BEGIN PD */
|
||||||
|
|
||||||
#define BUFFER_SIZE 2048
|
#define BUFFER_SIZE 1024
|
||||||
|
|
||||||
/* USER CODE END PD */
|
/* USER CODE END PD */
|
||||||
|
|
||||||
@ -70,6 +70,8 @@ static void MX_RTC_Init(void);
|
|||||||
/* Private user code ---------------------------------------------------------*/
|
/* Private user code ---------------------------------------------------------*/
|
||||||
/* USER CODE BEGIN 0 */
|
/* USER CODE BEGIN 0 */
|
||||||
|
|
||||||
|
uint8_t sml_frame[BUFFER_SIZE];
|
||||||
|
|
||||||
double T1Wh = -2, SumWh = -2;
|
double T1Wh = -2, SumWh = -2;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@ -247,18 +249,10 @@ void initfunc (osjob_t* j) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const uint8_t sml_frame[BUFFER_SIZE] = {"Hallo Welt !!\n"};
|
|
||||||
|
|
||||||
u2_t readsensor(){
|
u2_t readsensor(){
|
||||||
u2_t value = 0xDF; /// read from evrything ...make your own sensor
|
u2_t value = 0xDF; /// read from evrything ...make your own sensor
|
||||||
|
|
||||||
HAL_UART_Transmit( &huart2, (uint8_t *)sml_frame, 8, HAL_MAX_DELAY );
|
|
||||||
// if( HAL_UART_Receive( &huart2, sml_frame, 8, 15 ) == (HAL_OK || HAL_TIMEOUT)){
|
|
||||||
// for(int i = 0; i < BUFFER_SIZE; i++){
|
|
||||||
// readByte( &sml_frame[i] );
|
|
||||||
// };
|
|
||||||
// }
|
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -269,7 +263,7 @@ static void reportfunc (osjob_t* j) {
|
|||||||
// read sensor
|
// read sensor
|
||||||
u2_t val = readsensor();
|
u2_t val = readsensor();
|
||||||
// debug_int( os_getTime() );
|
// debug_int( os_getTime() );
|
||||||
debug_val(": val = ", val);
|
debug_val("val = ", val);
|
||||||
// prepare and schedule data for transmission
|
// prepare and schedule data for transmission
|
||||||
LMIC.frame[0] = val << 8;
|
LMIC.frame[0] = val << 8;
|
||||||
LMIC.frame[1] = val;
|
LMIC.frame[1] = val;
|
||||||
@ -278,6 +272,30 @@ static void reportfunc (osjob_t* j) {
|
|||||||
// os_setTimedCallback(j, os_getTime()+sec2osticks(300), reportfunc);
|
// os_setTimedCallback(j, os_getTime()+sec2osticks(300), reportfunc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static osjob_t testjob;
|
||||||
|
|
||||||
|
static void testfunc( osjob_t *j){
|
||||||
|
// uint32_t ticks;
|
||||||
|
// ticks = HAL_GetTick();
|
||||||
|
// debug_str( (const char*)sml_frame );
|
||||||
|
// debug_val("Ticks: ", ticks );
|
||||||
|
for( int i = 0; i < sizeof(sml_frame); i++ ){
|
||||||
|
sml_frame[i] = 0u;
|
||||||
|
};
|
||||||
|
HAL_UART_Receive( &huart2, sml_frame, 512, 2000 );
|
||||||
|
// HAL_UART_Transmit( &huart1, sml_frame, 512, HAL_MAX_DELAY );
|
||||||
|
for(int i = 0; i < 512; i++){
|
||||||
|
readByte( &sml_frame[i] );
|
||||||
|
};
|
||||||
|
// debug_str( "\r\n" );
|
||||||
|
|
||||||
|
os_setTimedCallback(j, os_getTime()+sec2osticks(10), testfunc);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////
|
//////////////////////////////////////////////////
|
||||||
// LMIC EVENT CALLBACK
|
// LMIC EVENT CALLBACK
|
||||||
//////////////////////////////////////////////////
|
//////////////////////////////////////////////////
|
||||||
@ -415,7 +433,7 @@ int main(void)
|
|||||||
// setup initial job
|
// setup initial job
|
||||||
os_setCallback(&initjob, initfunc);
|
os_setCallback(&initjob, initfunc);
|
||||||
// execute scheduled jobs and events
|
// execute scheduled jobs and events
|
||||||
// os_setTimedCallback(&testjob, os_getTime()+sec2osticks(1), testfunc);
|
os_setTimedCallback(&testjob, os_getTime()+sec2osticks(10), testfunc);
|
||||||
// os_setTimedCallback(&reportjob, os_getTime()+sec2osticks(300), reportfunc);
|
// os_setTimedCallback(&reportjob, os_getTime()+sec2osticks(300), reportfunc);
|
||||||
os_runloop();
|
os_runloop();
|
||||||
// (not reached)
|
// (not reached)
|
||||||
@ -717,7 +735,9 @@ static void MX_USART2_UART_Init(void)
|
|||||||
huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
||||||
huart2.Init.OverSampling = UART_OVERSAMPLING_16;
|
huart2.Init.OverSampling = UART_OVERSAMPLING_16;
|
||||||
huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
|
huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
|
||||||
huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
|
huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_RXOVERRUNDISABLE_INIT|UART_ADVFEATURE_DMADISABLEONERROR_INIT;
|
||||||
|
huart2.AdvancedInit.OverrunDisable = UART_ADVFEATURE_OVERRUN_DISABLE;
|
||||||
|
huart2.AdvancedInit.DMADisableonRxError = UART_ADVFEATURE_DMA_DISABLEONRXERROR;
|
||||||
if (HAL_UART_Init(&huart2) != HAL_OK)
|
if (HAL_UART_Init(&huart2) != HAL_OK)
|
||||||
{
|
{
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
|
@ -273,12 +273,19 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
|
|||||||
PB6 ------> USART1_TX
|
PB6 ------> USART1_TX
|
||||||
PB7 ------> USART1_RX
|
PB7 ------> USART1_RX
|
||||||
*/
|
*/
|
||||||
GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
|
GPIO_InitStruct.Pin = USART1_TX_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
||||||
GPIO_InitStruct.Alternate = GPIO_AF0_USART1;
|
GPIO_InitStruct.Alternate = GPIO_AF0_USART1;
|
||||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
HAL_GPIO_Init(USART1_TX_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
GPIO_InitStruct.Pin = USART1_RX_Pin;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF0_USART1;
|
||||||
|
HAL_GPIO_Init(USART1_RX_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
/* USER CODE BEGIN USART1_MspInit 1 */
|
/* USER CODE BEGIN USART1_MspInit 1 */
|
||||||
|
|
||||||
@ -297,12 +304,19 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
|
|||||||
PA2 ------> USART2_TX
|
PA2 ------> USART2_TX
|
||||||
PA3 ------> USART2_RX
|
PA3 ------> USART2_RX
|
||||||
*/
|
*/
|
||||||
GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
|
GPIO_InitStruct.Pin = USART2_TX_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
||||||
GPIO_InitStruct.Alternate = GPIO_AF4_USART2;
|
GPIO_InitStruct.Alternate = GPIO_AF4_USART2;
|
||||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
HAL_GPIO_Init(USART2_TX_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
GPIO_InitStruct.Pin = USART2_RX_Pin;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF4_USART2;
|
||||||
|
HAL_GPIO_Init(USART2_RX_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
/* USER CODE BEGIN USART2_MspInit 1 */
|
/* USER CODE BEGIN USART2_MspInit 1 */
|
||||||
|
|
||||||
@ -331,7 +345,7 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
|
|||||||
PB6 ------> USART1_TX
|
PB6 ------> USART1_TX
|
||||||
PB7 ------> USART1_RX
|
PB7 ------> USART1_RX
|
||||||
*/
|
*/
|
||||||
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6|GPIO_PIN_7);
|
HAL_GPIO_DeInit(GPIOB, USART1_TX_Pin|USART1_RX_Pin);
|
||||||
|
|
||||||
/* USER CODE BEGIN USART1_MspDeInit 1 */
|
/* USER CODE BEGIN USART1_MspDeInit 1 */
|
||||||
|
|
||||||
@ -349,7 +363,7 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
|
|||||||
PA2 ------> USART2_TX
|
PA2 ------> USART2_TX
|
||||||
PA3 ------> USART2_RX
|
PA3 ------> USART2_RX
|
||||||
*/
|
*/
|
||||||
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
|
HAL_GPIO_DeInit(GPIOA, USART2_TX_Pin|USART2_RX_Pin);
|
||||||
|
|
||||||
/* USER CODE BEGIN USART2_MspDeInit 1 */
|
/* USER CODE BEGIN USART2_MspDeInit 1 */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user