conflict fix
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
#include "tos.h"
|
||||
#include <tos_compiler.h>
|
||||
#include <tos_ktypes.h>
|
||||
|
||||
#define ECLIC_ADDR_BASE 0xD2000000
|
||||
#define CLIC_INT_TMR 0x07
|
||||
@@ -18,18 +19,18 @@
|
||||
#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);
|
||||
bits >>= 21;
|
||||
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);
|
||||
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) {
|
||||
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) {
|
||||
uint8_t nlbits = elci_get_nlbits();
|
||||
uint8_t nlbits = eclic_get_nlbits();
|
||||
|
||||
if (nlbits == 0) {
|
||||
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) {
|
||||
uint8_t nlbits = elci_get_nlbits();
|
||||
uint8_t cicbits= elci_get_clic_int_ctl_bits();
|
||||
uint8_t nlbits = eclic_get_nlbits();
|
||||
uint8_t cicbits= eclic_get_clic_int_ctl_bits();
|
||||
|
||||
if (nlbits >= cicbits) {
|
||||
return ;
|
||||
|
@@ -1,5 +1,4 @@
|
||||
#include <tos.h>
|
||||
#include <riscv_encoding.h>
|
||||
#include <riscv_port.h>
|
||||
|
||||
__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->a0 = (cpu_data_t)arg; // a0: argument
|
||||
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;
|
||||
|
||||
|
||||
|
@@ -1,5 +1,4 @@
|
||||
#include <tos.h>
|
||||
#include "riscv_encoding.h"
|
||||
#include "riscv_port.h"
|
||||
|
||||
__PORT__ void port_systick_config(uint32_t cycle_per_tick)
|
||||
|
@@ -15,8 +15,14 @@
|
||||
.extern k_curr_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
|
||||
.align 2
|
||||
@@ -59,7 +65,6 @@ port_systick_pending_reset:
|
||||
csrc mip, t0
|
||||
ret
|
||||
|
||||
#define REGBYTES 4
|
||||
|
||||
.macro SAVE_CONTEXT
|
||||
addi sp, sp, -32*REGBYTES
|
||||
|
9
board/GD32VF103C_START/BSP/Inc/mcu_init.h
Normal file
9
board/GD32VF103C_START/BSP/Inc/mcu_init.h
Normal 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
|
10
board/GD32VF103C_START/BSP/Inc/usart.h
Normal file
10
board/GD32VF103C_START/BSP/Inc/usart.h
Normal 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
|
12
board/GD32VF103C_START/BSP/Src/mcu_init.c
Normal file
12
board/GD32VF103C_START/BSP/Src/mcu_init.c
Normal 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);
|
||||
}
|
28
board/GD32VF103C_START/BSP/Src/usart.c
Normal file
28
board/GD32VF103C_START/BSP/Src/usart.c
Normal 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);
|
||||
}
|
@@ -1,27 +1,38 @@
|
||||
#ifndef INC_TOS_CONFIG_H_
|
||||
#define INC_TOS_CONFIG_H_
|
||||
|
||||
#include "gd32vf103.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
|
||||
|
||||
@@ -31,15 +42,22 @@
|
||||
#define TOS_CFG_MSG_EN 0u
|
||||
#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
|
||||
|
||||
|
@@ -144,6 +144,8 @@
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/hello_world/TencentOS_tiny/arch/risc-v/bumblebee}""/>
|
||||
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/hello_world/TencentOS_tiny/kernel/evtdrv/include}""/>
|
||||
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/hello_world/Application/Inc}""/>
|
||||
|
||||
</option>
|
||||
|
||||
|
@@ -39,6 +39,16 @@
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</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>
|
||||
<name>Application/tos_config.h</name>
|
||||
<type>1</type>
|
||||
|
@@ -11,7 +11,7 @@
|
||||
|
||||
<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 "${INPUTS}"" 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 "${INPUTS}"" prefer-non-shared="true">
|
||||
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
|
||||
|
@@ -1,58 +1,68 @@
|
||||
#include "gd32vf103.h"
|
||||
#include "tos.h"
|
||||
|
||||
#define TASK_SIZE 512
|
||||
k_task_t k_task_task1;
|
||||
k_task_t k_task_task2;
|
||||
uint8_t k_task1_stk[TASK_SIZE];
|
||||
uint8_t k_task2_stk[TASK_SIZE];
|
||||
|
||||
int share = 0xCBA7F9;
|
||||
k_sem_t sem;
|
||||
|
||||
void task1(void *pdata)
|
||||
{
|
||||
int task_cnt1 = 0;
|
||||
while (1) {
|
||||
task_cnt1++;
|
||||
tos_sem_pend(&sem, ~0U);
|
||||
gpio_bit_write(GPIOA, GPIO_PIN_7, share % 2);
|
||||
}
|
||||
}
|
||||
|
||||
void task2(void *pdata)
|
||||
{
|
||||
int task_cnt2 = 0;
|
||||
while (1) {
|
||||
task_cnt2--;
|
||||
share++;
|
||||
tos_task_delay(1000);
|
||||
tos_sem_post(&sem);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void main(void) {
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
k_err_t err = tos_sem_create(&sem, 1);
|
||||
if (err != K_ERR_NONE) {
|
||||
goto die;
|
||||
}
|
||||
|
||||
tos_knl_start();
|
||||
|
||||
die:
|
||||
while (1) {
|
||||
asm("wfi;");
|
||||
}
|
||||
}
|
||||
#include "mcu_init.h"
|
||||
#include "tos.h"
|
||||
|
||||
#define TASK_SIZE 1024
|
||||
k_task_t k_task_task1;
|
||||
k_task_t k_task_task2;
|
||||
uint8_t k_task1_stk[TASK_SIZE];
|
||||
uint8_t k_task2_stk[TASK_SIZE];
|
||||
|
||||
int share = 0xCBA7F9;
|
||||
k_sem_t sem;
|
||||
|
||||
void task1(void *pdata)
|
||||
{
|
||||
int task_cnt1 = 0;
|
||||
while (1) {
|
||||
printf("hello world from %s cnt: %d\n", __func__, task_cnt1++);
|
||||
tos_sem_pend(&sem, ~0U);
|
||||
gpio_bit_write(GPIOA, GPIO_PIN_7, share % 2);
|
||||
}
|
||||
}
|
||||
|
||||
void task2(void *pdata)
|
||||
{
|
||||
int task_cnt2 = 0;
|
||||
while (1) {
|
||||
share++;
|
||||
for(int i=0; i<5; i++) {
|
||||
printf("hello world from %s cnt: %08x\n", __func__, task_cnt2--);
|
||||
tos_task_delay(200);
|
||||
}
|
||||
tos_sem_post(&sem);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void main(void) {
|
||||
board_init();
|
||||
|
||||
usart0_init(115200);
|
||||
|
||||
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);
|
||||
|
||||
k_err_t err = tos_sem_create(&sem, 1);
|
||||
if (err != K_ERR_NONE) {
|
||||
goto die;
|
||||
}
|
||||
|
||||
tos_knl_start();
|
||||
|
||||
die:
|
||||
while (1) {
|
||||
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;
|
||||
}
|
||||
|
@@ -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><>: x<><78><EFBFBD><EFBFBD>ʼλ<CABC><CEBB>x<EFBFBD><78><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>ʼ
|
||||
* <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;
|
||||
OLED_Set_Pos(x,y);
|
||||
|
@@ -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_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_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[]);
|
||||
/**************************************************************/
|
||||
/************** OLED<45><44><EFBFBD>ýӿ<C3BD> ************************/
|
||||
|
@@ -41,17 +41,17 @@ void board_init(void)
|
||||
OLED_Init();
|
||||
Init_BH1750();
|
||||
DHT11_Init();
|
||||
//OLED_ShowCHinese(0,0,0);
|
||||
//OLED_ShowCHinese(18,0,1);
|
||||
//OLED_ShowCHinese(38,0,2);
|
||||
//OLED_ShowCHinese(56,0,3);
|
||||
//OLED_ShowCHinese(74,0,4);
|
||||
//OLED_ShowChinese(0,0,0);
|
||||
//OLED_ShowChinese(18,0,1);
|
||||
//OLED_ShowChinese(38,0,2);
|
||||
//OLED_ShowChinese(56,0,3);
|
||||
//OLED_ShowChinese(74,0,4);
|
||||
OLED_ShowString(10,0,(uint8_t*)"TencentOS tiny");
|
||||
// OLED_ShowCHinese(1,3,5);
|
||||
// OLED_ShowCHinese(21,3,6);
|
||||
// OLED_ShowChinese(1,3,5);
|
||||
// OLED_ShowChinese(21,3,6);
|
||||
// OLED_ShowString(39,3,(uint8_t*)":25 C");
|
||||
// OLED_ShowCHinese(1,6,7);
|
||||
// OLED_ShowCHinese(21,6,8);
|
||||
// OLED_ShowChinese(1,6,7);
|
||||
// OLED_ShowChinese(21,6,8);
|
||||
// OLED_ShowString(39,6,(uint8_t*)":88 RH%");
|
||||
}
|
||||
|
||||
|
@@ -242,8 +242,8 @@ 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;
|
||||
OLED_Set_Pos(x,y);
|
||||
for(t=0;t<16;t++)
|
||||
|
@@ -27,7 +27,7 @@
|
||||
//OLED接口控制用函数
|
||||
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_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[]);
|
||||
|
||||
|
||||
|
@@ -53,12 +53,12 @@ void board_init(void)
|
||||
DHT11_Init();
|
||||
OLED_Init();
|
||||
OLED_Clear();
|
||||
OLED_ShowCHinese(0,0,0);
|
||||
OLED_ShowCHinese(18,0,1);
|
||||
OLED_ShowCHinese(36,0,2);
|
||||
OLED_ShowCHinese(54,0,3);
|
||||
OLED_ShowCHinese(72,0,4);
|
||||
OLED_ShowCHinese(90,0,5);
|
||||
OLED_ShowChinese(0,0,0);
|
||||
OLED_ShowChinese(18,0,1);
|
||||
OLED_ShowChinese(36,0,2);
|
||||
OLED_ShowChinese(54,0,3);
|
||||
OLED_ShowChinese(72,0,4);
|
||||
OLED_ShowChinese(90,0,5);
|
||||
OLED_ShowString(0,2,(uint8_t*)str,16);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user