mirror of
https://github.com/armfly/H7-TOOL_STM32H7_App.git
synced 2024-08-09 10:05:34 +08:00
lua接口增加LCD显示函数,DAP固件修改硬件复位缺陷
This commit is contained in:
parent
0ab5e357af
commit
8e9cc9e242
@ -1,3 +1,9 @@
|
||||
----------------------------------------------------------------------------
|
||||
2020-12-04 V1.41
|
||||
1.lua接口增加LCD显示函数,可以构建图形元素. 新增文件 lua_if_disp.c
|
||||
2.DAP固件升级到V1.02版本,解决复位方面的小BUG,增加NRST电平指示功能.
|
||||
3.bsp_InitTVCC() 内部取消TVCC_OFF的语句. 避免从DAP固件跳入后TVCC短暂关闭
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
2020-11-29 V1.40 【重大更新】
|
||||
新增功能:
|
||||
|
@ -256,7 +256,7 @@
|
||||
|
||||
<Group>
|
||||
<GroupName>App</GroupName>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
@ -552,7 +552,7 @@
|
||||
|
||||
<Group>
|
||||
<GroupName>BSP</GroupName>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
@ -1016,7 +1016,7 @@
|
||||
|
||||
<Group>
|
||||
<GroupName>MDK-ARM</GroupName>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
@ -1708,7 +1708,7 @@
|
||||
|
||||
<Group>
|
||||
<GroupName>Doc</GroupName>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
@ -3632,6 +3632,18 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>19</GroupNumber>
|
||||
<FileNumber>270</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\User\lua\if\lua_if_disp.c</PathWithFileName>
|
||||
<FilenameWithoutPath>lua_if_disp.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
@ -3642,7 +3654,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>20</GroupNumber>
|
||||
<FileNumber>270</FileNumber>
|
||||
<FileNumber>271</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3654,7 +3666,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>20</GroupNumber>
|
||||
<FileNumber>271</FileNumber>
|
||||
<FileNumber>272</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3666,7 +3678,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>20</GroupNumber>
|
||||
<FileNumber>272</FileNumber>
|
||||
<FileNumber>273</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3678,7 +3690,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>20</GroupNumber>
|
||||
<FileNumber>273</FileNumber>
|
||||
<FileNumber>274</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3690,7 +3702,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>20</GroupNumber>
|
||||
<FileNumber>274</FileNumber>
|
||||
<FileNumber>275</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3702,7 +3714,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>20</GroupNumber>
|
||||
<FileNumber>275</FileNumber>
|
||||
<FileNumber>276</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3714,7 +3726,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>20</GroupNumber>
|
||||
<FileNumber>276</FileNumber>
|
||||
<FileNumber>277</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3734,7 +3746,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>21</GroupNumber>
|
||||
<FileNumber>277</FileNumber>
|
||||
<FileNumber>278</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3746,7 +3758,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>21</GroupNumber>
|
||||
<FileNumber>278</FileNumber>
|
||||
<FileNumber>279</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3758,7 +3770,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>21</GroupNumber>
|
||||
<FileNumber>279</FileNumber>
|
||||
<FileNumber>280</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3770,7 +3782,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>21</GroupNumber>
|
||||
<FileNumber>280</FileNumber>
|
||||
<FileNumber>281</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3782,7 +3794,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>21</GroupNumber>
|
||||
<FileNumber>281</FileNumber>
|
||||
<FileNumber>282</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3794,7 +3806,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>21</GroupNumber>
|
||||
<FileNumber>282</FileNumber>
|
||||
<FileNumber>283</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3814,7 +3826,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>22</GroupNumber>
|
||||
<FileNumber>283</FileNumber>
|
||||
<FileNumber>284</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3826,7 +3838,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>22</GroupNumber>
|
||||
<FileNumber>284</FileNumber>
|
||||
<FileNumber>285</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3838,7 +3850,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>22</GroupNumber>
|
||||
<FileNumber>285</FileNumber>
|
||||
<FileNumber>286</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3858,7 +3870,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>23</GroupNumber>
|
||||
<FileNumber>286</FileNumber>
|
||||
<FileNumber>287</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3870,7 +3882,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>23</GroupNumber>
|
||||
<FileNumber>287</FileNumber>
|
||||
<FileNumber>288</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3882,7 +3894,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>23</GroupNumber>
|
||||
<FileNumber>288</FileNumber>
|
||||
<FileNumber>289</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3894,7 +3906,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>23</GroupNumber>
|
||||
<FileNumber>289</FileNumber>
|
||||
<FileNumber>290</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3906,7 +3918,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>23</GroupNumber>
|
||||
<FileNumber>290</FileNumber>
|
||||
<FileNumber>291</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3926,7 +3938,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>24</GroupNumber>
|
||||
<FileNumber>291</FileNumber>
|
||||
<FileNumber>292</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3938,7 +3950,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>24</GroupNumber>
|
||||
<FileNumber>292</FileNumber>
|
||||
<FileNumber>293</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3950,7 +3962,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>24</GroupNumber>
|
||||
<FileNumber>293</FileNumber>
|
||||
<FileNumber>294</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3962,7 +3974,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>24</GroupNumber>
|
||||
<FileNumber>294</FileNumber>
|
||||
<FileNumber>295</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3974,7 +3986,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>24</GroupNumber>
|
||||
<FileNumber>295</FileNumber>
|
||||
<FileNumber>296</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3986,7 +3998,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>24</GroupNumber>
|
||||
<FileNumber>296</FileNumber>
|
||||
<FileNumber>297</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -3998,7 +4010,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>24</GroupNumber>
|
||||
<FileNumber>297</FileNumber>
|
||||
<FileNumber>298</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -4018,7 +4030,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>25</GroupNumber>
|
||||
<FileNumber>298</FileNumber>
|
||||
<FileNumber>299</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -4030,7 +4042,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>25</GroupNumber>
|
||||
<FileNumber>299</FileNumber>
|
||||
<FileNumber>300</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -4050,7 +4062,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>26</GroupNumber>
|
||||
<FileNumber>300</FileNumber>
|
||||
<FileNumber>301</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -4062,7 +4074,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>26</GroupNumber>
|
||||
<FileNumber>301</FileNumber>
|
||||
<FileNumber>302</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -4074,7 +4086,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>26</GroupNumber>
|
||||
<FileNumber>302</FileNumber>
|
||||
<FileNumber>303</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -4086,7 +4098,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>26</GroupNumber>
|
||||
<FileNumber>303</FileNumber>
|
||||
<FileNumber>304</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -4098,7 +4110,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>26</GroupNumber>
|
||||
<FileNumber>304</FileNumber>
|
||||
<FileNumber>305</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -4110,7 +4122,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>26</GroupNumber>
|
||||
<FileNumber>305</FileNumber>
|
||||
<FileNumber>306</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -4122,7 +4134,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>26</GroupNumber>
|
||||
<FileNumber>306</FileNumber>
|
||||
<FileNumber>307</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -4142,7 +4154,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>27</GroupNumber>
|
||||
<FileNumber>307</FileNumber>
|
||||
<FileNumber>308</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -4154,7 +4166,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>27</GroupNumber>
|
||||
<FileNumber>308</FileNumber>
|
||||
<FileNumber>309</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -4166,7 +4178,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>27</GroupNumber>
|
||||
<FileNumber>309</FileNumber>
|
||||
<FileNumber>310</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -4178,7 +4190,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>27</GroupNumber>
|
||||
<FileNumber>310</FileNumber>
|
||||
<FileNumber>311</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -4190,7 +4202,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>27</GroupNumber>
|
||||
<FileNumber>311</FileNumber>
|
||||
<FileNumber>312</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -4202,7 +4214,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>27</GroupNumber>
|
||||
<FileNumber>312</FileNumber>
|
||||
<FileNumber>313</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -4222,7 +4234,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>28</GroupNumber>
|
||||
<FileNumber>313</FileNumber>
|
||||
<FileNumber>314</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -4234,7 +4246,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>28</GroupNumber>
|
||||
<FileNumber>314</FileNumber>
|
||||
<FileNumber>315</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -4246,7 +4258,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>28</GroupNumber>
|
||||
<FileNumber>315</FileNumber>
|
||||
<FileNumber>316</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -4258,7 +4270,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>28</GroupNumber>
|
||||
<FileNumber>316</FileNumber>
|
||||
<FileNumber>317</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -4278,7 +4290,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>29</GroupNumber>
|
||||
<FileNumber>317</FileNumber>
|
||||
<FileNumber>318</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -4290,7 +4302,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>29</GroupNumber>
|
||||
<FileNumber>318</FileNumber>
|
||||
<FileNumber>319</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -1920,6 +1920,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\User\lua\if\lua_if_swim.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>lua_if_disp.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\..\User\lua\if\lua_if_disp.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
|
@ -68,7 +68,7 @@ __Vectors DCD __initial_sp ; Top of Stack
|
||||
DCD MemManage_Handler ; MPU Fault Handler
|
||||
DCD BusFault_Handler ; Bus Fault Handler
|
||||
DCD UsageFault_Handler ; Usage Fault Handler
|
||||
DCD 0x00000140 ; Reserved H7-TOOL APP 固件版本
|
||||
DCD 0x00000141 ; Reserved H7-TOOL APP 固件版本
|
||||
DCD 0 ; Reserved 固件小版本
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
|
BIN
Project/dap.bin
BIN
Project/dap.bin
Binary file not shown.
Binary file not shown.
@ -34,7 +34,7 @@ typedef struct
|
||||
int32_t DefaultValue; /* 缺省值 */
|
||||
}PARAM_LIST_T;
|
||||
|
||||
void UartMonInitParam(uint16_t _MainStatus);
|
||||
void UartMonInitParam(uint16_t _ParamID);
|
||||
void ModifyParam(uint16_t _MainStatus);
|
||||
void UartMonCheckParam(void);
|
||||
|
||||
|
@ -1208,14 +1208,6 @@ uint8_t SelectFile(char *_InitPath, uint16_t _MainStatus, uint16_t _RetStatus, c
|
||||
fListDir = 1;
|
||||
while (g_MainStatus == _MainStatus)
|
||||
{
|
||||
if (fRefresh) /* 刷新整个界面 */
|
||||
{
|
||||
fRefresh = 0;
|
||||
|
||||
LCD_ClearMenu(&g_tMenuLua);
|
||||
LCD_DispMenu(&g_tMenuLua);
|
||||
}
|
||||
|
||||
if (fListDir == 1)
|
||||
{
|
||||
fListDir = 0;
|
||||
@ -1262,6 +1254,14 @@ uint8_t SelectFile(char *_InitPath, uint16_t _MainStatus, uint16_t _RetStatus, c
|
||||
fRefresh = 1;
|
||||
}
|
||||
|
||||
if (fRefresh) /* 刷新整个界面 */
|
||||
{
|
||||
fRefresh = 0;
|
||||
|
||||
LCD_ClearMenu(&g_tMenuLua); /* 清屏菜单区 */
|
||||
LCD_DispMenu(&g_tMenuLua);
|
||||
}
|
||||
|
||||
bsp_Idle();
|
||||
|
||||
ucKeyCode = bsp_GetKey(); /* 读取键值, 无键按下时返回 KEY_NONE = 0 */
|
||||
|
@ -88,6 +88,9 @@ int main(void)
|
||||
|
||||
LoadParam(); /* 读取应用程序参数, 该函数在param.c */
|
||||
|
||||
bsp_InitTVCC(); /* TVCC控制引脚 -- 放到后面读完参数后设置 */
|
||||
bsp_SetTVCC(3300);
|
||||
|
||||
ST7789_SetDirection(g_tParam.DispDir);
|
||||
|
||||
/* 主程序采用状态机实现程序功能切换 */
|
||||
@ -153,8 +156,6 @@ int main(void)
|
||||
|
||||
bsp_InitESP32();
|
||||
|
||||
bsp_SetTVCC(3300);
|
||||
|
||||
DSO_InitHard();
|
||||
DSO_SetDC(1, 1);
|
||||
DSO_SetDC(2, 1);
|
||||
|
@ -308,28 +308,28 @@ void ModifyParam(uint16_t _MainStatus)
|
||||
*********************************************************************************************************
|
||||
* 函 数 名: UartMonInitParam
|
||||
* 功能说明: 初始化参数列表
|
||||
* 形 参: _MainStatus
|
||||
* 形 参: _ParamID : 参数ID
|
||||
* 返 回 值: 无
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void UartMonInitParam(uint16_t _MainStatus)
|
||||
void UartMonInitParam(uint16_t _ParamID)
|
||||
{
|
||||
if (_MainStatus == MODIFY_PARAM_UART_MON)
|
||||
if (_ParamID == MODIFY_PARAM_UART_MON)
|
||||
{
|
||||
s_pParamList = UartMonParamList;
|
||||
s_ParamCount = UART_MON_PARAM_COUNT;
|
||||
}
|
||||
else if (_MainStatus == MODIFY_PARAM_SYSTEM)
|
||||
else if (_ParamID == MODIFY_PARAM_SYSTEM)
|
||||
{
|
||||
s_pParamList = SysBaseParamList;
|
||||
s_ParamCount = SYS_BASE_PARAM_COUNT;
|
||||
}
|
||||
else if (_MainStatus == MODIFY_PARAM_PROG)
|
||||
else if (_ParamID == MODIFY_PARAM_PROG)
|
||||
{
|
||||
s_pParamList = ProgParamList;
|
||||
s_ParamCount = PROG_PARAM_COUNT;
|
||||
}
|
||||
else if (_MainStatus == MODIFY_PARAM_NET)
|
||||
else if (_ParamID == MODIFY_PARAM_NET)
|
||||
{
|
||||
s_pParamList = NetParamList;
|
||||
s_ParamCount = NET_PARAM_COUNT;
|
||||
|
@ -145,7 +145,7 @@ void status_MonitorCan(void)
|
||||
|
||||
LCD_SetEncode(ENCODE_GBK);
|
||||
|
||||
UartMonInitParam(g_MainStatus);
|
||||
UartMonInitParam(MODIFY_PARAM_UART_MON);
|
||||
UartMonCheckParam(); /* 检查参数 */
|
||||
|
||||
fInit = 1;
|
||||
|
@ -95,6 +95,8 @@ CMD_LIST_T tBtnList[16];
|
||||
char g_OutText[4 * 1024] = {0}; /* 最多支持4K字节文本缓存 */
|
||||
MEMO_T g_LuaMemo = {0};
|
||||
|
||||
uint8_t g_LuaSubStatus = 0; /* 0表示命令行界面 1表示GUI界面 */
|
||||
|
||||
/*
|
||||
char s_lua_prog_buf[LUA_PROG_LEN_MAX + 1];
|
||||
uint32_t s_lua_prog_len;
|
||||
@ -158,178 +160,200 @@ void FindBtnNoteCmd(void)
|
||||
|
||||
void status_LuaRun(void)
|
||||
{
|
||||
uint8_t ucKeyCode; /* 按键代码 */
|
||||
uint8_t fRefresh;
|
||||
FONT_T tFontBtn, tFontMemo;
|
||||
uint8_t cursor = 0;
|
||||
BUTTON_T btn1, btn2, btn3, btn4, btn5, btn6;
|
||||
|
||||
DispHeader("Lua小程序");
|
||||
lua_DownLoadFile(g_tFileList.Path); /* 重新初始化lua环境,并装载lua文件到内存,不执行 */
|
||||
|
||||
/* --GUIMODE=1 --用于识别GUI程序还是print程序 */
|
||||
if (memcmp(s_lua_prog_buf, "--GUIMODE=1", 11) == 0)
|
||||
{
|
||||
g_LuaMemo.Left = MEMO_X;
|
||||
g_LuaMemo.Top = MEMO_Y;
|
||||
g_LuaMemo.Height = MEMO_H;
|
||||
g_LuaMemo.Width = MEMO_W;
|
||||
g_LuaMemo.Font = &tFontMemo;
|
||||
//g_LuaMemo.Color = CL_WHITE;
|
||||
g_LuaMemo.Text = g_OutText;
|
||||
g_LuaMemo.MaxLen = sizeof(g_OutText);
|
||||
g_LuaMemo.LineCount = 0;
|
||||
g_LuaMemo.WordWrap = 0;
|
||||
g_LuaMemo.LineOffset = 0;
|
||||
|
||||
LCD_InitMemo(&g_LuaMemo);
|
||||
LCD_DrawMemo(&g_LuaMemo);
|
||||
g_LuaSubStatus = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_LuaSubStatus = 0;
|
||||
}
|
||||
|
||||
bsp_Idle();
|
||||
|
||||
/* 设置字体参数 */
|
||||
if (g_LuaSubStatus == 1) /* GUI界面 --需要是死循环 */
|
||||
{
|
||||
tFontBtn.FontCode = FC_ST_16; /* 字体代码 16点阵 */
|
||||
tFontBtn.FrontColor = INFO_NAME_COLOR; /* 字体颜色 */
|
||||
tFontBtn.BackColor = CL_MASK; /* 文字背景颜色 */
|
||||
tFontBtn.Space = 0; /* 文字间距,单位 = 像素 */
|
||||
lua_RunLuaProg(); /* 执行lua -阻塞 */
|
||||
|
||||
tFontMemo.FontCode = FC_ST_16; /* 字体代码 16点阵 */
|
||||
tFontMemo.FrontColor = CL_WHITE; /* 字体颜色 */
|
||||
tFontMemo.BackColor = CL_MASK; /* 文字背景颜色 */
|
||||
tFontMemo.Space = 0; /* 文字间距,单位 = 像素 */
|
||||
while(bsp_GetKey());
|
||||
g_MainStatus = MS_LUA_SELECT_FILE;
|
||||
}
|
||||
|
||||
lua_DownLoadFile(g_tFileList.Path);
|
||||
GetChipTypeFromLua(g_Lua); /* 从lua中解析芯片类型 */
|
||||
|
||||
/* 从lua文件中解析按钮名字和程序语句 */
|
||||
FindBtnNoteCmd();
|
||||
|
||||
fRefresh = 1;
|
||||
while (g_MainStatus == MS_LUA_EXEC_FILE)
|
||||
else /* 命令行界面 -必须是非阻塞的 */
|
||||
{
|
||||
if (fRefresh) /* 刷新整个界面 */
|
||||
uint8_t ucKeyCode; /* 按键代码 */
|
||||
uint8_t fRefresh;
|
||||
FONT_T tFontBtn, tFontMemo;
|
||||
uint8_t cursor = 0;
|
||||
BUTTON_T btn1, btn2, btn3, btn4, btn5, btn6;
|
||||
|
||||
DispHeader("Lua小程序");
|
||||
|
||||
{
|
||||
fRefresh = 0;
|
||||
g_LuaMemo.Left = MEMO_X;
|
||||
g_LuaMemo.Top = MEMO_Y;
|
||||
g_LuaMemo.Height = MEMO_H;
|
||||
g_LuaMemo.Width = MEMO_W;
|
||||
g_LuaMemo.Font = &tFontMemo;
|
||||
//g_LuaMemo.Color = CL_WHITE;
|
||||
g_LuaMemo.Text = g_OutText;
|
||||
g_LuaMemo.MaxLen = sizeof(g_OutText);
|
||||
g_LuaMemo.LineCount = 0;
|
||||
g_LuaMemo.WordWrap = 0;
|
||||
g_LuaMemo.LineOffset = 0;
|
||||
|
||||
{
|
||||
btn1.Left = BTN1_X;
|
||||
btn1.Top = BTN1_Y;
|
||||
btn1.Height = BTN1_H;
|
||||
btn1.Width = BTN1_W;
|
||||
btn1.pCaption = tBtnList[0].Note;
|
||||
btn1.Font = &tFontBtn;
|
||||
btn1.Focus = 0;
|
||||
|
||||
btn2.Left = BTN2_X;
|
||||
btn2.Top = BTN2_Y;
|
||||
btn2.Height = BTN2_H;
|
||||
btn2.Width = BTN2_W;
|
||||
btn2.pCaption = tBtnList[1].Note;
|
||||
btn2.Font = &tFontBtn;
|
||||
btn2.Focus = 0;
|
||||
|
||||
btn3.Left = BTN3_X;
|
||||
btn3.Top = BTN3_Y;
|
||||
btn3.Height = BTN3_H;
|
||||
btn3.Width = BTN3_W;
|
||||
btn3.pCaption = tBtnList[2].Note;
|
||||
btn3.Font = &tFontBtn;
|
||||
btn3.Focus = 0;
|
||||
|
||||
btn4.Left = BTN4_X;
|
||||
btn4.Top = BTN4_Y;
|
||||
btn4.Height = BTN4_H;
|
||||
btn4.Width = BTN4_W;
|
||||
btn4.pCaption = tBtnList[3].Note;
|
||||
btn4.Font = &tFontBtn;
|
||||
btn4.Focus = 0;
|
||||
|
||||
btn5.Left = BTN5_X;
|
||||
btn5.Top = BTN5_Y;
|
||||
btn5.Height = BTN5_H;
|
||||
btn5.Width = BTN5_W;
|
||||
btn5.pCaption = tBtnList[4].Note;
|
||||
btn5.Font = &tFontBtn;
|
||||
btn5.Focus = 0;
|
||||
|
||||
btn6.Left = BTN6_X;
|
||||
btn6.Top = BTN6_Y;
|
||||
btn6.Height = BTN6_H;
|
||||
btn6.Width = BTN6_W;
|
||||
btn6.pCaption = tBtnList[5].Note;
|
||||
btn6.Font = &tFontBtn;
|
||||
btn6.Focus = 0;
|
||||
|
||||
if (cursor == 0) btn1.Focus = 1;
|
||||
else if (cursor == 1) btn2.Focus = 1;
|
||||
else if (cursor == 2) btn3.Focus = 1;
|
||||
else if (cursor == 3) btn4.Focus = 1;
|
||||
else if (cursor == 4) btn5.Focus = 1;
|
||||
else if (cursor == 5) btn6.Focus = 1;
|
||||
|
||||
LCD_SetEncode(ENCODE_GBK); /* 按钮文字是GBK编码 */
|
||||
|
||||
LCD_DrawButton(&btn1);
|
||||
LCD_DrawButton(&btn2);
|
||||
LCD_DrawButton(&btn3);
|
||||
LCD_DrawButton(&btn4);
|
||||
LCD_DrawButton(&btn5);
|
||||
LCD_DrawButton(&btn6);
|
||||
|
||||
LCD_SetEncode(ENCODE_UTF8); /* 还原UTF8编码 */
|
||||
}
|
||||
LCD_InitMemo(&g_LuaMemo);
|
||||
LCD_DrawMemo(&g_LuaMemo);
|
||||
}
|
||||
|
||||
bsp_Idle();
|
||||
|
||||
ucKeyCode = bsp_GetKey(); /* 读取键值, 无键按下时返回 KEY_NONE = 0 */
|
||||
if (ucKeyCode != KEY_NONE)
|
||||
/* 设置字体参数 */
|
||||
{
|
||||
/* 有键按下 */
|
||||
switch (ucKeyCode)
|
||||
tFontBtn.FontCode = FC_ST_16; /* 字体代码 16点阵 */
|
||||
tFontBtn.FrontColor = INFO_NAME_COLOR; /* 字体颜色 */
|
||||
tFontBtn.BackColor = CL_MASK; /* 文字背景颜色 */
|
||||
tFontBtn.Space = 0; /* 文字间距,单位 = 像素 */
|
||||
|
||||
tFontMemo.FontCode = FC_ST_16; /* 字体代码 16点阵 */
|
||||
tFontMemo.FrontColor = CL_WHITE; /* 字体颜色 */
|
||||
tFontMemo.BackColor = CL_MASK; /* 文字背景颜色 */
|
||||
tFontMemo.Space = 0; /* 文字间距,单位 = 像素 */
|
||||
}
|
||||
|
||||
/* 从lua文件中解析按钮名字和程序语句 */
|
||||
FindBtnNoteCmd();
|
||||
|
||||
lua_RunLuaProg(); /* 执行lua */
|
||||
GetChipTypeFromLua(g_Lua); /* 从lua中解析芯片类型 */
|
||||
|
||||
fRefresh = 1;
|
||||
while (g_MainStatus == MS_LUA_EXEC_FILE)
|
||||
{
|
||||
if (fRefresh) /* 刷新整个界面 */
|
||||
{
|
||||
case KEY_UP_S: /* S键 上 */
|
||||
if (++cursor == BTN_NUM)
|
||||
{
|
||||
cursor = 0;
|
||||
}
|
||||
fRefresh = 1;
|
||||
break;
|
||||
fRefresh = 0;
|
||||
|
||||
case KEY_LONG_DOWN_S: /* S键 长按 */
|
||||
if (cursor > 0)
|
||||
{
|
||||
cursor--;
|
||||
}
|
||||
else
|
||||
{
|
||||
cursor = BTN_NUM - 1;
|
||||
}
|
||||
fRefresh = 1;
|
||||
break;
|
||||
{
|
||||
btn1.Left = BTN1_X;
|
||||
btn1.Top = BTN1_Y;
|
||||
btn1.Height = BTN1_H;
|
||||
btn1.Width = BTN1_W;
|
||||
btn1.pCaption = tBtnList[0].Note;
|
||||
btn1.Font = &tFontBtn;
|
||||
btn1.Focus = 0;
|
||||
|
||||
case KEY_UP_C: /* C键 下 */
|
||||
if (cursor < 6)
|
||||
{
|
||||
if (strlen(tBtnList[cursor].Cmd) > 0)
|
||||
btn2.Left = BTN2_X;
|
||||
btn2.Top = BTN2_Y;
|
||||
btn2.Height = BTN2_H;
|
||||
btn2.Width = BTN2_W;
|
||||
btn2.pCaption = tBtnList[1].Note;
|
||||
btn2.Font = &tFontBtn;
|
||||
btn2.Focus = 0;
|
||||
|
||||
btn3.Left = BTN3_X;
|
||||
btn3.Top = BTN3_Y;
|
||||
btn3.Height = BTN3_H;
|
||||
btn3.Width = BTN3_W;
|
||||
btn3.pCaption = tBtnList[2].Note;
|
||||
btn3.Font = &tFontBtn;
|
||||
btn3.Focus = 0;
|
||||
|
||||
btn4.Left = BTN4_X;
|
||||
btn4.Top = BTN4_Y;
|
||||
btn4.Height = BTN4_H;
|
||||
btn4.Width = BTN4_W;
|
||||
btn4.pCaption = tBtnList[3].Note;
|
||||
btn4.Font = &tFontBtn;
|
||||
btn4.Focus = 0;
|
||||
|
||||
btn5.Left = BTN5_X;
|
||||
btn5.Top = BTN5_Y;
|
||||
btn5.Height = BTN5_H;
|
||||
btn5.Width = BTN5_W;
|
||||
btn5.pCaption = tBtnList[4].Note;
|
||||
btn5.Font = &tFontBtn;
|
||||
btn5.Focus = 0;
|
||||
|
||||
btn6.Left = BTN6_X;
|
||||
btn6.Top = BTN6_Y;
|
||||
btn6.Height = BTN6_H;
|
||||
btn6.Width = BTN6_W;
|
||||
btn6.pCaption = tBtnList[5].Note;
|
||||
btn6.Font = &tFontBtn;
|
||||
btn6.Focus = 0;
|
||||
|
||||
if (cursor == 0) btn1.Focus = 1;
|
||||
else if (cursor == 1) btn2.Focus = 1;
|
||||
else if (cursor == 2) btn3.Focus = 1;
|
||||
else if (cursor == 3) btn4.Focus = 1;
|
||||
else if (cursor == 4) btn5.Focus = 1;
|
||||
else if (cursor == 5) btn6.Focus = 1;
|
||||
|
||||
LCD_SetEncode(ENCODE_GBK); /* 按钮文字是GBK编码 */
|
||||
|
||||
LCD_DrawButton(&btn1);
|
||||
LCD_DrawButton(&btn2);
|
||||
LCD_DrawButton(&btn3);
|
||||
LCD_DrawButton(&btn4);
|
||||
LCD_DrawButton(&btn5);
|
||||
LCD_DrawButton(&btn6);
|
||||
|
||||
LCD_SetEncode(ENCODE_UTF8); /* 还原UTF8编码 */
|
||||
}
|
||||
}
|
||||
|
||||
bsp_Idle();
|
||||
|
||||
ucKeyCode = bsp_GetKey(); /* 读取键值, 无键按下时返回 KEY_NONE = 0 */
|
||||
if (ucKeyCode != KEY_NONE)
|
||||
{
|
||||
/* 有键按下 */
|
||||
switch (ucKeyCode)
|
||||
{
|
||||
case KEY_UP_S: /* S键 上 */
|
||||
if (++cursor == BTN_NUM)
|
||||
{
|
||||
LCD_MemoClear(&g_LuaMemo);
|
||||
|
||||
DispHeaderStr("Lua正在运行...");
|
||||
|
||||
lua_do(tBtnList[cursor].Cmd);
|
||||
|
||||
DispHeaderStr("Lua小程序");
|
||||
cursor = 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
fRefresh = 1;
|
||||
break;
|
||||
|
||||
case KEY_LONG_DOWN_C: /* C键长按 */
|
||||
g_MainStatus = MS_LUA_SELECT_FILE;
|
||||
break;
|
||||
case KEY_LONG_DOWN_S: /* S键 长按 */
|
||||
if (cursor > 0)
|
||||
{
|
||||
cursor--;
|
||||
}
|
||||
else
|
||||
{
|
||||
cursor = BTN_NUM - 1;
|
||||
}
|
||||
fRefresh = 1;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
case KEY_UP_C: /* C键 下 */
|
||||
if (cursor < 6)
|
||||
{
|
||||
if (strlen(tBtnList[cursor].Cmd) > 0)
|
||||
{
|
||||
LCD_MemoClear(&g_LuaMemo);
|
||||
|
||||
DispHeaderStr("Lua正在运行...");
|
||||
|
||||
lua_do(tBtnList[cursor].Cmd);
|
||||
|
||||
DispHeaderStr("Lua小程序");
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case KEY_LONG_DOWN_C: /* C键长按 */
|
||||
g_MainStatus = MS_LUA_SELECT_FILE;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -183,7 +183,8 @@ void status_ProgWork(void)
|
||||
uint16_t len;
|
||||
uint8_t line = 0;
|
||||
|
||||
lua_DownLoadFile(g_tProg.FilePath); /* 重新初始化lua环境,并装载lua文件 */
|
||||
lua_DownLoadFile(g_tProg.FilePath); /* 重新初始化lua环境,并装载lua文件到内存,不执行 */
|
||||
lua_RunLuaProg(); /* 执行lua */
|
||||
|
||||
/* 从lua文件中获得注释字符串Note01 */
|
||||
lua_getglobal(g_Lua, "Note01");
|
||||
|
@ -259,11 +259,10 @@ void status_MonitorUart(void)
|
||||
LCD_DrawMemo(&g_RecMemo);
|
||||
}
|
||||
|
||||
|
||||
LCD_SetEncode(ENCODE_GBK);
|
||||
|
||||
/* V1.35, 检查串口参数 */
|
||||
UartMonInitParam(g_MainStatus);
|
||||
/* V1.35, 检查串口参数 1.41 修正升级后串口缺省参数bug */
|
||||
UartMonInitParam(MODIFY_PARAM_UART_MON);
|
||||
UartMonCheckParam(); /* 检查参数 */
|
||||
|
||||
s_Pause = 0;
|
||||
|
@ -83,7 +83,7 @@ void bsp_Init(void)
|
||||
HC595_InitHard(); /* 配置示波器模块上的GPIO芯片 */
|
||||
|
||||
bsp_InitDAC1(); /* 配置DAC引脚 */
|
||||
bsp_InitTVCC(); /* TVCC控制引脚 */
|
||||
//bsp_InitTVCC(); /* TVCC控制引脚 -- 放到后面读完参数后设置 */
|
||||
|
||||
bsp_InitMCP4725(); /* 示波器偏置电压 */
|
||||
|
||||
|
@ -103,6 +103,7 @@ typedef struct
|
||||
uint8_t Read; /* 缓冲区读指针1 */
|
||||
uint8_t Write; /* 缓冲区写指针 */
|
||||
uint8_t Read2; /* 缓冲区读指针2 */
|
||||
uint8_t Read3; /* 缓冲区读指针3 */
|
||||
} KEY_FIFO_T;
|
||||
|
||||
/* 供外部调用的函数声明 */
|
||||
@ -111,6 +112,7 @@ void bsp_KeyScan10ms(void);
|
||||
void bsp_PutKey(uint8_t _KeyCode);
|
||||
uint8_t bsp_GetKey(void);
|
||||
uint8_t bsp_GetKey2(void);
|
||||
uint8_t bsp_GetKey3(void);
|
||||
uint8_t bsp_GetKeyState(KEY_ID_E _ucKeyID);
|
||||
void bsp_SetKeyParam(uint8_t _ucKeyID, uint16_t _LongTime, uint8_t _RepeatSpeed);
|
||||
void bsp_ClearKey(void);
|
||||
|
@ -46,7 +46,7 @@ void bsp_StopTimer(uint8_t _id);
|
||||
uint8_t bsp_CheckTimer(uint8_t _id);
|
||||
int32_t bsp_GetRunTime(void);
|
||||
int32_t bsp_CheckRunTime(int32_t _LastTime);
|
||||
|
||||
int32_t bsp_SubRunTime(int32_t _T0, int32_t _T1);
|
||||
uint64_t bsp_GetRunTimeUs(void);
|
||||
int64_t bsp_CheckRunTimeUs(int64_t _LastTime);
|
||||
|
||||
|
@ -343,6 +343,35 @@ uint8_t bsp_GetKey2(void)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* 函 数 名: bsp_GetKey3
|
||||
* 功能说明: 从按键FIFO缓冲区读取一个键值。独立的读指针。
|
||||
* 形 参: 无
|
||||
* 返 回 值: 按键代码
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
uint8_t bsp_GetKey3(void)
|
||||
{
|
||||
uint8_t ret;
|
||||
|
||||
if (s_tKey.Read3 == s_tKey.Write)
|
||||
{
|
||||
return KEY_NONE;
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = s_tKey.Buf[s_tKey.Read3];
|
||||
|
||||
if (++s_tKey.Read3 >= KEY_FIFO_SIZE)
|
||||
{
|
||||
s_tKey.Read3 = 0;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* 函 数 名: bsp_GetKeyState
|
||||
@ -386,6 +415,7 @@ void bsp_ClearKey(void)
|
||||
s_tKey.Write = 0;
|
||||
s_tKey.Read = 0;
|
||||
s_tKey.Read2 = 0;
|
||||
s_tKey.Read3 = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -319,7 +319,7 @@ void bsp_InitTVCC(void)
|
||||
/* 第1步:打开GPIO时钟 */
|
||||
ALL_TVCC_GPIO_CLK_ENABLE();
|
||||
|
||||
TVCC_OFF();
|
||||
//TVCC_OFF();
|
||||
|
||||
gpio_init.Mode = GPIO_MODE_OUTPUT_PP; /* 设置开漏输出 */
|
||||
gpio_init.Pull = GPIO_NOPULL; /* 上下拉电阻不使能 */
|
||||
@ -327,7 +327,7 @@ void bsp_InitTVCC(void)
|
||||
gpio_init.Pin = TVCC_EN_PIN;
|
||||
HAL_GPIO_Init(TVCC_EN_GPIO, &gpio_init);
|
||||
|
||||
bsp_InitMCP4018(); /* 初始化数字电位器 */
|
||||
//bsp_InitMCP4018(); /* 初始化数字电位器 */
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -311,6 +311,21 @@ static void ST7789_ConfigGPIO(void)
|
||||
* 返 回 值: 无
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void ST7789_DrawScreenHard(void)
|
||||
{
|
||||
ST7789_SetDispWin(0, 0, 240, 240);
|
||||
|
||||
bsp_InitSPI5ParamFast();
|
||||
LCD_RS_1();
|
||||
LCD_CS_0(); /* 在DMA传输完毕后设置1 */
|
||||
|
||||
wTransferState = 0;
|
||||
|
||||
HAL_SPI_Transmit_DMA(&hspi5, (uint8_t *)(0x30000000), 240 * 240);
|
||||
|
||||
while (wTransferState == 0){}
|
||||
}
|
||||
|
||||
void ST7789_DrawScreen(void)
|
||||
{
|
||||
#if LCD_DMA_CIRCULE_MODE == 1
|
||||
@ -348,17 +363,7 @@ void ST7789_DrawScreen(void)
|
||||
|
||||
s_DispRefresh = 0;
|
||||
|
||||
ST7789_SetDispWin(0, 0, 240, 240);
|
||||
|
||||
bsp_InitSPI5ParamFast();
|
||||
LCD_RS_1();
|
||||
LCD_CS_0(); /* 在DMA传输完毕后设置1 */
|
||||
|
||||
wTransferState = 0;
|
||||
|
||||
HAL_SPI_Transmit_DMA(&hspi5, (uint8_t *)(0x30000000), 240 * 240);
|
||||
|
||||
while (wTransferState == 0){}
|
||||
ST7789_DrawScreenHard();
|
||||
|
||||
s_time1 = bsp_GetRunTime();
|
||||
|
||||
|
@ -82,7 +82,7 @@ static SOFT_TMR s_tTmr[TMR_COUNT] = {0};
|
||||
全局运行时间,单位1ms
|
||||
最长可以表示 24.85天,如果你的产品连续运行时间超过这个数,则必须考虑溢出问题
|
||||
*/
|
||||
__IO int32_t g_iRunTime = 0;
|
||||
|
||||
__IO uint64_t g_uiTimeHighWord = 0;
|
||||
|
||||
static __IO uint8_t g_ucEnableSystickISR = 0; /* 等待变量初始化 */
|
||||
@ -410,7 +410,7 @@ uint8_t bsp_CheckTimer(uint8_t _id)
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* 函 数 名: bsp_GetRunTime
|
||||
* 功能说明: 获取CPU运行时间,单位1ms。最长可以表示 24.85天,
|
||||
* 功能说明: 获取CPU运行时间,单位1ms。最长可以表示 2147483647ms = 24.85天
|
||||
* 如果你的产品连续运行时间超过这个数,则必须考虑溢出问题
|
||||
* 形 参: 无
|
||||
* 返 回 值: CPU运行时间,单位1ms
|
||||
@ -418,20 +418,13 @@ uint8_t bsp_CheckTimer(uint8_t _id)
|
||||
*/
|
||||
int32_t bsp_GetRunTime(void)
|
||||
{
|
||||
// int32_t runtime;
|
||||
uint64_t tus;
|
||||
int32_t ms;
|
||||
|
||||
// DISABLE_INT(); /* 关中断 */
|
||||
tus = (bsp_GetRunTimeUs() / 1000) & 0x7FFFFFFF; /* 取低4字节 */
|
||||
ms = tus;
|
||||
|
||||
// runtime = g_iRunTime; /* 这个变量在Systick中断中被改写,因此需要关中断进行保护 */
|
||||
|
||||
// ENABLE_INT(); /* 开中断 */
|
||||
|
||||
// return runtime;
|
||||
|
||||
/* 用硬件定时器计时后,4294秒,约 1.19小时 */
|
||||
g_iRunTime = (TIM_HARD->CNT / 1000);
|
||||
|
||||
return g_iRunTime;
|
||||
return ms;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -444,12 +437,13 @@ int32_t bsp_GetRunTime(void)
|
||||
*/
|
||||
int32_t bsp_CheckRunTime(int32_t _LastTime)
|
||||
{
|
||||
uint64_t tus;
|
||||
int32_t now_time;
|
||||
int32_t time_diff;
|
||||
|
||||
// DISABLE_INT(); /* 关中断 */
|
||||
now_time = TIM_HARD->CNT / 1000;
|
||||
// ENABLE_INT(); /* 开中断 */
|
||||
tus = bsp_GetRunTimeUs() / 1000;
|
||||
|
||||
now_time = tus & 0x7FFFFFFF; /* 取低4字节 */
|
||||
|
||||
if (now_time >= _LastTime)
|
||||
{
|
||||
@ -457,7 +451,31 @@ int32_t bsp_CheckRunTime(int32_t _LastTime)
|
||||
}
|
||||
else
|
||||
{
|
||||
time_diff = 0x7FFFFFFF - _LastTime + now_time;
|
||||
time_diff = 0x7FFFFFFF - _LastTime + now_time + 1;
|
||||
}
|
||||
|
||||
return time_diff;
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* 函 数 名: bsp_SubRunTime
|
||||
* 功能说明: 计算逝去时间, 差值范围 0 - 24.85天.
|
||||
* 形 参: _T0: 时间1, _T1: 比T0晚的时间
|
||||
* 返 回 值: 时间差,单位1ms
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
int32_t bsp_SubRunTime(int32_t _T0, int32_t _T1)
|
||||
{
|
||||
int32_t time_diff;
|
||||
|
||||
if (_T1 >= _T0)
|
||||
{
|
||||
time_diff = _T1 - _T0;
|
||||
}
|
||||
else
|
||||
{
|
||||
time_diff = 0x7FFFFFFF - _T0 + _T1 + 1;
|
||||
}
|
||||
|
||||
return time_diff;
|
||||
@ -466,7 +484,7 @@ int32_t bsp_CheckRunTime(int32_t _LastTime)
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* 函 数 名: bsp_GetRunTimeUs
|
||||
* 功能说明: 获取CPU运行时间,单位1ms。最长可以表示 24.85天,
|
||||
* 功能说明: 获取CPU运行时间,单位1us。最长可以表示 292471年
|
||||
* 如果你的产品连续运行时间超过这个数,则必须考虑溢出问题
|
||||
* 形 参: 无
|
||||
* 返 回 值: CPU运行时间,单位1us.
|
||||
@ -474,14 +492,18 @@ int32_t bsp_CheckRunTime(int32_t _LastTime)
|
||||
*/
|
||||
uint64_t bsp_GetRunTimeUs(void)
|
||||
{
|
||||
return TIM_HARD->CNT + g_uiTimeHighWord;;
|
||||
/*
|
||||
7FFF FFFF FFFF FFFF = 9223372036854775807 us = 9223372036854 秒
|
||||
= 2562047788 小时 = 106751991 天 = 292471年
|
||||
*/
|
||||
return TIM_HARD->CNT + (g_uiTimeHighWord * 0x100000000);
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* 函 数 名: bsp_CheckRunTimeUs
|
||||
* 功能说明: 计算当前运行时间和给定时刻之间的差值。处理了计数器循环。
|
||||
* 形 参: _LastTime 上个时刻
|
||||
* 形 参: _LastTime 过去的某个时刻
|
||||
* 返 回 值: 当前时间和过去时间的差值,单位1us
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
@ -490,7 +512,7 @@ int64_t bsp_CheckRunTimeUs(int64_t _LastTime)
|
||||
int64_t now_time;
|
||||
int64_t time_diff;
|
||||
|
||||
now_time = TIM_HARD->CNT + g_uiTimeHighWord;
|
||||
now_time = bsp_GetRunTimeUs();
|
||||
|
||||
if (now_time >= _LastTime)
|
||||
{
|
||||
@ -498,8 +520,7 @@ int64_t bsp_CheckRunTimeUs(int64_t _LastTime)
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Windwos计算机将 0xFFFFFFFFFFFFFFFF 做 -1处理 */
|
||||
time_diff = 0xFFFFFFFFFFFFFFFE - _LastTime + now_time;
|
||||
time_diff = now_time - _LastTime; /* 负数 */
|
||||
}
|
||||
|
||||
return time_diff;
|
||||
|
@ -146,6 +146,7 @@ void lua_DeInit(void)
|
||||
// 每行执行的钩子函数,用于终止lua程序
|
||||
extern MEMO_T g_LuaMemo;
|
||||
extern void PG_PrintText(char *_str);
|
||||
extern uint8_t g_LuaSubStatus;
|
||||
void LuaYeildHook(lua_State *_L, lua_Debug *ar)
|
||||
{
|
||||
if (s_lua_quit == 1)
|
||||
@ -160,11 +161,14 @@ void LuaYeildHook(lua_State *_L, lua_Debug *ar)
|
||||
uint8_t ucKeyCode;
|
||||
|
||||
/* 显示Lua程序print的字符串. 内容在bsp_uart_fif文件 fputc 函数填充的 */
|
||||
if (g_LuaMemo.Refresh == 1)
|
||||
if (g_LuaSubStatus == 0) /* 非GUI界面,才执行如下语句 */
|
||||
{
|
||||
LCD_SetEncode(ENCODE_GBK);
|
||||
LCD_DrawMemo(&g_LuaMemo);
|
||||
LCD_SetEncode(ENCODE_UTF8);
|
||||
if (g_LuaMemo.Refresh == 1)
|
||||
{
|
||||
LCD_SetEncode(ENCODE_GBK);
|
||||
LCD_DrawMemo(&g_LuaMemo);
|
||||
LCD_SetEncode(ENCODE_UTF8);
|
||||
}
|
||||
}
|
||||
|
||||
ucKeyCode = bsp_GetKey2(); /* 读取键值, 无键按下时返回 KEY_NONE = 0 */
|
||||
@ -173,7 +177,8 @@ void LuaYeildHook(lua_State *_L, lua_Debug *ar)
|
||||
/* 有键按下 */
|
||||
switch (ucKeyCode)
|
||||
{
|
||||
case KEY_LONG_DOWN_C: /* C键长按 - 终止Lua */
|
||||
case KEY_LONG_DOWN_C: /* C键长按 - 终止Lua */
|
||||
while(bsp_GetKey()); /* 清空lua运行期间的按键消息 */
|
||||
lua_yield(_L, 0);
|
||||
break;
|
||||
|
||||
@ -196,6 +201,8 @@ void LuaYeildHook(lua_State *_L, lua_Debug *ar)
|
||||
case KEY_LONG_DOWN_C: /* C键长按 - 终止Lua */
|
||||
PG_PrintText("用户终止运行");
|
||||
g_tProg.AutoStart = 0;
|
||||
|
||||
//while(bsp_GetKey()); /* 清空lua运行期间的按键消息 */
|
||||
lua_yield(_L, 0);
|
||||
break;
|
||||
|
||||
@ -261,7 +268,10 @@ void lua_DownLoadFile(char *_path)
|
||||
{
|
||||
s_lua_prog_buf[s_lua_prog_len] = 0; /* 文件末尾补0 */
|
||||
}
|
||||
}
|
||||
|
||||
void lua_RunLuaProg(void)
|
||||
{
|
||||
lua_do(s_lua_prog_buf);
|
||||
}
|
||||
|
||||
@ -849,7 +859,7 @@ static int get_key(lua_State* L)
|
||||
{
|
||||
uint8_t key;
|
||||
|
||||
key = bsp_GetKey();
|
||||
key = bsp_GetKey3();
|
||||
lua_pushnumber(L, key);
|
||||
return 1;
|
||||
}
|
||||
@ -1106,6 +1116,7 @@ static int lua_WriteDev(lua_State* L)
|
||||
* 返 回 值: 无
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
extern void lua_lcd_RegisterFun(void);
|
||||
static void lua_RegisterFunc(void)
|
||||
{
|
||||
//将指定的函数注册为Lua的全局函数变量,其中第一个字符串参数为Lua代码
|
||||
@ -1149,6 +1160,7 @@ static void lua_RegisterFunc(void)
|
||||
lua_reg_RegisterFun();
|
||||
lua_extio_RegisterFun();
|
||||
lua_uart_RegisterFun();
|
||||
lua_lcd_RegisterFun();
|
||||
}
|
||||
|
||||
/***************************** 安富莱电子 www.armfly.com (END OF FILE) *********************************/
|
||||
|
@ -50,6 +50,7 @@ void lua_Run(void);
|
||||
int lua_CheckGlobal(const char *name);
|
||||
void lua_do(char *buf);
|
||||
void lua_DownLoadFile(char *_path);
|
||||
void lua_RunLuaProg(void);
|
||||
|
||||
uint32_t lua_GetVarUint32(const char *_VarName, uint32_t _Default);
|
||||
|
||||
|
719
User/lua/if/lua_if_disp.c
Normal file
719
User/lua/if/lua_if_disp.c
Normal file
@ -0,0 +1,719 @@
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
*
|
||||
* 模块名称 : lua 显示接口
|
||||
* 文件名称 : lua_if_disp.c
|
||||
* 版 本 : V1.0
|
||||
* 说 明 : 提供绘图函数、显示函数
|
||||
* 修改记录 :
|
||||
* 版本号 日期 作者 说明
|
||||
* v1.0 2020-11-29 armfly 首发
|
||||
*
|
||||
* Copyright (C), 2019-2030, 安富莱电子 www.armfly.com
|
||||
*
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
|
||||
#include "lauxlib.h"
|
||||
#include "lualib.h"
|
||||
#include "time.h"
|
||||
#include "lua_if.h"
|
||||
#include "bsp.h"
|
||||
#include "param.h"
|
||||
#include "modbus_reg_addr.h"
|
||||
#include "modbus_register.h"
|
||||
#include "disp_lib.h"
|
||||
|
||||
/*
|
||||
API函数
|
||||
|
||||
lcd_clr(color) --清屏
|
||||
lcd_disp_str(x, y, str, fontzize, front_color, back_color) --显示字符串
|
||||
lcd_disp_str(x, y, str, fontzize, front_color, back_color, width, align) --显示字符串
|
||||
lcd_fill_rect(x, y, h, w, color) --清矩形窗口
|
||||
lcd_draw_rect(x, y, h, w, color)
|
||||
|
||||
lcd_draw_circle(x, y, r, color)
|
||||
lcd_draw_line(x1, y1, x2, y2, color)
|
||||
lcd_draw_points(xArray, yArray, size, color)
|
||||
lcd_disp_label(x, y, h, w, color, str, fontzize, front_color, back_color)
|
||||
|
||||
void DispLabelRound(uint16_t _usX, uint16_t _usY, uint16_t _usHeight, uint16_t _usWidth,
|
||||
uint16_t _usColor, char *_pStr, FONT_T *_tFont)
|
||||
|
||||
void LCD_ClrScr(uint16_t _usColor);
|
||||
void LCD_DispStr(uint16_t _usX, uint16_t _usY, char *_ptr, FONT_T *_tFont);
|
||||
void LCD_PutPixel(uint16_t _usX, uint16_t _usY, uint16_t _usColor);
|
||||
uint16_t LCD_GetPixel(uint16_t _usX, uint16_t _usY);
|
||||
void LCD_DrawLine(uint16_t _usX1, uint16_t _usY1, uint16_t _usX2, uint16_t _usY2, uint16_t _usColor);
|
||||
void LCD_DrawPoints(uint16_t *x, uint16_t *y, uint16_t _usSize, uint16_t _usColor);
|
||||
void LCD_DrawRect(uint16_t _usX, uint16_t _usY, uint16_t _usHeight, uint16_t _usWidth, uint16_t _usColor);
|
||||
void LCD_DrawCircle(uint16_t _usX, uint16_t _usY, uint16_t _usRadius, uint16_t _usColor);
|
||||
void LCD_DrawBMP(uint16_t _usX, uint16_t _usY, uint16_t _usHeight, uint16_t _usWidth, uint16_t *_ptr);
|
||||
void LCD_SetBackLight(uint8_t _bright);
|
||||
uint8_t LCD_GetBackLight(void);
|
||||
|
||||
void LCD_Fill_Rect(uint16_t _usX, uint16_t _usY, uint16_t _usHeight, uint16_t _usWidth, uint16_t _usColor);
|
||||
*/
|
||||
static int lua_RGB565(lua_State* L);
|
||||
static int lua_LcdRefresh(lua_State* L);
|
||||
static int lua_LcdClr(lua_State* L);
|
||||
static int lua_DispStr(lua_State* L);
|
||||
static int lua_FillRect(lua_State* L);
|
||||
static int lua_DrawRect(lua_State* L);
|
||||
static int lua_DrawCircle(lua_State* L);
|
||||
static int lua_DrawLine(lua_State* L);
|
||||
static int lua_DrawPoints(lua_State* L);
|
||||
static int lua_DrawLabel(lua_State* L);
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* 函 数 名: lua_adc_RegisterFun
|
||||
* 功能说明: 注册lua C语言接口函数
|
||||
* 形 参: 无
|
||||
* 返 回 值: 无
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void lua_lcd_RegisterFun(void)
|
||||
{
|
||||
//将指定的函数注册为Lua的全局函数变量,其中第一个字符串参数为Lua代码
|
||||
//在调用C函数时使用的全局函数名,第二个参数为实际C函数的指针。
|
||||
lua_register(g_Lua, "RGB565", lua_RGB565);
|
||||
lua_register(g_Lua, "lcd_refresh", lua_LcdRefresh);
|
||||
lua_register(g_Lua, "lcd_clr", lua_LcdClr);
|
||||
lua_register(g_Lua, "lcd_disp_str", lua_DispStr);
|
||||
lua_register(g_Lua, "lcd_fill_rect", lua_FillRect);
|
||||
lua_register(g_Lua, "lcd_draw_rect", lua_DrawRect);
|
||||
lua_register(g_Lua, "lcd_draw_circle", lua_DrawCircle);
|
||||
lua_register(g_Lua, "lcd_draw_line", lua_DrawLine);
|
||||
lua_register(g_Lua, "lcd_draw_points", lua_DrawPoints);
|
||||
lua_register(g_Lua, "lcd_disp_label", lua_DrawLabel);
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* 函 数 名: lua_LcdRefresh
|
||||
* 功能说明: lcd_refresh()
|
||||
* 形 参: 无
|
||||
* 返 回 值: 无
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
extern void ST7789_DrawScreenHard(void);
|
||||
static int lua_LcdRefresh(lua_State* L)
|
||||
{
|
||||
ST7789_DrawScreenHard();
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* 函 数 名: lua_RGB565
|
||||
* 功能说明: RGB565(255,255,255) 颜色转换为565
|
||||
* 形 参: R : G : B 红蓝分量(0-255)
|
||||
* 返 回 值: 无
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
static int lua_RGB565(lua_State* L)
|
||||
{
|
||||
uint16_t r,g,b;
|
||||
uint16_t color = 0;
|
||||
|
||||
if (lua_type(L, 1) == LUA_TNUMBER)
|
||||
{
|
||||
r = luaL_checknumber(L, 1);
|
||||
if (lua_type(L, 2) == LUA_TNUMBER)
|
||||
{
|
||||
g = luaL_checknumber(L, 2);
|
||||
if (lua_type(L, 3) == LUA_TNUMBER)
|
||||
{
|
||||
b = luaL_checknumber(L, 3);
|
||||
|
||||
color = RGB(r,g,b);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
lua_pushnumber(L, color);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* 函 数 名: lua_LcdClr
|
||||
* 功能说明: lcd_clr(color) --清屏
|
||||
* 形 参: color : 颜色 RGB565格式
|
||||
* 返 回 值: 无
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
static int lua_LcdClr(lua_State* L)
|
||||
{
|
||||
uint16_t color;
|
||||
|
||||
if (lua_type(L, 1) == LUA_TNUMBER) /* 第1个参数 */
|
||||
{
|
||||
color = luaL_checknumber(L, 1);
|
||||
}
|
||||
|
||||
LCD_ClrScr(color);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* 函 数 名: lua_DispStr
|
||||
* 功能说明: lcd_disp_str(x, y, str, fontzize, front_color, back_color, width, align) --显示字符串
|
||||
* 形 参: ...
|
||||
* 返 回 值: 无
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
static int lua_DispStr(lua_State* L)
|
||||
{
|
||||
uint16_t x, y;
|
||||
const char *str;
|
||||
size_t len;
|
||||
uint8_t fontzize;
|
||||
uint16_t front_color, back_color;
|
||||
uint16_t width;
|
||||
uint8_t align;
|
||||
|
||||
/* 第1个参数 */
|
||||
if (lua_type(L, 1) == LUA_TNUMBER)
|
||||
{
|
||||
x = luaL_checknumber(L, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第2个参数 */
|
||||
if (lua_type(L, 2) == LUA_TNUMBER)
|
||||
{
|
||||
y = luaL_checknumber(L, 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第3个参数 */
|
||||
if (lua_type(L, 3) == LUA_TSTRING)
|
||||
{
|
||||
str = luaL_checklstring(L, 3, &len);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第4个参数 */
|
||||
if (lua_type(L, 4) == LUA_TNUMBER)
|
||||
{
|
||||
fontzize = luaL_checknumber(L, 4);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第5个参数 */
|
||||
if (lua_type(L, 5) == LUA_TNUMBER)
|
||||
{
|
||||
front_color = luaL_checknumber(L, 5);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第6个参数 */
|
||||
if (lua_type(L, 6) == LUA_TNUMBER)
|
||||
{
|
||||
back_color = luaL_checknumber(L, 6);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第7个参数 */
|
||||
if (lua_type(L, 7) == LUA_TNUMBER)
|
||||
{
|
||||
width = luaL_checknumber(L, 7);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第8个参数 */
|
||||
if (lua_type(L, 8) == LUA_TNUMBER)
|
||||
{
|
||||
align = luaL_checknumber(L, 8);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
{
|
||||
FONT_T tFont;
|
||||
|
||||
if (fontzize == 12) tFont.FontCode = FC_ST_12;
|
||||
else if (fontzize == 16) tFont.FontCode = FC_ST_16;
|
||||
else if (fontzize == 24) tFont.FontCode = FC_ST_24;
|
||||
else if (fontzize == 32) tFont.FontCode = FC_ST_32;
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
tFont.FrontColor = front_color; /* 字体颜色 */
|
||||
tFont.BackColor = back_color; /* 文字背景颜色 */
|
||||
tFont.Space = 0;
|
||||
|
||||
LCD_SetEncode(ENCODE_GBK);
|
||||
LCD_DispStrEx(x, y, (char *)str, &tFont, width, align);
|
||||
LCD_SetEncode(ENCODE_UTF8);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* 函 数 名: lua_FillRect
|
||||
* 功能说明: lcd_fill_rect(x, y, h, w, color) --清矩形窗口
|
||||
* 形 参: ...
|
||||
* 返 回 值: 无
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
static int lua_FillRect(lua_State* L)
|
||||
{
|
||||
uint16_t x, y, h, w;
|
||||
uint16_t color;
|
||||
|
||||
/* 第1个参数 */
|
||||
if (lua_type(L, 1) == LUA_TNUMBER)
|
||||
{
|
||||
x = luaL_checknumber(L, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第2个参数 */
|
||||
if (lua_type(L, 2) == LUA_TNUMBER)
|
||||
{
|
||||
y = luaL_checknumber(L, 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第3个参数 */
|
||||
if (lua_type(L, 3) == LUA_TNUMBER)
|
||||
{
|
||||
h = luaL_checknumber(L, 3);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第4个参数 */
|
||||
if (lua_type(L, 4) == LUA_TNUMBER)
|
||||
{
|
||||
w = luaL_checknumber(L, 4);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第5个参数 */
|
||||
if (lua_type(L, 5) == LUA_TNUMBER)
|
||||
{
|
||||
color = luaL_checknumber(L, 5);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
LCD_Fill_Rect(x, y, h, w, color);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* 函 数 名: lua_DrawRect
|
||||
* 功能说明: lcd_draw_rect(x, y, h, w, color) --清矩形窗口
|
||||
* 形 参: ...
|
||||
* 返 回 值: 无
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
static int lua_DrawRect(lua_State* L)
|
||||
{
|
||||
uint16_t x, y, h, w;
|
||||
uint16_t color;
|
||||
|
||||
/* 第1个参数 */
|
||||
if (lua_type(L, 1) == LUA_TNUMBER)
|
||||
{
|
||||
x = luaL_checknumber(L, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第2个参数 */
|
||||
if (lua_type(L, 2) == LUA_TNUMBER)
|
||||
{
|
||||
y = luaL_checknumber(L, 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第3个参数 */
|
||||
if (lua_type(L, 3) == LUA_TNUMBER)
|
||||
{
|
||||
h = luaL_checknumber(L, 3);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第4个参数 */
|
||||
if (lua_type(L, 4) == LUA_TNUMBER)
|
||||
{
|
||||
w = luaL_checknumber(L, 4);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第5个参数 */
|
||||
if (lua_type(L, 5) == LUA_TNUMBER)
|
||||
{
|
||||
color = luaL_checknumber(L, 5);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
LCD_DrawRect(x, y, h, w, color);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* 函 数 名: lua_DrawCircle
|
||||
* 功能说明: lcd_fill_circle(x, y, r, color)
|
||||
* 形 参: ...
|
||||
* 返 回 值: 无
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
static int lua_DrawCircle(lua_State* L)
|
||||
{
|
||||
uint16_t x, y, r;
|
||||
uint16_t color;
|
||||
|
||||
/* 第1个参数 */
|
||||
if (lua_type(L, 1) == LUA_TNUMBER)
|
||||
{
|
||||
x = luaL_checknumber(L, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第2个参数 */
|
||||
if (lua_type(L, 2) == LUA_TNUMBER)
|
||||
{
|
||||
y = luaL_checknumber(L, 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第3个参数 */
|
||||
if (lua_type(L, 3) == LUA_TNUMBER)
|
||||
{
|
||||
r = luaL_checknumber(L, 3);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第4个参数 */
|
||||
if (lua_type(L, 4) == LUA_TNUMBER)
|
||||
{
|
||||
color = luaL_checknumber(L, 4);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
LCD_DrawCircle(x, y, r, color);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* 函 数 名: lua_DrawLine
|
||||
* 功能说明: lcd_draw_line(x1, y1, x2, y2, color)
|
||||
* 形 参: ...
|
||||
* 返 回 值: 无
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
static int lua_DrawLine(lua_State* L)
|
||||
{
|
||||
uint16_t x1, y1, x2, y2;
|
||||
uint16_t color;
|
||||
|
||||
/* 第1个参数 */
|
||||
if (lua_type(L, 1) == LUA_TNUMBER)
|
||||
{
|
||||
x1 = luaL_checknumber(L, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第2个参数 */
|
||||
if (lua_type(L, 2) == LUA_TNUMBER)
|
||||
{
|
||||
y1 = luaL_checknumber(L, 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第3个参数 */
|
||||
if (lua_type(L, 3) == LUA_TNUMBER)
|
||||
{
|
||||
x2 = luaL_checknumber(L, 3);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第4个参数 */
|
||||
if (lua_type(L, 4) == LUA_TNUMBER)
|
||||
{
|
||||
y2 = luaL_checknumber(L, 4);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第5个参数 */
|
||||
if (lua_type(L, 5) == LUA_TNUMBER)
|
||||
{
|
||||
color = luaL_checknumber(L, 4);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
LCD_DrawLine(x1, y1, x2, y2, color);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* 函 数 名: lua_DrawCircle
|
||||
* 功能说明: lcd_draw_line(x, y, r, color)
|
||||
* 形 参: ...
|
||||
* 返 回 值: 无
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
static int lua_DrawPoints(lua_State* L)
|
||||
{
|
||||
const char *pX;
|
||||
const char *pY;
|
||||
size_t len;
|
||||
uint16_t count;
|
||||
uint16_t color;
|
||||
|
||||
/* 第1个参数 */
|
||||
if (lua_type(L, 1) == LUA_TSTRING)
|
||||
{
|
||||
pX = luaL_checklstring(L, 1, &len);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第2个参数 */
|
||||
if (lua_type(L, 2) == LUA_TSTRING)
|
||||
{
|
||||
pY = luaL_checklstring(L, 2, &len);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第3个参数 */
|
||||
if (lua_type(L, 3) == LUA_TNUMBER)
|
||||
{
|
||||
count = luaL_checknumber(L, 3);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第4个参数 */
|
||||
if (lua_type(L, 4) == LUA_TNUMBER)
|
||||
{
|
||||
color = luaL_checknumber(L, 4);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
{
|
||||
uint16_t i;
|
||||
uint16_t x1, y1;
|
||||
uint16_t x2, y2;
|
||||
|
||||
for (i = 0; i < count - 1; i++)
|
||||
{
|
||||
x1 = (pX[0] << 8) + pX[1];
|
||||
x2 = (pX[2] << 8) + pX[3];
|
||||
pX += 2;
|
||||
|
||||
|
||||
y1 = (pY[0] << 8) + pY[1];
|
||||
y2 = (pY[2] << 8) + pY[3];
|
||||
pY += 2;
|
||||
|
||||
LCD_DrawLine(x1, y1, x2, y2, color);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* 函 数 名: lua_DrawLabel
|
||||
* 功能说明: lcd_disp_label(x, y, h, w, color, str, fontzize, front_color, back_color)
|
||||
* 形 参: ...
|
||||
* 返 回 值: 无
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
static int lua_DrawLabel(lua_State* L)
|
||||
{
|
||||
uint16_t x, y, h, w;
|
||||
uint16_t color;
|
||||
const char *str;
|
||||
size_t len;
|
||||
uint16_t fontzize, front_color, back_color;
|
||||
|
||||
/* 第1个参数 */
|
||||
if (lua_type(L, 1) == LUA_TNUMBER)
|
||||
{
|
||||
x = luaL_checknumber(L, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第2个参数 */
|
||||
if (lua_type(L, 2) == LUA_TNUMBER)
|
||||
{
|
||||
y = luaL_checknumber(L, 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第3个参数 */
|
||||
if (lua_type(L, 3) == LUA_TNUMBER)
|
||||
{
|
||||
h = luaL_checknumber(L, 3);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第4个参数 */
|
||||
if (lua_type(L, 4) == LUA_TNUMBER)
|
||||
{
|
||||
w = luaL_checknumber(L, 4);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第5个参数 */
|
||||
if (lua_type(L, 5) == LUA_TNUMBER)
|
||||
{
|
||||
color = luaL_checknumber(L, 5);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 第6个参数 */
|
||||
if (lua_type(L, 6) == LUA_TSTRING)
|
||||
{
|
||||
str = luaL_checklstring(L, 6, &len);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
{
|
||||
FONT_T tFont;
|
||||
|
||||
if (fontzize == 12) tFont.FontCode = FC_ST_12;
|
||||
else if (fontzize == 16) tFont.FontCode = FC_ST_16;
|
||||
else if (fontzize == 24) tFont.FontCode = FC_ST_24;
|
||||
else if (fontzize == 32) tFont.FontCode = FC_ST_32;
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
tFont.FrontColor = front_color; /* 字体颜色 */
|
||||
tFont.BackColor = back_color; /* 文字背景颜色 */
|
||||
tFont.Space = 0;
|
||||
|
||||
DispLabelRound(x, y, h, w, color, (char *)str, &tFont);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/***************************** 安富莱电子 www.armfly.com (END OF FILE) *********************************/
|
Loading…
x
Reference in New Issue
Block a user