From 54ba18ca23efb4e76f77c5c75a0bf17533984e8a Mon Sep 17 00:00:00 2001 From: atc1441 <1102694+atc1441@users.noreply.github.com> Date: Sun, 5 Dec 2021 12:54:56 +0100 Subject: [PATCH] Compiling warning fixes and Humidity removing --- Firmware/ATC_Paper.bin | Bin 87552 -> 87328 bytes .../components/application/print/u_printf.c | 5 +- Firmware/components/drivers/8258/gpio_8258.h | 1 + Firmware/components/stack/ble/ll/ll.h | 4 +- .../components/vendor/common/blt_soft_timer.h | 2 +- Firmware/makefile | 3 +- Firmware/src/app_att.c | 18 ------ Firmware/src/app_config.h | 6 +- Firmware/src/ble.c | 54 ------------------ Firmware/src/ble.h | 1 - Firmware/src/cmd_parser.c | 12 ---- Firmware/src/flash.c | 3 - Firmware/src/flash.h | 8 +-- Firmware/src/obd.inl | 3 +- Firmware/src/uart.c | 36 ++++++------ 15 files changed, 31 insertions(+), 125 deletions(-) diff --git a/Firmware/ATC_Paper.bin b/Firmware/ATC_Paper.bin index 723ff68ef6fdde58f14573f18d029970f73aadf5..d4db86d55e0cbb4866d8f34fd4f02d5c7f1e96e8 100644 GIT binary patch delta 9519 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℘u7J7R@iHbRVD>pEtE{YGWS}nBx3}&=UwBx zy3Rg#U6QZDQ)jjH4SNFJYeO;-qrS3`Jjk>A6n{|1&bnPV4)j zjy1k)JW;1;WG072X3W(xk1hXLKAXio+1g3@H>#K?3%D70pf*gKUki^Hs)?*UUB5`>N)Q?4q4ih|0;C zNPqv0z4md3h$965L>JRF>xFKrr z)pfNj#1UY?rPGEtj^3?gT5YH%zBtx1sTePT{7Lz?eC|G)uPc~Tpm19YH14AX@r9EL zLp-*^V}<#X)lNx#04K7}A5(X|Q5qVeYBu+B$W*cJF8*fo zaBPnx#NJTio)sO|%O8!AG>lAlq?bf$s?Wyx3ocrCp9iT1@!z^Oott=Z6OWM1D2e@e zC`)6BKb*4|ZHV_V@TU_O9i5pkTi#fGI7$=hmwRIH-6 z%~BLjX!N*k+ii(0Z4w7S?&aL8_Ka(lgb_Te(VRxGF)$d`zQnuhfL*11?Cdod`X{6gT!+j@U zZm3BwVWtiig`XD2MGN(mmU+@eU-_)J#bfS)Y46vtRoxqNU02PEYxwP>n)<6T)gRSx zV~cs2wZ**GDz>`&aF;mmeyNcgYwi4s1x~|lH|D?%xATfC1fe;c zmt3j9R%cT%)c2gf1@U6%WtR%{cbszcTg+-piz@>CH=Va2{iL(~K&IZma66mA=poaL z-gu|Ne-*gc8RDn@D5uhYRgOlH=(|j(8{9UW)i#_-!x-%=rY!5EOL6LhSDw}@9x2ap z(w6(OSiG#8gvbAuWve2M$P-(|eeIuz(fi!;e@c9zIKR@3CGyUy*&T^x3+g?_Cy}PyD{Vul`w-r?%Si6;Y{66nx%z zJP~%mfmEoLaR%cef5ZJDL^g^yH;mIP!&@N&9_c5DQyaRgGw@_+funvAxp8(9_1?y; zZ@{B=KcFFuv9r+jC}{PA2)Um`^QGc`fXw?@(5$AMcAf@*TqDX|X#HYleP3t6}dER@Z#HnJ1cTN;JOE&14a|LaX zbLx$q3Tya=A!i5uIzgU!eqxSIy0o`Yan0OK9H?I$*~dCzu+Gm1?>?)&_aRWbi@$Fk z%vECj=DbPtdLosl;V!+Bs7Tqi5q(Q6`ot>USj2zY#qI)4{T-ZwJnT2iZ=TugHd^5i@3g}ukO5E zQQs90n+di47^%M31m?OJd@7fVypP>{k@)H3cldDe+$S?)qwM2rPbJ36evTmvk0{83 zN?iIRFN{1QD-k`gxW#>+z9oHDE%tnB=zD*4zLd|^xcfEDT6rPWpN;i-+`?9!YHY@? z_DU#~p7AUOkcuPT?5$y(=ZfK+@vp5$}H9FP;QwW=V*$ zK!T~5ZT)m{?DMoRdK)jrP-`6{vLQN*$_@0=U9{lyL#IW*h8}&WDDhfPTyjuc;M$Tr znjNCyoJ#(y9oI$|^BO)$qB;dxYp-XJQbRXXEl|f;DjxGS{4X5YjVbXY%YK8AvE@o? zC)aY#{upYD7aP+$5b0%XMY91#Wnx|9D8546Y)s-`3*EMHlUieJjeQk%)GdGwfVUBB z$8g3|<%~Oa9jX4e#=-P@W=WFS>c!Qa4|hH4=;trmI9;LLAotufA9NhY;xZUnkU67l zZs}F?p&C*C#oJ+|FZeB!CZXPy9rw5+1ZQX{?%V&ehLqBqhmrsblXjh!PTIYO-73x} zixGRC3-4mr`=@T`=a1b;RuaVSJ^Ol-!V)-4nJNViW)aFMC*&$ABZC&uj*A^%PTQyNC9ocG8s}1UgZ4QuW~eGm-LS> z6Pv!8D8XONz8nQn(0pLui$MncXvj??|UD;@$)0qbZN1fHn}CC@N z?876a(iOXiJ32r*Y8RuAc9FiYi|3C%#2sSC(M TtAw^q2X8_FBVT6OX2s6xyQ!Iqdj)0x()#9G-GAfQ#ulBc_K3Lt)uZJTYHz>jIC3-#3OA7Y3 zSBHkNff@cVb&em;U{jRiyLre1T$_#zv?r8OK<<+J#{r>m|0UpC07^?D`Y#~)>o5tu z(0*BsKdaCwnIR5+_lcT#C~d2R_4ouFwU>_1miF63>Gy+py)b{DHPm9;2zTRynOb7& z8FaUM(80IRBX@fTdzH341?!jUAFJr%AM9tQgVh;+{f0aRMV=#~e|U-Kh_`-7;i=yB zKa^ovAqMi9e5cz8rTqxn?bB#MpJJdzK{3)z(m@|A@m)cj zSTDigD z@G}+sRq@4{C-^AQ&vh%e^1{;^v`W+ohNL`BhN!m0e8zHC6YqJ=LFt9LquS zqMf`!lTGclV)?KC!LjxCbHDN<;<5Ald6MYk@5^=Kaeo*2>@=1tD*bwXkKkFI#8$uR z!6+1z>7xZP2)V;@8-XRbmNt1RQy!t!5 zy)#2aclpxp0+~IOmESsI?&AU`xs)+lYvC5{8 zPL1KsQbnH?j1jzA*9x`|TKj8Ox8ifFT5;jZ|Hkcd+uG>U+i*L5Yn$F_ZMdD@j*D99 z6+z?e#Q%Rhsx_+r3&Yb_n!AkW(<&w&WsG1BU=83DpyM%I>Hw1fivXJdR{(L}F_r_E y1egQJ|DLhu0fbKjLVv)G4M6?RfzJU#Pe2!dXeD<5UA*x#D<|++c~zGUkNyw(UAa#H diff --git a/Firmware/components/application/print/u_printf.c b/Firmware/components/application/print/u_printf.c index ad69582..a8a23d8 100644 --- a/Firmware/components/application/print/u_printf.c +++ b/Firmware/components/application/print/u_printf.c @@ -205,16 +205,17 @@ static int print(char **out, const char *format, va_list args) { return pc; } +//extern void puts(const char* str); int u_printf(const char *format, ...) { static char my_printf_buff[1024] = { 0 }; char *out = &my_printf_buff[0]; - extern void puts(char* s); va_list args; va_start(args, format ); print(&out, format, args); - puts(my_printf_buff); + //puts(my_printf_buff); + return 0; } int u_sprintf(char *out, const char *format, ...) { diff --git a/Firmware/components/drivers/8258/gpio_8258.h b/Firmware/components/drivers/8258/gpio_8258.h index ea728fc..e9194b0 100644 --- a/Firmware/components/drivers/8258/gpio_8258.h +++ b/Firmware/components/drivers/8258/gpio_8258.h @@ -162,6 +162,7 @@ void gpio_init(int anaRes_init_en); * @return none. */ void gpio_set_func(GPIO_PinTypeDef pin, GPIO_FuncTypeDef func); +void gpio_set_func2(GPIO_PinTypeDef pin, GPIO_FuncTypeDef func); /** * @brief This function set the output function of a pin. diff --git a/Firmware/components/stack/ble/ll/ll.h b/Firmware/components/stack/ble/ll/ll.h index a774d96..4c3fea7 100644 --- a/Firmware/components/stack/ble/ll/ll.h +++ b/Firmware/components/stack/ble/ll/ll.h @@ -179,10 +179,10 @@ typedef void (*blt_event_callback_t)(u8 e, u8 *p, int n); my_fifo_t blt_rxfifo; -u8 blt_rxfifo_b[]; +//u8 blt_rxfifo_b[]; my_fifo_t blt_txfifo; -u8 blt_txfifo_b[]; +//u8 blt_txfifo_b[]; ////////////////////////////////////// diff --git a/Firmware/components/vendor/common/blt_soft_timer.h b/Firmware/components/vendor/common/blt_soft_timer.h index d095494..94aa13e 100644 --- a/Firmware/components/vendor/common/blt_soft_timer.h +++ b/Firmware/components/vendor/common/blt_soft_timer.h @@ -32,7 +32,7 @@ //user define #ifndef BLT_SOFTWARE_TIMER_ENABLE -#define BLT_SOFTWARE_TIMER_ENABLE 0 //enable or disable +#define BLT_SOFTWARE_TIMER_ENABLE 1 //enable or disable #endif diff --git a/Firmware/makefile b/Firmware/makefile index 720ded3..1ea6bd5 100644 --- a/Firmware/makefile +++ b/Firmware/makefile @@ -48,7 +48,8 @@ GCC_FLAGS := \ -std=gnu99 \ -funsigned-char \ -fshort-wchar \ --fms-extensions +-fms-extensions \ +-Wno-unused INCLUDE_PATHS := -I$(TEL_PATH)/components -I$(PROJECT_PATH) diff --git a/Firmware/src/app_att.c b/Firmware/src/app_att.c index 5a99e7e..4c9872b 100644 --- a/Firmware/src/app_att.c +++ b/Firmware/src/app_att.c @@ -66,11 +66,8 @@ RAM u8 my_batVal[1] = {100}; //////////////////////// Temp ///////////////////////////////////////////////// static const u16 my_tempServiceUUID = 0x181A; static const u16 my_tempCharUUID = 0x2A1F; -static const u16 my_humiCharUUID = 0x2A6F; static u8 tempValueInCCC[2]; RAM u8 my_tempVal[2] = {0}; -static u8 humiValueInCCC[2]; -RAM u8 my_humiVal[2] = {0}; ///////////////////////////////////////////////////////// static const u8 my_OtaUUID[16] = TELINK_SPP_DATA_OTA; @@ -84,10 +81,6 @@ static const u16 my_RxTx_ServiceUUID = 0x1f10; static u8 my_RxTx_Data = 0x00; static u8 RxTxValueInCCC[2]; -//0x95FE -static const u16 my_FE95_ServiceUUID = 0xFE95; -static const u8 my_MiName[] = {'M', 'i'}; - // Include attribute (Battery service) static const u16 include[3] = {BATT_PS_H, BATT_LEVEL_INPUT_CCB_H, SERVICE_UUID_BATTERY}; @@ -130,13 +123,6 @@ static const u8 my_tempCharVal[5] = { U16_LO(0x2A1F), U16_HI(0x2A1F) }; -//// Humi attribute values -static const u8 my_humiCharVal[5] = { - CHAR_PROP_READ | CHAR_PROP_NOTIFY, - U16_LO(HUMI_LEVEL_INPUT_DP_H), U16_HI(HUMI_LEVEL_INPUT_DP_H), - U16_LO(0x2A6F), U16_HI(0x2A6F) -}; - //// OTA attribute values #define TELINK_SPP_DATA_OTA1 0x12,0x2B,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00 static const u8 my_OtaCharVal[19] = { @@ -182,10 +168,6 @@ static const attribute_t my_Attributes[] = { {0,ATT_PERMISSIONS_READ,2,sizeof(my_tempCharVal),(u8*)(&my_characterUUID), (u8*)(my_tempCharVal), 0}, //prop {0,ATT_PERMISSIONS_READ,2,sizeof(my_tempVal),(u8*)(&my_tempCharUUID), (u8*)(my_tempVal), 0}, //value {0,ATT_PERMISSIONS_RDWR,2,sizeof(tempValueInCCC),(u8*)(&clientCharacterCfgUUID), (u8*)(tempValueInCCC), 0}, //value - - {0,ATT_PERMISSIONS_READ,2,sizeof(my_humiCharVal),(u8*)(&my_characterUUID), (u8*)(my_humiCharVal), 0}, //prop - {0,ATT_PERMISSIONS_READ,2,sizeof(my_humiVal),(u8*)(&my_humiCharUUID), (u8*)(my_humiVal), 0}, //value - {0,ATT_PERMISSIONS_RDWR,2,sizeof(humiValueInCCC),(u8*)(&clientCharacterCfgUUID), (u8*)(humiValueInCCC), 0}, //value ////////////////////////////////////// OTA ///////////////////////////////////////////////////// // 002e - 0031 {4,ATT_PERMISSIONS_READ, 2,16,(u8*)(&my_primaryServiceUUID), (u8*)(&my_OtaServiceUUID), 0}, diff --git a/Firmware/src/app_config.h b/Firmware/src/app_config.h index 70e3a4e..c41a693 100644 --- a/Firmware/src/app_config.h +++ b/Firmware/src/app_config.h @@ -6,7 +6,7 @@ extern "C" { #define CLOCK_SYS_CLOCK_HZ 24000000 -#define ADVERTISING_INTERVAL 3000 +#define ADVERTISING_INTERVAL 300 #define RAM _attribute_data_retention_ // short version, this is needed to keep the values in ram after sleep @@ -52,10 +52,6 @@ typedef enum TEMP_LEVEL_INPUT_CD_H, //UUID: 2803, VALUE: Prop: Read | Notify TEMP_LEVEL_INPUT_DP_H, //UUID: 2A19 VALUE: tempVal TEMP_LEVEL_INPUT_CCB_H, //UUID: 2902, VALUE: tempValCCC - - HUMI_LEVEL_INPUT_CD_H, //UUID: 2803, VALUE: Prop: Read | Notify - HUMI_LEVEL_INPUT_DP_H, //UUID: 2A19 VALUE: humiVal - HUMI_LEVEL_INPUT_CCB_H, //UUID: 2902, VALUE: humiValCCC //// Ota //// /**********************************************************************************************/ diff --git a/Firmware/src/ble.c b/Firmware/src/ble.c index f99491b..1922cd8 100644 --- a/Firmware/src/ble.c +++ b/Firmware/src/ble.c @@ -16,7 +16,6 @@ RAM uint8_t ble_connected = 0; extern uint8_t my_tempVal[2]; -extern uint8_t my_humiVal[2]; extern uint8_t my_batVal[1]; RAM uint8_t blt_rxfifo_b[64 * 8] = {0}; @@ -27,17 +26,6 @@ RAM my_fifo_t blt_txfifo = { 40, 16, 0, 0, blt_txfifo_b,}; RAM uint8_t ble_name[] = {11, 0x09, 'E', 'S', 'L', '_', '0', '0', '0', '0', '0', '0'}; -RAM bool show_temp_humi_Mi = true; - -RAM uint8_t advertising_data_Mi[] = { - /*Description*/21, 0x16, 0x95, 0xfe, - /*Start*/0x50, 0x30, - /*Device id*/0x5B, 0x05, - /*counter*/0x00, - /*MAC*/0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - /*Temp+Humi*//*BatL alternating*/0x0D, 0x10, 0x04, 0x00, 0x00, 0x00, 0x00, -}; - RAM uint8_t advertising_data[] = { /*Description*/16, 0x16, 0x1a, 0x18, /*MAC*/0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -130,13 +118,6 @@ void init_ble(){ advertising_data[8] = mac_public[1]; advertising_data[9] = mac_public[0]; - advertising_data_Mi[9] = mac_public[0]; - advertising_data_Mi[10] = mac_public[1]; - advertising_data_Mi[11] = mac_public[2]; - advertising_data_Mi[12] = mac_public[3]; - advertising_data_Mi[13] = mac_public[4]; - advertising_data_Mi[14] = mac_public[5]; - ////// Controller Initialization ////////// blc_ll_initBasicMCU(); //must blc_ll_initStandby_module(mac_public); //must @@ -175,34 +156,7 @@ bool ble_get_connected(){ return ble_connected; } -extern settings_struct settings;//Custom or Mi Advertising void set_adv_data(int16_t temp, uint16_t humi, uint8_t battery_level, uint16_t battery_mv){ - if(settings.advertising_type){//Mi Like Advertising - humi = humi * 10; - - advertising_data_Mi[8]++; - - if(show_temp_humi_Mi){//Alternate between Sensor and Battery level - advertising_data_Mi[15] = 0x0d; - advertising_data_Mi[17] = 0x04; - - advertising_data_Mi[18] = temp&0xff; - advertising_data_Mi[19] = temp>>8; - advertising_data_Mi[20] = humi&0xff; - advertising_data_Mi[21] = humi>>8; - }else{ - advertising_data_Mi[15] = 0x0a; - advertising_data_Mi[17] = 0x01; - - advertising_data_Mi[18] = battery_level; - advertising_data_Mi[19] = 0x00; - advertising_data_Mi[20] = 0x00; - advertising_data_Mi[21] = 0x00; - } - show_temp_humi_Mi = !show_temp_humi_Mi; - - bls_ll_setAdvData( (uint8_t *)advertising_data_Mi, sizeof(advertising_data_Mi)); - }else{//Custom advertising type advertising_data[10] = temp>>8; advertising_data[11] = temp&0xff; @@ -216,7 +170,6 @@ void set_adv_data(int16_t temp, uint16_t humi, uint8_t battery_level, uint16_t b advertising_data[16]++; bls_ll_setAdvData( (uint8_t *)advertising_data, sizeof(advertising_data)); - } } void ble_send_temp(uint16_t temp){ @@ -225,13 +178,6 @@ void ble_send_temp(uint16_t temp){ bls_att_pushNotifyData(TEMP_LEVEL_INPUT_DP_H, my_tempVal, 2); } -void ble_send_humi(uint16_t humi){ - humi*=100; - my_humiVal[0] = humi & 0xFF; - my_humiVal[1] = humi >> 8; - bls_att_pushNotifyData(HUMI_LEVEL_INPUT_DP_H, (uint8_t *)my_humiVal, 2); -} - void ble_send_battery(uint8_t value){ my_batVal[0] = value; bls_att_pushNotifyData(BATT_LEVEL_INPUT_DP_H, (uint8_t *)my_batVal, 1); diff --git a/Firmware/src/ble.h b/Firmware/src/ble.h index 3d52b98..43c7c06 100644 --- a/Firmware/src/ble.h +++ b/Firmware/src/ble.h @@ -7,6 +7,5 @@ void init_ble(); void set_adv_data(int16_t temp, uint16_t humi, uint8_t battery_level, uint16_t battery_mv); bool ble_get_connected(); void ble_send_temp(uint16_t temp); -void ble_send_humi(uint16_t humi); void ble_send_battery(uint8_t value); void blt_pm_proc(void); diff --git a/Firmware/src/cmd_parser.c b/Firmware/src/cmd_parser.c index 9bceb9d..64f4bc8 100644 --- a/Firmware/src/cmd_parser.c +++ b/Firmware/src/cmd_parser.c @@ -45,25 +45,13 @@ void cmd_parser(void * p){ settings.comfort_smiley = true; // Comfort Indicator }else if(inData == 0xAB){ settings.blinking_smiley = true;//Smiley blinking - }else if(inData == 0xAE){ - settings.advertising_type = false;//Advertising type Custom - }else if(inData == 0xAF){ - settings.advertising_type = true;//Advertising type Mi Like }else if(inData == 0xFE){ settings.advertising_interval = req->dat[1];//Set advertising interval with second byte, value*10second / 0=main_delay }else if(inData == 0xFA){ settings.temp_offset = req->dat[1];//Set temp offset, -12,5 - +12,5 °C - }else if(inData == 0xFB){ - settings.humi_offset = req->dat[1];//Set humi offset, -50 - +50 % - if(settings.humi_offset<-50)settings.humi_offset=-50; - if(settings.humi_offset>50)settings.humi_offset=50; }else if(inData == 0xFC){ settings.temp_alarm_point = req->dat[1];//Set temp alarm point value divided by 10 for temp in °C if(settings.temp_alarm_point==0)settings.temp_alarm_point = 1; - }else if(inData == 0xFD){ - settings.humi_alarm_point = req->dat[1];//Set humi alarm point - if(settings.humi_alarm_point==0)settings.humi_alarm_point = 1; - if(settings.humi_alarm_point>50)settings.humi_alarm_point = 50; }else if(inData == 0xDD){// Set display segments directly }else if(inData == 0xDE){// Save settings in flash to default diff --git a/Firmware/src/flash.c b/Firmware/src/flash.c index 2229542..2741217 100644 --- a/Firmware/src/flash.c +++ b/Firmware/src/flash.c @@ -33,13 +33,10 @@ void reset_settings_to_default() settings.blinking_smiley = false; settings.comfort_smiley = true; settings.show_batt_enabled = true; - settings.advertising_type = false; settings.advertising_interval = 6; settings.measure_interval = 10; settings.temp_offset = 0; - settings.humi_offset = 0; settings.temp_alarm_point = 5; - settings.humi_alarm_point = 5; } void save_settings_to_flash() diff --git a/Firmware/src/flash.h b/Firmware/src/flash.h index 933b324..7c58359 100644 --- a/Firmware/src/flash.h +++ b/Firmware/src/flash.h @@ -1,6 +1,6 @@ #pragma once -struct Settings_struct +typedef struct Settings_struct { uint32_t magic; uint32_t len; @@ -9,17 +9,13 @@ struct Settings_struct uint8_t blinking_smiley; uint8_t comfort_smiley; uint8_t show_batt_enabled; - uint8_t advertising_type;//Custom or Mi Advertising (true) uint8_t advertising_interval;//advise new values - multiply by 10 for value uint8_t measure_interval;//time = loop interval * factor (def: about 7 * X) int8_t temp_offset; - int8_t humi_offset; uint8_t temp_alarm_point;//divide by ten for value - uint8_t humi_alarm_point; uint8_t crc;// Needs to be at the last position otherwise the settings can not be validated on next boot!!!! -}; +} settings_struct; -typedef struct Settings_struct settings_struct; void init_flash(); void reset_settings_to_default(); diff --git a/Firmware/src/obd.inl b/Firmware/src/obd.inl index 3df32a6..4557a61 100644 --- a/Firmware/src/obd.inl +++ b/Firmware/src/obd.inl @@ -837,7 +837,6 @@ int iPitch = pOBD->width; // void obdWriteDataBlock(OBDISP *pOBD, unsigned char *ucBuf, int iLen, int bRender) { -unsigned char ucTemp[196]; int iPitch, iBufferSize; iPitch = pOBD->width; @@ -1210,7 +1209,7 @@ int obdLoadBMP(OBDISP *pOBD, uint8_t *pBMP, int dx, int dy, int bInvert) int16_t i16, cx, cy; int iOffBits; // offset to bitmap data int iPitch, iDestPitch; -uint8_t x, y, b, *s, *d; +uint8_t x, y, b = 0, *s, *d; uint8_t dst_mask, src_mask; uint8_t bFlipped = false; diff --git a/Firmware/src/uart.c b/Firmware/src/uart.c index 5042117..b7e2c72 100644 --- a/Firmware/src/uart.c +++ b/Firmware/src/uart.c @@ -8,31 +8,31 @@ void init_uart() { - gpio_set_func(TXD, AS_GPIO); - gpio_set_output_en(TXD, 1); - gpio_write(TXD, 0); - gpio_set_func(RXD, AS_GPIO); - gpio_set_input_en(RXD, 1); - gpio_set_output_en(RXD, 0); - + gpio_set_func(TXD, AS_GPIO); + gpio_set_output_en(TXD, 1); + gpio_write(TXD, 0); + gpio_set_func(RXD, AS_GPIO); + gpio_set_input_en(RXD, 1); + gpio_set_output_en(RXD, 0); + uart_gpio_set(UART_TX_PB1, UART_RX_PA0); uart_reset(); - uart_init(12,15,PARITY_NONE, STOP_BIT_ONE); //baud rate: 115200 + uart_init(12, 15, PARITY_NONE, STOP_BIT_ONE); // baud rate: 115200 uart_dma_enable(0, 0); dma_chn_irq_enable(0, 0); - uart_irq_enable(0,0); - uart_ndma_irq_triglevel(0,0); + uart_irq_enable(0, 0); + uart_ndma_irq_triglevel(0, 0); } -_attribute_ram_code_ void puts(char* s){ - - while(*s!='\0') - { - uart_ndma_send_byte(*s); - while(uart_tx_is_busy()) +_attribute_ram_code_ void puts(const char* str) +{ + while (*str != '\0') + { + uart_ndma_send_byte(*str); + while (uart_tx_is_busy()) { sleep_us(10); }; - s++; - } + str++; + } } \ No newline at end of file