design first screen
parent
7683663759
commit
2ac0af3fea
|
@ -4,7 +4,7 @@
|
|||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
|
||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider class="com.atollic.truestudio.mbs.GCCSpecsDetectorAtollicArm" console="false" env-hash="-1375347280474830385" id="com.atollic.truestudio.mbs.provider" keep-relative-paths="false" name="Atollic ARM Tools Language Settings" parameter="${COMMAND} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<provider class="com.atollic.truestudio.mbs.GCCSpecsDetectorAtollicArm" console="false" env-hash="1761414022695062209" id="com.atollic.truestudio.mbs.provider" keep-relative-paths="false" name="Atollic ARM Tools Language Settings" parameter="${COMMAND} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
|
@ -14,7 +14,7 @@
|
|||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
|
||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider class="com.atollic.truestudio.mbs.GCCSpecsDetectorAtollicArm" console="false" env-hash="-1375347280474830385" id="com.atollic.truestudio.mbs.provider" keep-relative-paths="false" name="Atollic ARM Tools Language Settings" parameter="${COMMAND} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<provider class="com.atollic.truestudio.mbs.GCCSpecsDetectorAtollicArm" console="false" env-hash="1761414022695062209" id="com.atollic.truestudio.mbs.provider" keep-relative-paths="false" name="Atollic ARM Tools Language Settings" parameter="${COMMAND} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
|
|
|
@ -4,28 +4,39 @@
|
|||
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.device" value="STM32F446RE"/>
|
||||
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.endian" value="little"/>
|
||||
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.init_speed" value="4000"/>
|
||||
<booleanAttribute key="com.atollic.hardwaredebug.jlink_common.jlink_check_serial_number" value="true"/>
|
||||
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.jlink_script_path" value=""/>
|
||||
<booleanAttribute key="com.atollic.hardwaredebug.jlink_common.jlink_script_used" value="false"/>
|
||||
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.jlink_txt_serial_number" value="51006446"/>
|
||||
<booleanAttribute key="com.atollic.hardwaredebug.jlink_common.scan_chain_auto" value="true"/>
|
||||
<intAttribute key="com.atollic.hardwaredebug.jlink_common.scan_chain_irpre" value="0"/>
|
||||
<intAttribute key="com.atollic.hardwaredebug.jlink_common.scan_chain_pos" value="0"/>
|
||||
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.selected_rtos" value="No RTOS"/>
|
||||
<stringAttribute key="com.atollic.hardwaredebug.launch.analyzeCommands" value="# Set flash parallelism mode to 32, 16, or 8 bit when using STM32 F2/F4 microcontrollers # 2=32 bit, 1=16 bit and 0=8 bit parallelism mode monitor flash set_parallelism_mode 2 # Load the program executable load		 # Enable Debug connection in low power modes (DBGMCU->CR) set *0xE0042004 = (*0xE0042004) | 0x7 # Start the executable continue"/>
|
||||
<booleanAttribute key="com.atollic.hardwaredebug.launch.enable_swv" value="false"/>
|
||||
<intAttribute key="com.atollic.hardwaredebug.launch.formatVersion" value="2"/>
|
||||
<stringAttribute key="com.atollic.hardwaredebug.launch.hwinitCommands" value="# Initialize your hardware here "/>
|
||||
<stringAttribute key="com.atollic.hardwaredebug.launch.ipAddress" value="localhost"/>
|
||||
<stringAttribute key="com.atollic.hardwaredebug.launch.jtagDevice" value="ST-LINK"/>
|
||||
<intAttribute key="com.atollic.hardwaredebug.launch.portNumber" value="61234"/>
|
||||
<stringAttribute key="com.atollic.hardwaredebug.launch.remoteCommand" value="target extended-remote"/>
|
||||
<stringAttribute key="com.atollic.hardwaredebug.launch.runCommands" value="# Set flash parallelism mode to 32, 16, or 8 bit when using STM32 F2/F4 microcontrollers # 2=32 bit, 1=16 bit and 0=8 bit parallelism mode monitor flash set_parallelism_mode 2 # Load the program executable load		 # Enable Debug connection in low power modes (DBGMCU->CR) set *0xE0042004 = (*0xE0042004) | 0x7 # Set a breakpoint at main(). tbreak main # Run to the breakpoint. continue"/>
|
||||
<stringAttribute key="com.atollic.hardwaredebug.launch.serverParam" value="-p 61234 -l 1 -d"/>
|
||||
<stringAttribute key="com.atollic.hardwaredebug.launch.runCommands" value="# Set flash parallelism mode to 32, 16, or 8 bit when using STM32 F2/F4 microcontrollers # Uncomment next line, 2=32 bit, 1=16 bit and 0=8 bit parallelism mode #monitor flash set_parallelism_mode 2 # Set character encoding set host-charset CP1252 set target-charset CP1252 # Reset to known state monitor reset # Load the program executable load		 # Reset the chip to get to a known state. Remove "monitor reset" command # if the code is not located at default address and does not run by reset. monitor reset # Enable Debug connection in low power modes (DBGMCU->CR) set *0xE0042004 = (*0xE0042004) | 0x7 # Set a breakpoint at main(). tbreak main # Run to the breakpoint. continue"/>
|
||||
<stringAttribute key="com.atollic.hardwaredebug.launch.serverParam" value="-p 61234 -l 1 -d -s -i 0666FF525171494867103125 -cp "C:\Program Files (x86)\Atollic\TrueSTUDIO for STM32 9.1.0\Servers\STM32CubeProgrammer\bin""/>
|
||||
<booleanAttribute key="com.atollic.hardwaredebug.launch.startServer" value="true"/>
|
||||
<booleanAttribute key="com.atollic.hardwaredebug.launch.swd_mode" value="true"/>
|
||||
<stringAttribute key="com.atollic.hardwaredebug.launch.swv_port" value="61235"/>
|
||||
<stringAttribute key="com.atollic.hardwaredebug.launch.swv_trace_div" value="120"/>
|
||||
<stringAttribute key="com.atollic.hardwaredebug.launch.swv_trace_hclk" value="120000000"/>
|
||||
<stringAttribute key="com.atollic.hardwaredebug.launch.swv_trace_div" value="8"/>
|
||||
<stringAttribute key="com.atollic.hardwaredebug.launch.swv_trace_hclk" value="8000000"/>
|
||||
<booleanAttribute key="com.atollic.hardwaredebug.launch.swv_wait_for_sync" value="true"/>
|
||||
<intAttribute key="com.atollic.hardwaredebug.launch.trace_system" value="0"/>
|
||||
<booleanAttribute key="com.atollic.hardwaredebug.launch.useRemoteTarget" value="true"/>
|
||||
<stringAttribute key="com.atollic.hardwaredebug.launch.verifyCommands" value="# Set flash parallelism mode to 32, 16, or 8 bit when using STM32 F2/F4 microcontrollers # 2=32 bit, 1=16 bit and 0=8 bit parallelism mode monitor flash set_parallelism_mode 2 # Load the program executable load		 # Enable Debug connection in low power modes (DBGMCU->CR) set *0xE0042004 = (*0xE0042004) | 0x7 # The executable starts automatically"/>
|
||||
<booleanAttribute key="com.atollic.hardwaredebug.launch.verify_flash_download" value="true"/>
|
||||
<booleanAttribute key="com.atollic.hardwaredebug.stlink.enable_external_loader" value="false"/>
|
||||
<booleanAttribute key="com.atollic.hardwaredebug.stlink.enable_logging" value="false"/>
|
||||
<stringAttribute key="com.atollic.hardwaredebug.stlink.log_file" value="D:/My Work/A1210/\Debug\st-link_gdbserver_log.txt"/>
|
||||
<stringAttribute key="com.atollic.hardwaredebug.stlink.external_loader" value=""/>
|
||||
<stringAttribute key="com.atollic.hardwaredebug.stlink.log_file" value="C:\Users\Limin\Desktop\A1210\Debug\st-link_gdbserver_log.txt"/>
|
||||
<booleanAttribute key="com.atollic.hardwaredebug.stlink.stlink_check_serial_number" value="true"/>
|
||||
<stringAttribute key="com.atollic.hardwaredebug.stlink.stlink_txt_serial_number" value="0666FF525171494867103125"/>
|
||||
<booleanAttribute key="com.atollic.hardwaredebug.stlink.verify_flash" value="false"/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.mi.core.DEBUG_NAME" value="${TOOLCHAIN_PATH}/arm-atollic-eabi-gdb"/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.mi.core.commandFactory" value="Standard (Windows)"/>
|
||||
|
@ -33,8 +44,10 @@
|
|||
<booleanAttribute key="org.eclipse.cdt.debug.mi.core.verboseMode" value="false"/>
|
||||
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="${TOOLCHAIN_PATH}/arm-atollic-eabi-gdb"/>
|
||||
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Debug/A1210.elf"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="A1210"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="false"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value=""/>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/A1210"/>
|
||||
|
|
|
@ -64,7 +64,7 @@ void Error_Handler(void);
|
|||
#define STD_GPIO_Port GPIOC
|
||||
#define SCK_Pin GPIO_PIN_2
|
||||
#define SCK_GPIO_Port GPIOC
|
||||
#define ON_Pin GPIO_PIN_3
|
||||
#define ON_Pin GPIO_PIN_4 //Áûë3
|
||||
#define ON_GPIO_Port GPIOC
|
||||
#define OFF_Pin GPIO_PIN_2
|
||||
#define OFF_GPIO_Port GPIOA
|
||||
|
@ -106,6 +106,8 @@ void Error_Handler(void);
|
|||
|
||||
/* USER CODE END Private defines */
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -22,11 +22,11 @@
|
|||
#include "string.h"
|
||||
|
||||
|
||||
#define LOGO_TIME_MS (3000u)
|
||||
#define LOGO_TIME_MS (500u)
|
||||
#define lo(x) ((uint8_t) ((x) & 0xFF))
|
||||
#define hi(x) ((uint8_t) (((x) >> 8) & 0xFF))
|
||||
|
||||
|
||||
#define ABS(x) (((x) < 0)?-(x) :(x))
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -10,12 +10,12 @@
|
|||
// Choose a microcontroller family
|
||||
//#define STM32F0
|
||||
//#define STM32F1
|
||||
//#define STM32F4
|
||||
#define STM32F4
|
||||
//#define STM32L0
|
||||
//#define STM32L4
|
||||
//#define STM32F3
|
||||
//#define STM32H7
|
||||
#define STM32F7
|
||||
//#define STM32F7
|
||||
|
||||
// Choose a bus
|
||||
//#define SSD1306_USE_I2C
|
||||
|
@ -26,14 +26,14 @@
|
|||
//#define SSD1306_I2C_ADDR (0x3C << 1)
|
||||
|
||||
// SPI Configuration
|
||||
#define SSD1306_SPI_PORT hspi2
|
||||
#define SSD1306_SPI_PORT hspi1
|
||||
|
||||
#define SSD1306_CS_Port GPIOC
|
||||
#define SSD1306_CS_Pin GPIO_PIN_7
|
||||
#define SSD1306_DC_Port GPIOC
|
||||
#define SSD1306_DC_Pin GPIO_PIN_2
|
||||
#define SSD1306_Reset_Port GPIOC
|
||||
#define SSD1306_Reset_Pin GPIO_PIN_8
|
||||
#define SSD1306_CS_Port GPIOA
|
||||
#define SSD1306_CS_Pin GPIO_PIN_8
|
||||
#define SSD1306_DC_Port GPIOA
|
||||
#define SSD1306_DC_Pin GPIO_PIN_6
|
||||
#define SSD1306_Reset_Port GPIOA
|
||||
#define SSD1306_Reset_Pin GPIO_PIN_12
|
||||
|
||||
// Mirror the screen if needed
|
||||
// #define SSD1306_MIRROR_VERT
|
||||
|
|
340
Core/Src/main.c
340
Core/Src/main.c
|
@ -25,33 +25,25 @@
|
|||
#include "tim.h"
|
||||
#include "usart.h"
|
||||
#include "gpio.h"
|
||||
#include "OLED_Fonts.h"
|
||||
#include "string.h"
|
||||
#include <math.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include "my.h"
|
||||
|
||||
/* Private includes ----------------------------------------------------------*/
|
||||
/* USER CODE BEGIN Includes */
|
||||
#include "ssd1306.h"
|
||||
|
||||
/* USER CODE END Includes */
|
||||
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
/* USER CODE BEGIN PTD */
|
||||
__IO uint16_t repeat = 0;
|
||||
volatile int needRefresh; ///
|
||||
|
||||
/* USER CODE END PTD */
|
||||
typedef enum
|
||||
{
|
||||
CURSOR = Black,
|
||||
TEXT = White
|
||||
}typeTEXT;
|
||||
|
||||
/* Private define ------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN PD */
|
||||
/* USER CODE END PD */
|
||||
|
||||
/* Private macro -------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN PM */
|
||||
|
||||
/* USER CODE END PM */
|
||||
|
||||
/* Private variables ---------------------------------------------------------*/
|
||||
|
||||
/* USER CODE BEGIN PV */
|
||||
|
||||
/* USER CODE END PV */
|
||||
|
||||
/* Private function prototypes -----------------------------------------------*/
|
||||
void SystemClock_Config(void);
|
||||
/* USER CODE BEGIN PFP */
|
||||
|
||||
|
@ -66,11 +58,266 @@ void SystemClock_Config(void);
|
|||
* @brief The application entry point.
|
||||
* @retval int
|
||||
*/
|
||||
|
||||
|
||||
|
||||
//0,2; 1; 2; 10 ôâ÷
|
||||
//0,1; 0,3; 1; 3; 10; 30; 100 ôí÷
|
||||
|
||||
|
||||
typedef struct {
|
||||
int kPr;
|
||||
int kExit;
|
||||
int FVCH;
|
||||
int FNCH;
|
||||
} set_type;
|
||||
|
||||
|
||||
char pString[16] = {0};
|
||||
|
||||
char* FloatToASCII(float Val, int32_t RoundTo)
|
||||
{
|
||||
uint8_t idx = 0;
|
||||
int32_t i;
|
||||
float value, F, I;
|
||||
uint32_t rnd = 0;
|
||||
|
||||
uint32_t Tmp32 = 0;
|
||||
uint32_t Int32 = 0;
|
||||
uint32_t Frac32 = 0;
|
||||
uint32_t _I32 = 0;
|
||||
uint32_t _F32 = 0;
|
||||
uint32_t d = 0, dd = 0;
|
||||
char tmparray[32];
|
||||
volatile bool minus = false;
|
||||
|
||||
|
||||
|
||||
memset(tmparray, 0, 32);
|
||||
memset(pString, 0, 16);
|
||||
|
||||
value = Val;
|
||||
if(value < 0)
|
||||
minus = true;
|
||||
|
||||
if((Val >= 10000.00000f)/* || (Val <= 0)*/)
|
||||
{
|
||||
if(Val <= 0)
|
||||
{
|
||||
pString[0] = '0';
|
||||
pString[1] = '~';
|
||||
pString[2] = '0';
|
||||
pString[3] = '\0';
|
||||
}
|
||||
else
|
||||
{
|
||||
pString[0] = '1';
|
||||
pString[1] = '0';
|
||||
pString[2] = '0';
|
||||
pString[3] = '0';
|
||||
pString[4] = '0';
|
||||
pString[5] = '\0';
|
||||
}
|
||||
|
||||
return pString;
|
||||
}
|
||||
|
||||
value = ABS(Val);
|
||||
rnd = ABS(RoundTo);
|
||||
if(RoundTo < 0)
|
||||
{
|
||||
F = modff(value, &I);
|
||||
while(rnd)
|
||||
{
|
||||
F *= 10.0f;
|
||||
rnd--;
|
||||
d++;
|
||||
}
|
||||
F = roundf(F);
|
||||
|
||||
dd = 1;
|
||||
for(i = 0; i < d; i++)
|
||||
dd *= 10;
|
||||
|
||||
if((uint32_t) F == dd)
|
||||
{
|
||||
F = 0;
|
||||
I += 1;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
I = roundf(value);
|
||||
F = 0.0f;
|
||||
}
|
||||
|
||||
Int32 = (uint32_t) I;
|
||||
Frac32 = (uint32_t) F;
|
||||
_I32 = Int32;
|
||||
_F32 = Frac32;
|
||||
|
||||
|
||||
idx = 0;
|
||||
tmparray[idx++] = '\0';
|
||||
if((Int32 == 0) && (Frac32 == 0))
|
||||
{
|
||||
if(RoundTo < 0)
|
||||
{
|
||||
for(i = 0; i < abs(RoundTo); i++)
|
||||
tmparray[idx++] = '0';
|
||||
tmparray[idx++] = '~';
|
||||
}
|
||||
tmparray[idx++] = '0';
|
||||
}
|
||||
else
|
||||
{
|
||||
if(RoundTo < 0)
|
||||
{
|
||||
for(i = 0; i < abs(RoundTo); i++)
|
||||
{
|
||||
Tmp32 = Frac32;
|
||||
Frac32 /= 10;
|
||||
Tmp32 = Tmp32 - Frac32 * 10;
|
||||
tmparray[idx++] = '0' + Tmp32;
|
||||
}
|
||||
tmparray[idx++] = '~';
|
||||
}
|
||||
|
||||
if(Int32 != 0)
|
||||
{
|
||||
while(Int32)
|
||||
{
|
||||
Tmp32 = Int32;
|
||||
Int32 /= 10;
|
||||
Tmp32 = Tmp32 - Int32 * 10;
|
||||
tmparray[idx++] = '0' + Tmp32;
|
||||
}
|
||||
}
|
||||
else
|
||||
tmparray[idx++] = '0';
|
||||
|
||||
if(minus)
|
||||
{
|
||||
if((_I32 != 0) || (_F32 != 0))
|
||||
tmparray[idx++] = '-';
|
||||
}
|
||||
}
|
||||
|
||||
for(i = 0; i < idx; i++)
|
||||
pString[i] = tmparray[idx - i - 1];
|
||||
|
||||
return pString;
|
||||
}
|
||||
|
||||
|
||||
uint16_t readkey(void)
|
||||
{
|
||||
uint16_t key = 0;
|
||||
|
||||
if(HAL_GPIO_ReadPin(OK_BTN_GPIO_Port, OK_BTN_Pin) == GPIO_PIN_RESET)
|
||||
key |= OK_BTN_Pin;
|
||||
if(HAL_GPIO_ReadPin(UP_BTN_GPIO_Port, UP_BTN_Pin) == GPIO_PIN_RESET)
|
||||
key |= UP_BTN_Pin;
|
||||
if(HAL_GPIO_ReadPin(DN_BTN_GPIO_Port, DN_BTN_Pin) == GPIO_PIN_RESET)
|
||||
key |= DN_BTN_Pin;
|
||||
if(HAL_GPIO_ReadPin(ON_GPIO_Port, ON_Pin) == GPIO_PIN_RESET)
|
||||
key |= ON_Pin;
|
||||
|
||||
return key;
|
||||
}
|
||||
|
||||
|
||||
uint16_t kbhit(void)
|
||||
{
|
||||
volatile uint16_t key;
|
||||
static uint32_t dreb = 0; //äðåáåçã
|
||||
static uint8_t first = 1; //ïðèçíàê ïåðâîãî ìîìåíòà íàæàòèÿ êíîïêè
|
||||
static uint16_t rep = 50;
|
||||
|
||||
do
|
||||
{
|
||||
key = readkey();
|
||||
|
||||
if(!key)
|
||||
{
|
||||
if(dreb)
|
||||
dreb--;
|
||||
else first = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(dreb < 3)
|
||||
dreb++;
|
||||
}
|
||||
}
|
||||
while((dreb > 0) && (dreb < 3));
|
||||
|
||||
|
||||
|
||||
if(!key) //åñëè êíîïêè îòïóùåíû
|
||||
{
|
||||
first = 1; //äîñòîâåðíî êíîïêè îòïóùåíû
|
||||
return 0; //âåðíóòü 0
|
||||
}
|
||||
else //èíà÷å
|
||||
{
|
||||
if(first) //îïðåäåëèòü êíîïêó
|
||||
{ //òîëüêî îäèí ðàç
|
||||
first = 0; //çà íàæàòèå
|
||||
repeat = rep = 32;
|
||||
return key; //âåðíóòü â ãëàâíóþ ôóíêöèþ ñîñòîÿíèå êëàâèàòóðû
|
||||
}
|
||||
else
|
||||
{
|
||||
if(repeat)
|
||||
return 0; //èìèòàöèÿ ñâîáîäíîé êëàâèàòóðû
|
||||
else
|
||||
{
|
||||
if(rep > 0)
|
||||
rep >>= 1;
|
||||
else rep = 32;
|
||||
|
||||
repeat = rep;
|
||||
// if(key == KEY_RESET_Pin)
|
||||
// return 0;
|
||||
|
||||
|
||||
return key;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const float exitVar[] = {0.1, 0,2, 0,5, 1, 2, 5, 10, 20, 50, 100, 200, 500};
|
||||
const float fvchVar[] = {0.2, 1, 2, 10};
|
||||
const float fnchVar[] = {0.1, 0.3, 1, 3, 10, 30, 100};
|
||||
|
||||
const char string11[] = "Rgh";
|
||||
const char string12[] = "gRk/vc2";
|
||||
|
||||
const char string21[] = "Ds[jl";
|
||||
const char string22[] = "vD/vc2";
|
||||
|
||||
const char string31[] = "ADX";
|
||||
const char string32[] = "Uw";
|
||||
|
||||
const char string41[] = "AYX";
|
||||
const char string42[] = "rUw";
|
||||
|
||||
const char string51[] = "Gthtuheprf!!!";
|
||||
|
||||
int main(void)
|
||||
{
|
||||
set_type set;
|
||||
set.kPr = 22222;
|
||||
set.kExit =22222;
|
||||
set.FVCH=22222;
|
||||
set.FNCH=22222;
|
||||
|
||||
|
||||
HAL_Init();
|
||||
SystemClock_Config();
|
||||
|
||||
MX_FLASH_Init();
|
||||
MX_GPIO_Init();
|
||||
MX_DMA_Init();
|
||||
|
@ -80,9 +327,56 @@ int main(void)
|
|||
MX_TIM7_Init();
|
||||
MX_USART1_UART_Init();
|
||||
|
||||
|
||||
/////Ìîé êîä çäåñü
|
||||
|
||||
|
||||
ssd1306_Init();
|
||||
DrawLogo();
|
||||
HAL_Delay(100);
|
||||
ssd1306_Fill(Black);
|
||||
ssd1306_UpdateScreen();
|
||||
ssd1306_SetCursor(0, 7);
|
||||
|
||||
while (1)
|
||||
{
|
||||
FontSet(Segoe_UI_Rus_8);
|
||||
OLED_DrawStr(string11, 1, 10, TEXT);
|
||||
OLED_DrawStr(FloatToASCII(2.45f, -3), 40, 10, TEXT);
|
||||
// OLED_DrawStr(FloatToASCII(2.45f, 0), 40, 10, TEXT);
|
||||
// OLED_DrawNum(set.kPr, 40, 10, TEXT);
|
||||
OLED_DrawStr(string12, 80, 10, TEXT);
|
||||
////////////////////////////
|
||||
OLED_DrawStr(string21, 1, 20, TEXT);
|
||||
OLED_DrawNum(set.kExit, 40, 20, CURSOR);
|
||||
OLED_DrawStr(string22, 80, 20, TEXT);
|
||||
////////////////////////////
|
||||
OLED_DrawStr(string31, 2, 30, TEXT);
|
||||
OLED_DrawNum(set.FVCH, 40, 30, TEXT);
|
||||
OLED_DrawStr(string32, 80, 30, TEXT);
|
||||
//////////////
|
||||
OLED_DrawStr(string41, 2, 40, TEXT);
|
||||
OLED_DrawNum(set.FNCH, 40, 40, TEXT);
|
||||
OLED_DrawStr(string42, 80, 40, TEXT);
|
||||
//////////////
|
||||
OLED_DrawStr(string51, 30, 50, TEXT);
|
||||
|
||||
|
||||
//OLED_DrawChar("n", 4, 4, TEXT);
|
||||
|
||||
|
||||
|
||||
//if(readkey()==OK_BTN_Pin) OLED_DrawStr("jr", 255, 8, White);
|
||||
//if(readkey()==DN_BTN_Pin) OLED_DrawStr("dybp", 255, 20, White);
|
||||
//if(readkey()==UP_BTN_Pin) OLED_DrawStr("ddth[", 255, 32, White);
|
||||
//if(readkey()==ON_Pin) OLED_DrawStr("drk", 255, 44, White);
|
||||
//HAL_Delay(300);
|
||||
// ssd1306_Fill(Black);
|
||||
//; //
|
||||
//OLED_DrawStr("Ds[jl", 255, 20, White); //
|
||||
//OLED_DrawStr("adx", 255, 32, White); // Modbus
|
||||
//OLED_DrawStr("ayx", 255, 44, White);
|
||||
needRefresh=1;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -77,13 +77,19 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle)
|
|||
PA6 ------> SPI1_MISO
|
||||
PA7 ------> SPI1_MOSI
|
||||
*/
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7;
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_5|/*GPIO_PIN_6|*/GPIO_PIN_7;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
|
||||
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_6;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
/* USER CODE BEGIN SPI1_MspInit 1 */
|
||||
|
||||
/* USER CODE END SPI1_MspInit 1 */
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
extern __IO bool por;
|
||||
extern __IO bool clbr;
|
||||
extern const char SERIAL[];
|
||||
const char SERIAL[] ={'0','2','3'};
|
||||
extern __IO UserData_TypeDef pardata, pardata_old;
|
||||
|
||||
__IO uint8_t DMA_Ready = 0;
|
||||
|
|
|
@ -22,6 +22,8 @@
|
|||
|
||||
/* USER CODE BEGIN 0 */
|
||||
|
||||
extern int needRefresh;
|
||||
|
||||
/* USER CODE END 0 */
|
||||
|
||||
TIM_HandleTypeDef htim3;
|
||||
|
@ -96,7 +98,7 @@ void MX_TIM7_Init(void)
|
|||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN TIM7_Init 2 */
|
||||
|
||||
HAL_TIM_Base_Start_IT(&htim7);
|
||||
/* USER CODE END TIM7_Init 2 */
|
||||
|
||||
}
|
||||
|
@ -163,6 +165,14 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
|
|||
}
|
||||
|
||||
/* USER CODE BEGIN 1 */
|
||||
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
|
||||
{
|
||||
|
||||
if(needRefresh==1) {//ssd1306_Fill(0x00);
|
||||
ssd1306_UpdateScreen();
|
||||
needRefresh=0;
|
||||
}
|
||||
}
|
||||
|
||||
/* USER CODE END 1 */
|
||||
|
||||
|
|
Loading…
Reference in New Issue