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 */
|
||||
RTC_HandleTypeDef hrtc;
|
||||
|
||||
TIM_HandleTypeDef htim2;
|
||||
|
||||
SPI_HandleTypeDef hspi1;
|
||||
|
||||
TIM_HandleTypeDef htim2;
|
||||
|
||||
UART_HandleTypeDef huart1;
|
||||
UART_HandleTypeDef huart2;
|
||||
|
||||
/* USER CODE END ET */
|
||||
|
||||
/* Exported constants --------------------------------------------------------*/
|
||||
@ -66,6 +67,10 @@ void Error_Handler(void);
|
||||
/* Private defines -----------------------------------------------------------*/
|
||||
#define LED_Pin GPIO_PIN_1
|
||||
#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_GPIO_Port GPIOA
|
||||
#define RST_Pin GPIO_PIN_9
|
||||
@ -79,6 +84,11 @@ void Error_Handler(void);
|
||||
#define DIO2_Pin GPIO_PIN_5
|
||||
#define DIO2_GPIO_Port GPIOB
|
||||
#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 END Private defines */
|
||||
|
44
src/main.c
44
src/main.c
@ -41,7 +41,7 @@
|
||||
/* Private define ------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN PD */
|
||||
|
||||
#define BUFFER_SIZE 2048
|
||||
#define BUFFER_SIZE 1024
|
||||
|
||||
/* USER CODE END PD */
|
||||
|
||||
@ -70,6 +70,8 @@ static void MX_RTC_Init(void);
|
||||
/* Private user code ---------------------------------------------------------*/
|
||||
/* USER CODE BEGIN 0 */
|
||||
|
||||
uint8_t sml_frame[BUFFER_SIZE];
|
||||
|
||||
double T1Wh = -2, SumWh = -2;
|
||||
|
||||
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 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;
|
||||
}
|
||||
|
||||
@ -269,7 +263,7 @@ static void reportfunc (osjob_t* j) {
|
||||
// read sensor
|
||||
u2_t val = readsensor();
|
||||
// debug_int( os_getTime() );
|
||||
debug_val(": val = ", val);
|
||||
debug_val("val = ", val);
|
||||
// prepare and schedule data for transmission
|
||||
LMIC.frame[0] = val << 8;
|
||||
LMIC.frame[1] = val;
|
||||
@ -278,6 +272,30 @@ static void reportfunc (osjob_t* j) {
|
||||
// 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
|
||||
//////////////////////////////////////////////////
|
||||
@ -415,7 +433,7 @@ int main(void)
|
||||
// setup initial job
|
||||
os_setCallback(&initjob, initfunc);
|
||||
// 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_runloop();
|
||||
// (not reached)
|
||||
@ -717,7 +735,9 @@ static void MX_USART2_UART_Init(void)
|
||||
huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
||||
huart2.Init.OverSampling = UART_OVERSAMPLING_16;
|
||||
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)
|
||||
{
|
||||
Error_Handler();
|
||||
|
@ -273,12 +273,19 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
|
||||
PB6 ------> USART1_TX
|
||||
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.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
||||
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 */
|
||||
|
||||
@ -297,12 +304,19 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
|
||||
PA2 ------> USART2_TX
|
||||
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.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
||||
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 */
|
||||
|
||||
@ -331,7 +345,7 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
|
||||
PB6 ------> USART1_TX
|
||||
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 */
|
||||
|
||||
@ -349,7 +363,7 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
|
||||
PA2 ------> USART2_TX
|
||||
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 */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user