conflict fix

This commit is contained in:
IllusionLee
2019-10-08 10:48:58 +08:00
19 changed files with 210 additions and 107 deletions

View File

@@ -1,4 +1,5 @@
#include "tos.h" #include <tos_compiler.h>
#include <tos_ktypes.h>
#define ECLIC_ADDR_BASE 0xD2000000 #define ECLIC_ADDR_BASE 0xD2000000
#define CLIC_INT_TMR 0x07 #define CLIC_INT_TMR 0x07
@@ -18,18 +19,18 @@
#define ECLIC_CFG_NLBITS_LSB 1 #define ECLIC_CFG_NLBITS_LSB 1
static uint8_t elci_get_clic_int_ctl_bits() { static uint8_t eclic_get_clic_int_ctl_bits() {
uint32_t bits = *(volatile uint32_t*)(ECLIC_ADDR_BASE+ECLIC_INFO_OFFSET); uint32_t bits = *(volatile uint32_t*)(ECLIC_ADDR_BASE+ECLIC_INFO_OFFSET);
bits >>= 21; bits >>= 21;
return (uint8_t) bits; return (uint8_t) bits;
} }
static uint8_t elci_get_nlbits() { static uint8_t eclic_get_nlbits() {
uint8_t nlbits = *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_CFG_OFFSET); uint8_t nlbits = *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_CFG_OFFSET);
nlbits = (nlbits & ECLIC_CFG_NLBITS_MASK) >> ECLIC_CFG_NLBITS_LSB; nlbits = (nlbits & ECLIC_CFG_NLBITS_MASK) >> ECLIC_CFG_NLBITS_LSB;
uint8_t cicbits = elci_get_clic_int_ctl_bits(); uint8_t cicbits = eclic_get_clic_int_ctl_bits();
if(nlbits > cicbits) { if(nlbits > cicbits) {
nlbits = cicbits; nlbits = cicbits;
} }
@@ -51,7 +52,7 @@ static void eclic_enable_interrupt(uint32_t source) {
} }
static void eclic_set_irq_level(uint32_t source, uint8_t level) { static void eclic_set_irq_level(uint32_t source, uint8_t level) {
uint8_t nlbits = elci_get_nlbits(); uint8_t nlbits = eclic_get_nlbits();
if (nlbits == 0) { if (nlbits == 0) {
return ; return ;
@@ -67,8 +68,8 @@ static void eclic_set_irq_level(uint32_t source, uint8_t level) {
} }
static void eclic_set_irq_priority(uint32_t source, uint8_t priority) { static void eclic_set_irq_priority(uint32_t source, uint8_t priority) {
uint8_t nlbits = elci_get_nlbits(); uint8_t nlbits = eclic_get_nlbits();
uint8_t cicbits= elci_get_clic_int_ctl_bits(); uint8_t cicbits= eclic_get_clic_int_ctl_bits();
if (nlbits >= cicbits) { if (nlbits >= cicbits) {
return ; return ;

View File

@@ -1,5 +1,4 @@
#include <tos.h> #include <tos.h>
#include <riscv_encoding.h>
#include <riscv_port.h> #include <riscv_port.h>
__KERNEL__ void cpu_systick_init(k_cycle_t cycle_per_tick) __KERNEL__ void cpu_systick_init(k_cycle_t cycle_per_tick)
@@ -107,7 +106,7 @@ __KERNEL__ k_stack_t *cpu_task_stk_init(void *entry,
regs->gp = (cpu_data_t)gp; // gp: global pointer regs->gp = (cpu_data_t)gp; // gp: global pointer
regs->a0 = (cpu_data_t)arg; // a0: argument regs->a0 = (cpu_data_t)arg; // a0: argument
regs->ra = (cpu_data_t)0xACE00ACE; // ra: return address regs->ra = (cpu_data_t)0xACE00ACE; // ra: return address
regs->mstatus = (cpu_data_t)(MSTATUS_MPP | MSTATUS_MPIE); // return to machine mode and enable interrupt regs->mstatus = (cpu_data_t)0x00001880; // return to machine mode and enable interrupt
regs->epc = (cpu_data_t)entry; regs->epc = (cpu_data_t)entry;

View File

@@ -1,5 +1,4 @@
#include <tos.h> #include <tos.h>
#include "riscv_encoding.h"
#include "riscv_port.h" #include "riscv_port.h"
__PORT__ void port_systick_config(uint32_t cycle_per_tick) __PORT__ void port_systick_config(uint32_t cycle_per_tick)

View File

@@ -15,8 +15,14 @@
.extern k_curr_task .extern k_curr_task
.extern k_next_task .extern k_next_task
#define MSTATUS_MIE 0x00000008
#define MSTATUS_MPP 0x00001800
#include "riscv_encoding.h" #define MIE_MTIE (1 << 7)
#define MIP_MTIP (1 << 7)
#define REGBYTES 4
.text .text
.align 2 .align 2
@@ -59,7 +65,6 @@ port_systick_pending_reset:
csrc mip, t0 csrc mip, t0
ret ret
#define REGBYTES 4
.macro SAVE_CONTEXT .macro SAVE_CONTEXT
addi sp, sp, -32*REGBYTES addi sp, sp, -32*REGBYTES

View File

@@ -0,0 +1,9 @@
#ifndef __MCU_INIT_H
#define __MCU_INIT_H
#include "gd32vf103.h"
#include "usart.h"
void board_init();
#endif //__MCU_INIT_H

View File

@@ -0,0 +1,10 @@
#ifndef __USART_H
#define __USART_H
#define USART0_GPIO_TX_PIN GPIO_PIN_9
#define USART0_GPIO_RX_PIN GPIO_PIN_10
#define USART0_GPIO_PORT GPIOA
void usart0_init(int baud);
#endif // __USART_H

View File

@@ -0,0 +1,12 @@
#include "mcu_init.h"
void board_init() {
SystemInit();
rcu_periph_clock_enable(RCU_GPIOA);
gpio_init(GPIOA, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_7);
gpio_bit_reset(GPIOA, GPIO_PIN_7);
}

View File

@@ -0,0 +1,28 @@
#include "gd32vf103.h"
#include "usart.h"
void usart0_init(int baud)
{
/* enable GPIO clock */
rcu_periph_clock_enable(RCU_GPIOA);
/* enable USART0 clock */
rcu_periph_clock_enable(RCU_USART0);
/* connect port to USART0_Tx */
gpio_init(USART0_GPIO_PORT, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, USART0_GPIO_TX_PIN);
/* connect port to USART0_Rx */
gpio_init(USART0_GPIO_PORT, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, USART0_GPIO_RX_PIN);
/* USART0 configure */
usart_deinit(USART0);
usart_baudrate_set(USART0, baud);
usart_word_length_set(USART0, USART_WL_8BIT);
usart_stop_bit_set(USART0, USART_STB_1BIT);
usart_parity_config(USART0, USART_PM_NONE);
usart_hardware_flow_rts_config(USART0, USART_RTS_DISABLE);
usart_hardware_flow_cts_config(USART0, USART_CTS_DISABLE);
usart_receive_config(USART0, USART_RECEIVE_ENABLE);
usart_transmit_config(USART0, USART_TRANSMIT_ENABLE);
usart_enable(USART0);
}

View File

@@ -1,27 +1,38 @@
#ifndef INC_TOS_CONFIG_H_ #ifndef INC_TOS_CONFIG_H_
#define INC_TOS_CONFIG_H_ #define INC_TOS_CONFIG_H_
#include "gd32vf103.h"
#include "stddef.h" #include "stddef.h"
#define TOS_CFG_TASK_PRIO_MAX 10u // 配置TencentOS tiny默认支持的最大优先级数量 // 配置TencentOS tiny默认支持的最大优先级数量
#define TOS_CFG_TASK_PRIO_MAX 10u
#define TOS_CFG_ROUND_ROBIN_EN 0u // 配置TencentOS tiny的内核是否开启时间片轮转 // 配置TencentOS tiny的内核是否开启时间片轮转
#define TOS_CFG_ROUND_ROBIN_EN 0u
#define TOS_CFG_OBJECT_VERIFY 0u // 配置TencentOS tiny是否校验指针合法 // 配置TencentOS tiny是否校验指针合法
#define TOS_CFG_OBJECT_VERIFY 0u
#define TOS_CFG_EVENT_EN 1u // TencentOS tiny 事件模块功能宏 // TencentOS tiny 事件模块功能宏
#define TOS_CFG_EVENT_EN 1u
#define TOS_CFG_MMHEAP_EN 1u // 配置TencentOS tiny是否开启动态内存模块 // 配置TencentOS tiny是否开启动态内存模块
#define TOS_CFG_MMHEAP_EN 1u
#define TOS_CFG_MMHEAP_POOL_SIZE 8192 // 配置TencentOS tiny动态内存池大小 // 配置TencentOS tiny动态内存池大小
#define TOS_CFG_MMHEAP_POOL_SIZE 8192
#define TOS_CFG_MUTEX_EN 1u // 配置TencentOS tiny是否开启互斥锁模块 // 配置TencentOS tiny是否开启互斥锁模块
#define TOS_CFG_MUTEX_EN 1u
#define TOS_CFG_QUEUE_EN 1u // 配置TencentOS tiny是否开启队列模块 // 配置TencentOS tiny是否开启队列模块
#define TOS_CFG_QUEUE_EN 1u
#define TOS_CFG_TIMER_EN 0u // 配置TencentOS tiny是否开启软件定时器模块 // 配置TencentOS tiny是否开启软件定时器模块
#define TOS_CFG_TIMER_EN 0u
#define TOS_CFG_SEM_EN 1u // 配置TencentOS tiny是否开启信号量模块 // 配置TencentOS tiny是否开启信号量模块
#define TOS_CFG_SEM_EN 1u
#define TOS_CFG_CPU_SYSTICK_PRIO 0xF #define TOS_CFG_CPU_SYSTICK_PRIO 0xF
@@ -31,15 +42,22 @@
#define TOS_CFG_MSG_EN 0u #define TOS_CFG_MSG_EN 0u
#endif #endif
#define TOS_CFG_MSG_POOL_SIZE 10u // 配置TencentOS tiny消息队列大小 // 配置TencentOS tiny消息队列大小
#define TOS_CFG_MSG_POOL_SIZE 10u
#define TOS_CFG_IDLE_TASK_STK_SIZE 512u // 配置TencentOS tiny空闲任务栈大小 // 配置TencentOS tiny空闲任务栈大小
#define TOS_CFG_IDLE_TASK_STK_SIZE 512u
#define TOS_CFG_CPU_TICK_PER_SECOND 1000u // 配置TencentOS tiny的tick频率 // 配置TencentOS tiny的tick频率
#define TOS_CFG_CPU_TICK_PER_SECOND 1000u
#define TOS_CFG_CPU_CLOCK (108000000/4) // 配置TencentOS tiny CPU频率 // 配置TencentOS tiny CPU频率
// 除4的原因是Bumblebee内核通过core_clk_aon四分频来更新mtime寄存器
// 具体信息参见《Bumblebee内核简明数据手册》
#define TOS_CFG_CPU_CLOCK (SystemCoreClock/4)
#define TOS_CFG_TIMER_AS_PROC 1u // 配置是否将TIMER配置成函数模式 // 配置是否将TIMER配置成函数模式
#define TOS_CFG_TIMER_AS_PROC 1u
#define TOS_CFG_VFS_EN 1u #define TOS_CFG_VFS_EN 1u

View File

@@ -145,6 +145,8 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/hello_world/TencentOS_tiny/kernel/evtdrv/include}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/hello_world/TencentOS_tiny/kernel/evtdrv/include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/hello_world/Application/Inc}&quot;"/>
</option> </option>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.defs.1188292994" name="Defined symbols (-D)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.defs" useByScannerDiscovery="true" valueType="definedSymbols"> <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.defs.1188292994" name="Defined symbols (-D)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.defs" useByScannerDiscovery="true" valueType="definedSymbols">

View File

@@ -39,6 +39,16 @@
<type>2</type> <type>2</type>
<locationURI>virtual:/virtual</locationURI> <locationURI>virtual:/virtual</locationURI>
</link> </link>
<link>
<name>Application/Inc</name>
<type>2</type>
<locationURI>TOP_DIR/board/GD32VF103C_START/BSP/Inc</locationURI>
</link>
<link>
<name>Application/Src</name>
<type>2</type>
<locationURI>TOP_DIR/board/GD32VF103C_START/BSP/Src</locationURI>
</link>
<link> <link>
<name>Application/tos_config.h</name> <name>Application/tos_config.h</name>
<type>1</type> <type>1</type>

View File

@@ -11,7 +11,7 @@
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="1367083006174630109" id="ilg.gnumcueclipse.managedbuild.cross.riscv.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT RISC-V Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true"> <provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="1310167466484573552" id="ilg.gnumcueclipse.managedbuild.cross.riscv.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT RISC-V Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/> <language-scope id="org.eclipse.cdt.core.gcc"/>

View File

@@ -1,7 +1,7 @@
#include "gd32vf103.h" #include "mcu_init.h"
#include "tos.h" #include "tos.h"
#define TASK_SIZE 512 #define TASK_SIZE 1024
k_task_t k_task_task1; k_task_t k_task_task1;
k_task_t k_task_task2; k_task_t k_task_task2;
uint8_t k_task1_stk[TASK_SIZE]; uint8_t k_task1_stk[TASK_SIZE];
@@ -12,47 +12,57 @@ k_sem_t sem;
void task1(void *pdata) void task1(void *pdata)
{ {
int task_cnt1 = 0; int task_cnt1 = 0;
while (1) { while (1) {
task_cnt1++; printf("hello world from %s cnt: %d\n", __func__, task_cnt1++);
tos_sem_pend(&sem, ~0U); tos_sem_pend(&sem, ~0U);
gpio_bit_write(GPIOA, GPIO_PIN_7, share % 2); gpio_bit_write(GPIOA, GPIO_PIN_7, share % 2);
} }
} }
void task2(void *pdata) void task2(void *pdata)
{ {
int task_cnt2 = 0; int task_cnt2 = 0;
while (1) { while (1) {
task_cnt2--; share++;
share++; for(int i=0; i<5; i++) {
tos_task_delay(1000); printf("hello world from %s cnt: %08x\n", __func__, task_cnt2--);
tos_sem_post(&sem); tos_task_delay(200);
} }
tos_sem_post(&sem);
}
} }
void main(void) { void main(void) {
rcu_periph_clock_enable(RCU_GPIOA); board_init();
gpio_init(GPIOA, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_7); usart0_init(115200);
gpio_bit_reset(GPIOA, GPIO_PIN_7); tos_knl_init();
tos_knl_init(); tos_task_create(&k_task_task1, "task1", task1, NULL, 3, k_task1_stk, TASK_SIZE, 0);
tos_task_create(&k_task_task2, "task2", task2, NULL, 3, k_task2_stk, TASK_SIZE, 0);
tos_task_create(&k_task_task1, "task1", task1, NULL, 3, k_task1_stk, TASK_SIZE, 0); k_err_t err = tos_sem_create(&sem, 1);
tos_task_create(&k_task_task2, "task2", task2, NULL, 3, k_task2_stk, TASK_SIZE, 0); if (err != K_ERR_NONE) {
goto die;
}
k_err_t err = tos_sem_create(&sem, 1); tos_knl_start();
if (err != K_ERR_NONE) {
goto die;
}
tos_knl_start();
die: die:
while (1) { while (1) {
asm("wfi;"); asm("wfi;");
} }
}
int _put_char(int ch)
{
usart_data_transmit(USART0, (uint8_t) ch );
while (usart_flag_get(USART0, USART_FLAG_TBE)== RESET){
}
return ch;
} }

View File

@@ -209,14 +209,14 @@ void OLED_ShowString(uint8_t x,uint8_t y,uint8_t *chr)
} }
/*************************************************************** /***************************************************************
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OLED_ShowCHinese * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OLED_ShowChinese
* ˵ <20><>: <20><>ָ<EFBFBD><D6B8>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> * ˵ <20><>: <20><>ָ<EFBFBD><D6B8>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
* <20><> <20><>: x<><78><EFBFBD><EFBFBD>ʼλ<CABC><CEBB>x<EFBFBD><78><EFBFBD><EFBFBD> * <20><> <20><>: x<><78><EFBFBD><EFBFBD>ʼλ<CABC><CEBB>x<EFBFBD><78><EFBFBD><EFBFBD>
y<><79><EFBFBD><EFBFBD>ʼλ<CABC><CEBB>y<EFBFBD><79><EFBFBD><EFBFBD> y<><79><EFBFBD><EFBFBD>ʼλ<CABC><CEBB>y<EFBFBD><79><EFBFBD><EFBFBD>
no<6E><6F>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD><D6BF>еı<D0B5><C4B1>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD>Ŵ<EFBFBD>0<EFBFBD><30>ʼ no<6E><6F>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD><D6BF>еı<D0B5><C4B1>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD>Ŵ<EFBFBD>0<EFBFBD><30>ʼ
* <20><> <20><> ֵ: <20><> * <20><> <20><> ֵ: <20><>
***************************************************************/ ***************************************************************/
void OLED_ShowCHinese(uint8_t x,uint8_t y,uint8_t no) void OLED_ShowChinese(uint8_t x,uint8_t y,uint8_t no)
{ {
uint8_t t,adder=0; uint8_t t,adder=0;
OLED_Set_Pos(x,y); OLED_Set_Pos(x,y);

View File

@@ -37,7 +37,7 @@ void OLED_Fill(uint8_t x1,uint8_t y1,uint8_t x2,uint8_t y2,uint8_t dot);
void OLED_ShowChar(uint8_t x,uint8_t y,uint8_t chr); void OLED_ShowChar(uint8_t x,uint8_t y,uint8_t chr);
void OLED_ShowNum(uint8_t x,uint8_t y,uint32_t num,uint8_t len,uint8_t size); void OLED_ShowNum(uint8_t x,uint8_t y,uint32_t num,uint8_t len,uint8_t size);
void OLED_ShowString(uint8_t x,uint8_t y, uint8_t *p); void OLED_ShowString(uint8_t x,uint8_t y, uint8_t *p);
void OLED_ShowCHinese(uint8_t x,uint8_t y,uint8_t no); void OLED_ShowChinese(uint8_t x,uint8_t y,uint8_t no);
void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP[]); void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP[]);
/**************************************************************/ /**************************************************************/
/************** OLED<45><44><EFBFBD>ýӿ<C3BD> ************************/ /************** OLED<45><44><EFBFBD>ýӿ<C3BD> ************************/

View File

@@ -41,17 +41,17 @@ void board_init(void)
OLED_Init(); OLED_Init();
Init_BH1750(); Init_BH1750();
DHT11_Init(); DHT11_Init();
//OLED_ShowCHinese(0,0,0); //OLED_ShowChinese(0,0,0);
//OLED_ShowCHinese(18,0,1); //OLED_ShowChinese(18,0,1);
//OLED_ShowCHinese(38,0,2); //OLED_ShowChinese(38,0,2);
//OLED_ShowCHinese(56,0,3); //OLED_ShowChinese(56,0,3);
//OLED_ShowCHinese(74,0,4); //OLED_ShowChinese(74,0,4);
OLED_ShowString(10,0,(uint8_t*)"TencentOS tiny"); OLED_ShowString(10,0,(uint8_t*)"TencentOS tiny");
// OLED_ShowCHinese(1,3,5); // OLED_ShowChinese(1,3,5);
// OLED_ShowCHinese(21,3,6); // OLED_ShowChinese(21,3,6);
// OLED_ShowString(39,3,(uint8_t*)":25 C"); // OLED_ShowString(39,3,(uint8_t*)":25 C");
// OLED_ShowCHinese(1,6,7); // OLED_ShowChinese(1,6,7);
// OLED_ShowCHinese(21,6,8); // OLED_ShowChinese(21,6,8);
// OLED_ShowString(39,6,(uint8_t*)":88 RH%"); // OLED_ShowString(39,6,(uint8_t*)":88 RH%");
} }

View File

@@ -242,7 +242,7 @@ void OLED_ShowString(uint8_t x,uint8_t y,uint8_t *chr,uint8_t Char_Size)
} }
} }
//显示汉字 //显示汉字
void OLED_ShowCHinese(uint8_t x,uint8_t y,uint8_t no) void OLED_ShowChinese(uint8_t x,uint8_t y,uint8_t no)
{ {
uint8_t t,adder=0; uint8_t t,adder=0;
OLED_Set_Pos(x,y); OLED_Set_Pos(x,y);

View File

@@ -27,7 +27,7 @@
//OLED接口控制用函数 //OLED接口控制用函数
void OLED_ShowNum(uint8_t x,uint8_t y,uint32_t num,uint8_t len,uint8_t size); void OLED_ShowNum(uint8_t x,uint8_t y,uint32_t num,uint8_t len,uint8_t size);
void OLED_ShowString(uint8_t x,uint8_t y, uint8_t *p,uint8_t Char_Size); void OLED_ShowString(uint8_t x,uint8_t y, uint8_t *p,uint8_t Char_Size);
void OLED_ShowCHinese(uint8_t x,uint8_t y,uint8_t no); void OLED_ShowChinese(uint8_t x,uint8_t y,uint8_t no);
void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP[]); void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP[]);

View File

@@ -53,12 +53,12 @@ void board_init(void)
DHT11_Init(); DHT11_Init();
OLED_Init(); OLED_Init();
OLED_Clear(); OLED_Clear();
OLED_ShowCHinese(0,0,0); OLED_ShowChinese(0,0,0);
OLED_ShowCHinese(18,0,1); OLED_ShowChinese(18,0,1);
OLED_ShowCHinese(36,0,2); OLED_ShowChinese(36,0,2);
OLED_ShowCHinese(54,0,3); OLED_ShowChinese(54,0,3);
OLED_ShowCHinese(72,0,4); OLED_ShowChinese(72,0,4);
OLED_ShowCHinese(90,0,5); OLED_ShowChinese(90,0,5);
OLED_ShowString(0,2,(uint8_t*)str,16); OLED_ShowString(0,2,(uint8_t*)str,16);
} }