From 01324e987ee508a6fe4cf59d73b9de1699c8b5b1 Mon Sep 17 00:00:00 2001 From: XerolySkinner <63062392+XerolySkinner@users.noreply.github.com> Date: Thu, 24 Nov 2022 23:56:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5BMP=E5=BA=93,=E5=8A=A0?= =?UTF-8?q?=E5=85=A5=E5=B8=B8=E8=A7=81=E4=BD=8D=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Doc/docbook/_callback_8cpp__incl.md5 | 2 +- Doc/docbook/_main_system_8cpp.xml | 4 +- Doc/docbook/_main_system_8cpp__incl.md5 | 2 +- Doc/docbook/_s_t_l___queue_8cpp__incl.md5 | 2 +- Doc/docbook/_s_t_l___queue_8h__incl.md5 | 2 +- Doc/docbook/_s_t_l___stack_8cpp__incl.md5 | 2 +- Doc/docbook/_s_t_l___stack_8h__incl.md5 | 2 +- Doc/docbook/annotated.xml | 18 +- Doc/docbook/bsp___a_t24_c00_8cpp__incl.md5 | 2 +- Doc/docbook/bsp___a_t24_c00_8h__incl.md5 | 2 +- Doc/docbook/bsp___b_m_p_8cpp.xml | 26 + Doc/docbook/bsp___b_m_p_8cpp__incl.md5 | 1 + Doc/docbook/bsp___b_m_p_8cpp__incl.png | Bin 0 -> 5129 bytes Doc/docbook/bsp___b_m_p_8cpp_source.xml | 86 +++ Doc/docbook/bsp___b_m_p_8h.xml | 60 ++ Doc/docbook/bsp___b_m_p_8h__dep__incl.md5 | 1 + Doc/docbook/bsp___b_m_p_8h__dep__incl.png | Bin 0 -> 2257 bytes Doc/docbook/bsp___b_m_p_8h__incl.md5 | 1 + Doc/docbook/bsp___b_m_p_8h__incl.png | Bin 0 -> 4115 bytes Doc/docbook/bsp___b_m_p_8h_source.xml | 91 +++ Doc/docbook/bsp___c_r_c_8cpp__incl.md5 | 2 +- Doc/docbook/bsp___c_r_c_8h__incl.md5 | 2 +- Doc/docbook/bsp___calculus_8cpp.xml | 26 + Doc/docbook/bsp___calculus_8cpp__incl.md5 | 1 + Doc/docbook/bsp___calculus_8cpp__incl.png | Bin 0 -> 5251 bytes Doc/docbook/bsp___calculus_8cpp_source.xml | 78 +++ Doc/docbook/bsp___calculus_8h.xml | 48 ++ Doc/docbook/bsp___calculus_8h__dep__incl.md5 | 1 + Doc/docbook/bsp___calculus_8h__dep__incl.png | Bin 0 -> 2383 bytes Doc/docbook/bsp___calculus_8h__incl.md5 | 1 + Doc/docbook/bsp___calculus_8h__incl.png | Bin 0 -> 4198 bytes Doc/docbook/bsp___calculus_8h_source.xml | 68 ++ Doc/docbook/bsp___digit_8cpp__incl.md5 | 2 +- Doc/docbook/bsp___digit_8h__incl.md5 | 2 +- Doc/docbook/bsp___i_i_c_8cpp__incl.md5 | 2 +- Doc/docbook/bsp___i_i_c_8h__incl.md5 | 2 +- .../bsp___i_i_c___s_t_m32_8cpp__incl.md5 | 2 +- .../bsp___i_i_c___s_t_m32_8cpp_source.xml | 22 +- .../bsp___i_i_c___s_t_m32_8h__incl.md5 | 2 +- Doc/docbook/bsp___m_a_x6675_8cpp__incl.md5 | 2 +- Doc/docbook/bsp___m_a_x6675_8h__incl.md5 | 2 +- Doc/docbook/bsp___mod_bus_8cpp__incl.md5 | 2 +- Doc/docbook/bsp___mod_bus_8h__incl.md5 | 2 +- .../bsp___mod_bus___s_t_m32_8cpp__incl.md5 | 2 +- .../bsp___mod_bus___s_t_m32_8h__incl.md5 | 2 +- .../bsp___o_l_e_d___s_t_m32_8cpp__incl.md5 | 2 +- .../bsp___o_l_e_d___s_t_m32_8h__incl.md5 | 2 +- Doc/docbook/bsp___p_i_d_8cpp__incl.md5 | 2 +- Doc/docbook/bsp___p_i_d_8h__incl.md5 | 2 +- Doc/docbook/bsp___s_d_8cpp__incl.md5 | 2 +- Doc/docbook/bsp___s_d_8h.xml | 12 + Doc/docbook/bsp___s_d_8h__dep__incl.md5 | 2 +- Doc/docbook/bsp___s_d_8h__incl.md5 | 2 +- Doc/docbook/bsp__flash_8c.xml | 243 +++++++ Doc/docbook/bsp__flash_8c__incl.md5 | 1 + Doc/docbook/bsp__flash_8c__incl.png | Bin 0 -> 1736 bytes ...5549058e1315d29263c0b26816bcffb_cgraph.md5 | 1 + ...5549058e1315d29263c0b26816bcffb_cgraph.png | Bin 0 -> 1202 bytes ...4a679e19a8af2c7ddfa86f4310a13d_icgraph.md5 | 1 + ...4a679e19a8af2c7ddfa86f4310a13d_icgraph.png | Bin 0 -> 1212 bytes ...1a1ff74b284a19aa3872b6f3d6abd11_cgraph.md5 | 1 + ...1a1ff74b284a19aa3872b6f3d6abd11_cgraph.png | Bin 0 -> 1423 bytes ...304997d797af3400074bdb68e5de1c_icgraph.md5 | 1 + ...304997d797af3400074bdb68e5de1c_icgraph.png | Bin 0 -> 1407 bytes Doc/docbook/bsp__flash_8c_source.xml | 63 ++ Doc/docbook/bsp__flash_8h.xml | 204 ++++++ Doc/docbook/bsp__flash_8h__incl.md5 | 1 + Doc/docbook/bsp__flash_8h__incl.png | Bin 0 -> 1735 bytes ...5549058e1315d29263c0b26816bcffb_cgraph.md5 | 1 + ...5549058e1315d29263c0b26816bcffb_cgraph.png | Bin 0 -> 1202 bytes ...4a679e19a8af2c7ddfa86f4310a13d_icgraph.md5 | 1 + ...4a679e19a8af2c7ddfa86f4310a13d_icgraph.png | Bin 0 -> 1212 bytes ...1a1ff74b284a19aa3872b6f3d6abd11_cgraph.md5 | 1 + ...1a1ff74b284a19aa3872b6f3d6abd11_cgraph.png | Bin 0 -> 1423 bytes ...304997d797af3400074bdb68e5de1c_icgraph.md5 | 1 + ...304997d797af3400074bdb68e5de1c_icgraph.png | Bin 0 -> 1407 bytes Doc/docbook/bsp__flash_8h_source.xml | 39 ++ Doc/docbook/classbsp___b_m_p.xml | 318 +++++++++ Doc/docbook/classbsp___b_m_p__coll__graph.md5 | 1 + Doc/docbook/classbsp___b_m_p__coll__graph.png | Bin 0 -> 6438 bytes Doc/docbook/classbsp___differential.xml | 106 +++ Doc/docbook/classbsp___i_i_c.xml | 6 +- Doc/docbook/classbsp___i_i_c___s_t_m32.xml | 2 +- Doc/docbook/classbsp___integral.xml | 339 +++++++++ ...6d9e02d1146744fe80ebab69070abb4_cgraph.md5 | 1 + ...6d9e02d1146744fe80ebab69070abb4_cgraph.png | Bin 0 -> 1586 bytes ...2b6143ca39861a83b77befc131bf5e_icgraph.md5 | 1 + ...2b6143ca39861a83b77befc131bf5e_icgraph.png | Bin 0 -> 1580 bytes .../dir_7d600478d4be1ed73c651a71d29ab217.xml | 28 + Doc/docbook/index.xml | 20 + Doc/docbook/mpu6050_8cpp__incl.md5 | 2 +- Doc/docbook/mpu6050_8h__incl.md5 | 2 +- ...ruct___b_i_t_m_a_p_f_i_l_e_h_e_a_d_e_r.xml | 75 ++ Doc/docbook/struct___b_i_t_m_a_p_i_n_f_o.xml | 66 ++ ...uct___b_i_t_m_a_p_i_n_f_o__coll__graph.md5 | 1 + ...uct___b_i_t_m_a_p_i_n_f_o__coll__graph.png | Bin 0 -> 5115 bytes ...ruct___b_i_t_m_a_p_i_n_f_o_h_e_a_d_e_r.xml | 129 ++++ Doc/docbook/struct___r_g_b_q_u_a_d.xml | 66 ++ .../structstruct__bsp___flash___pack.xml | 60 ++ Doc/docbook/todo.xml | 14 +- Doc/docbook/varint_8h.xml | 290 ++++++++ Doc/docbook/varint_8h__dep__incl.md5 | 2 +- Doc/docbook/varint_8h__dep__incl.png | Bin 101256 -> 119049 bytes Doc/docbook/varint_8h__incl.md5 | 2 +- Doc/docbook/varint_8h_source.xml | 26 +- Doc/docbook/vartable_8cpp__incl.md5 | 2 +- Doc/docbook/vartable_8h.xml | 4 +- Doc/docbook/vartable_8h__incl.md5 | 2 +- Doc/html/_callback_8cpp.html | 2 +- Doc/html/_callback_8cpp__incl.map | 2 +- Doc/html/_callback_8cpp__incl.md5 | 2 +- Doc/html/_main_system_8cpp.html | 6 +- Doc/html/_main_system_8cpp__incl.map | 2 +- Doc/html/_main_system_8cpp__incl.md5 | 2 +- Doc/html/_s_t_l___queue_8cpp.html | 2 +- Doc/html/_s_t_l___queue_8cpp__incl.map | 2 +- Doc/html/_s_t_l___queue_8cpp__incl.md5 | 2 +- Doc/html/_s_t_l___queue_8h.html | 2 +- Doc/html/_s_t_l___queue_8h__incl.map | 2 +- Doc/html/_s_t_l___queue_8h__incl.md5 | 2 +- Doc/html/_s_t_l___queue_8h_source.html | 2 +- Doc/html/_s_t_l___stack_8cpp.html | 2 +- Doc/html/_s_t_l___stack_8cpp__incl.map | 2 +- Doc/html/_s_t_l___stack_8cpp__incl.md5 | 2 +- Doc/html/_s_t_l___stack_8h.html | 2 +- Doc/html/_s_t_l___stack_8h__incl.map | 2 +- Doc/html/_s_t_l___stack_8h__incl.md5 | 2 +- Doc/html/_s_t_l___stack_8h_source.html | 2 +- Doc/html/annotated.html | 50 +- Doc/html/bsp___a_t24_c00_8cpp.html | 2 +- Doc/html/bsp___a_t24_c00_8cpp__incl.map | 2 +- Doc/html/bsp___a_t24_c00_8cpp__incl.md5 | 2 +- Doc/html/bsp___a_t24_c00_8cpp_source.html | 2 +- Doc/html/bsp___a_t24_c00_8h.html | 2 +- Doc/html/bsp___a_t24_c00_8h__incl.map | 2 +- Doc/html/bsp___a_t24_c00_8h__incl.md5 | 2 +- Doc/html/bsp___a_t24_c00_8h_source.html | 2 +- Doc/html/bsp___b_m_p_8cpp.html | 108 +++ Doc/html/bsp___b_m_p_8cpp__incl.map | 7 + Doc/html/bsp___b_m_p_8cpp__incl.md5 | 1 + Doc/html/bsp___b_m_p_8cpp__incl.png | Bin 0 -> 5129 bytes Doc/html/bsp___b_m_p_8cpp_source.html | 204 ++++++ Doc/html/bsp___b_m_p_8h.html | 138 ++++ Doc/html/bsp___b_m_p_8h__dep__incl.map | 4 + Doc/html/bsp___b_m_p_8h__dep__incl.md5 | 1 + Doc/html/bsp___b_m_p_8h__dep__incl.png | Bin 0 -> 2257 bytes Doc/html/bsp___b_m_p_8h__incl.map | 6 + Doc/html/bsp___b_m_p_8h__incl.md5 | 1 + Doc/html/bsp___b_m_p_8h__incl.png | Bin 0 -> 4115 bytes Doc/html/bsp___b_m_p_8h_source.html | 212 ++++++ Doc/html/bsp___c_r_c_8cpp.html | 2 +- Doc/html/bsp___c_r_c_8cpp__incl.map | 2 +- Doc/html/bsp___c_r_c_8cpp__incl.md5 | 2 +- Doc/html/bsp___c_r_c_8h.html | 2 +- Doc/html/bsp___c_r_c_8h__incl.map | 2 +- Doc/html/bsp___c_r_c_8h__incl.md5 | 2 +- Doc/html/bsp___c_r_c_8h_source.html | 2 +- Doc/html/bsp___calculus_8cpp.html | 108 +++ Doc/html/bsp___calculus_8cpp__incl.map | 7 + Doc/html/bsp___calculus_8cpp__incl.md5 | 1 + Doc/html/bsp___calculus_8cpp__incl.png | Bin 0 -> 5251 bytes Doc/html/bsp___calculus_8cpp_source.html | 173 +++++ Doc/html/bsp___calculus_8h.html | 129 ++++ Doc/html/bsp___calculus_8h__dep__incl.map | 4 + Doc/html/bsp___calculus_8h__dep__incl.md5 | 1 + Doc/html/bsp___calculus_8h__dep__incl.png | Bin 0 -> 2383 bytes Doc/html/bsp___calculus_8h__incl.map | 6 + Doc/html/bsp___calculus_8h__incl.md5 | 1 + Doc/html/bsp___calculus_8h__incl.png | Bin 0 -> 4198 bytes Doc/html/bsp___calculus_8h_source.html | 168 +++++ Doc/html/bsp___digit_8cpp.html | 2 +- Doc/html/bsp___digit_8cpp__incl.map | 2 +- Doc/html/bsp___digit_8cpp__incl.md5 | 2 +- Doc/html/bsp___digit_8h.html | 2 +- Doc/html/bsp___digit_8h__incl.map | 2 +- Doc/html/bsp___digit_8h__incl.md5 | 2 +- Doc/html/bsp___digit_8h_source.html | 2 +- Doc/html/bsp___i_i_c_8cpp.html | 2 +- Doc/html/bsp___i_i_c_8cpp__incl.map | 2 +- Doc/html/bsp___i_i_c_8cpp__incl.md5 | 2 +- Doc/html/bsp___i_i_c_8h.html | 2 +- Doc/html/bsp___i_i_c_8h__incl.map | 2 +- Doc/html/bsp___i_i_c_8h__incl.md5 | 2 +- Doc/html/bsp___i_i_c_8h_source.html | 2 +- Doc/html/bsp___i_i_c___s_t_m32_8cpp.html | 2 +- Doc/html/bsp___i_i_c___s_t_m32_8cpp__incl.map | 2 +- Doc/html/bsp___i_i_c___s_t_m32_8cpp__incl.md5 | 2 +- .../bsp___i_i_c___s_t_m32_8cpp_source.html | 24 +- Doc/html/bsp___i_i_c___s_t_m32_8h.html | 2 +- Doc/html/bsp___i_i_c___s_t_m32_8h__incl.map | 2 +- Doc/html/bsp___i_i_c___s_t_m32_8h__incl.md5 | 2 +- Doc/html/bsp___i_i_c___s_t_m32_8h_source.html | 4 +- Doc/html/bsp___m_a_x6675_8cpp.html | 2 +- Doc/html/bsp___m_a_x6675_8cpp__incl.map | 2 +- Doc/html/bsp___m_a_x6675_8cpp__incl.md5 | 2 +- Doc/html/bsp___m_a_x6675_8h.html | 2 +- Doc/html/bsp___m_a_x6675_8h__incl.map | 2 +- Doc/html/bsp___m_a_x6675_8h__incl.md5 | 2 +- Doc/html/bsp___m_a_x6675_8h_source.html | 2 +- Doc/html/bsp___mod_bus_8cpp.html | 2 +- Doc/html/bsp___mod_bus_8cpp__incl.map | 2 +- Doc/html/bsp___mod_bus_8cpp__incl.md5 | 2 +- Doc/html/bsp___mod_bus_8h.html | 2 +- Doc/html/bsp___mod_bus_8h__incl.map | 2 +- Doc/html/bsp___mod_bus_8h__incl.md5 | 2 +- Doc/html/bsp___mod_bus_8h_source.html | 2 +- Doc/html/bsp___mod_bus___s_t_m32_8cpp.html | 2 +- .../bsp___mod_bus___s_t_m32_8cpp__incl.map | 2 +- .../bsp___mod_bus___s_t_m32_8cpp__incl.md5 | 2 +- Doc/html/bsp___mod_bus___s_t_m32_8h.html | 2 +- Doc/html/bsp___mod_bus___s_t_m32_8h__incl.map | 2 +- Doc/html/bsp___mod_bus___s_t_m32_8h__incl.md5 | 2 +- .../bsp___mod_bus___s_t_m32_8h_source.html | 2 +- Doc/html/bsp___o_l_e_d___s_t_m32_8cpp.html | 2 +- .../bsp___o_l_e_d___s_t_m32_8cpp__incl.map | 2 +- .../bsp___o_l_e_d___s_t_m32_8cpp__incl.md5 | 2 +- Doc/html/bsp___o_l_e_d___s_t_m32_8h.html | 2 +- Doc/html/bsp___o_l_e_d___s_t_m32_8h__incl.map | 2 +- Doc/html/bsp___o_l_e_d___s_t_m32_8h__incl.md5 | 2 +- .../bsp___o_l_e_d___s_t_m32_8h_source.html | 2 +- Doc/html/bsp___p_i_d_8cpp.html | 2 +- Doc/html/bsp___p_i_d_8cpp__incl.map | 2 +- Doc/html/bsp___p_i_d_8cpp__incl.md5 | 2 +- Doc/html/bsp___p_i_d_8h.html | 2 +- Doc/html/bsp___p_i_d_8h__incl.map | 2 +- Doc/html/bsp___p_i_d_8h__incl.md5 | 2 +- Doc/html/bsp___p_i_d_8h_source.html | 2 +- Doc/html/bsp___s_d_8cpp.html | 4 +- Doc/html/bsp___s_d_8cpp__incl.map | 4 +- Doc/html/bsp___s_d_8cpp__incl.md5 | 2 +- Doc/html/bsp___s_d_8cpp_source.html | 2 +- Doc/html/bsp___s_d_8h.html | 15 +- Doc/html/bsp___s_d_8h__dep__incl.map | 2 +- Doc/html/bsp___s_d_8h__dep__incl.md5 | 2 +- Doc/html/bsp___s_d_8h__incl.map | 4 +- Doc/html/bsp___s_d_8h__incl.md5 | 2 +- Doc/html/bsp___s_d_8h_source.html | 2 +- Doc/html/bsp__flash_8c.html | 335 +++++++++ Doc/html/bsp__flash_8c__incl.map | 4 + Doc/html/bsp__flash_8c__incl.md5 | 1 + Doc/html/bsp__flash_8c__incl.png | Bin 0 -> 1736 bytes ...5549058e1315d29263c0b26816bcffb_cgraph.map | 4 + ...5549058e1315d29263c0b26816bcffb_cgraph.md5 | 1 + ...5549058e1315d29263c0b26816bcffb_cgraph.png | Bin 0 -> 1202 bytes ...4a679e19a8af2c7ddfa86f4310a13d_icgraph.map | 4 + ...4a679e19a8af2c7ddfa86f4310a13d_icgraph.md5 | 1 + ...4a679e19a8af2c7ddfa86f4310a13d_icgraph.png | Bin 0 -> 1212 bytes ...1a1ff74b284a19aa3872b6f3d6abd11_cgraph.map | 4 + ...1a1ff74b284a19aa3872b6f3d6abd11_cgraph.md5 | 1 + ...1a1ff74b284a19aa3872b6f3d6abd11_cgraph.png | Bin 0 -> 1423 bytes ...304997d797af3400074bdb68e5de1c_icgraph.map | 4 + ...304997d797af3400074bdb68e5de1c_icgraph.md5 | 1 + ...304997d797af3400074bdb68e5de1c_icgraph.png | Bin 0 -> 1407 bytes Doc/html/bsp__flash_8c_source.html | 154 +++++ Doc/html/bsp__flash_8h.html | 286 ++++++++ Doc/html/bsp__flash_8h__incl.map | 4 + Doc/html/bsp__flash_8h__incl.md5 | 1 + Doc/html/bsp__flash_8h__incl.png | Bin 0 -> 1735 bytes ...5549058e1315d29263c0b26816bcffb_cgraph.map | 4 + ...5549058e1315d29263c0b26816bcffb_cgraph.md5 | 1 + ...5549058e1315d29263c0b26816bcffb_cgraph.png | Bin 0 -> 1202 bytes ...4a679e19a8af2c7ddfa86f4310a13d_icgraph.map | 4 + ...4a679e19a8af2c7ddfa86f4310a13d_icgraph.md5 | 1 + ...4a679e19a8af2c7ddfa86f4310a13d_icgraph.png | Bin 0 -> 1212 bytes ...1a1ff74b284a19aa3872b6f3d6abd11_cgraph.map | 4 + ...1a1ff74b284a19aa3872b6f3d6abd11_cgraph.md5 | 1 + ...1a1ff74b284a19aa3872b6f3d6abd11_cgraph.png | Bin 0 -> 1423 bytes ...304997d797af3400074bdb68e5de1c_icgraph.map | 4 + ...304997d797af3400074bdb68e5de1c_icgraph.md5 | 1 + ...304997d797af3400074bdb68e5de1c_icgraph.png | Bin 0 -> 1407 bytes Doc/html/bsp__flash_8h_source.html | 124 ++++ Doc/html/classbsp___b_m_p-members.html | 95 +++ Doc/html/classbsp___b_m_p.html | 439 ++++++++++++ Doc/html/classbsp___b_m_p__coll__graph.map | 7 + Doc/html/classbsp___b_m_p__coll__graph.md5 | 1 + Doc/html/classbsp___b_m_p__coll__graph.png | Bin 0 -> 6438 bytes Doc/html/classbsp___differential-members.html | 88 +++ Doc/html/classbsp___differential.html | 192 ++++++ Doc/html/classbsp___i_i_c.html | 6 +- Doc/html/classbsp___i_i_c___s_t_m32.html | 2 +- Doc/html/classbsp___integral-members.html | 97 +++ Doc/html/classbsp___integral.html | 453 ++++++++++++ ...6d9e02d1146744fe80ebab69070abb4_cgraph.map | 4 + ...6d9e02d1146744fe80ebab69070abb4_cgraph.md5 | 1 + ...6d9e02d1146744fe80ebab69070abb4_cgraph.png | Bin 0 -> 1586 bytes ...2b6143ca39861a83b77befc131bf5e_icgraph.map | 4 + ...2b6143ca39861a83b77befc131bf5e_icgraph.md5 | 1 + ...2b6143ca39861a83b77befc131bf5e_icgraph.png | Bin 0 -> 1580 bytes Doc/html/classes.html | 6 +- .../dir_7d600478d4be1ed73c651a71d29ab217.html | 20 + Doc/html/files.html | 48 +- Doc/html/functions_b.html | 23 + Doc/html/functions_c.html | 1 + Doc/html/functions_d.html | 5 +- Doc/html/functions_func.html | 21 + Doc/html/functions_g.html | 1 + Doc/html/functions_i.html | 6 + Doc/html/functions_p.html | 1 + Doc/html/functions_r.html | 7 + Doc/html/functions_s.html | 5 +- Doc/html/functions_v.html | 86 +++ Doc/html/functions_vars.html | 41 +- Doc/html/functions_~.html | 2 + Doc/html/globals.html | 224 ------ Doc/html/globals_a.html | 10 +- Doc/html/globals_b.html | 50 +- Doc/html/globals_c.html | 51 +- Doc/html/globals_d.html | 580 +--------------- Doc/html/globals_defs.html | 46 ++ Doc/html/globals_e.html | 12 +- Doc/html/globals_f.html | 18 +- Doc/html/globals_func.html | 8 + Doc/html/globals_h.html | 6 +- Doc/html/globals_i.html | 39 +- Doc/html/globals_l.html | 12 +- Doc/html/globals_m.html | 83 +-- Doc/html/globals_o.html | 8 +- Doc/html/globals_p.html | 90 +++ Doc/html/globals_q.html | 12 +- Doc/html/globals_r.html | 8 +- Doc/html/globals_s.html | 19 +- Doc/html/globals_t.html | 21 +- Doc/html/globals_u.html | 6 +- Doc/html/globals_v.html | 7 +- Doc/html/globals_vars.html | 2 + Doc/html/hierarchy.html | 50 +- Doc/html/inherit_graph_0.map | 2 +- Doc/html/inherit_graph_0.md5 | 2 +- Doc/html/inherit_graph_0.png | Bin 391 -> 541 bytes Doc/html/inherit_graph_1.map | 2 +- Doc/html/inherit_graph_1.md5 | 2 +- Doc/html/inherit_graph_1.png | Bin 412 -> 468 bytes Doc/html/inherit_graph_10.map | 2 +- Doc/html/inherit_graph_10.md5 | 2 +- Doc/html/inherit_graph_10.png | Bin 511 -> 512 bytes Doc/html/inherit_graph_11.map | 2 +- Doc/html/inherit_graph_11.md5 | 2 +- Doc/html/inherit_graph_11.png | Bin 426 -> 446 bytes Doc/html/inherit_graph_12.map | 2 +- Doc/html/inherit_graph_12.md5 | 2 +- Doc/html/inherit_graph_12.png | Bin 426 -> 507 bytes Doc/html/inherit_graph_13.map | 2 +- Doc/html/inherit_graph_13.md5 | 2 +- Doc/html/inherit_graph_13.png | Bin 426 -> 516 bytes Doc/html/inherit_graph_14.map | 3 +- Doc/html/inherit_graph_14.md5 | 2 +- Doc/html/inherit_graph_14.png | Bin 439 -> 1133 bytes Doc/html/inherit_graph_15.map | 2 +- Doc/html/inherit_graph_15.md5 | 2 +- Doc/html/inherit_graph_15.png | Bin 442 -> 498 bytes Doc/html/inherit_graph_16.map | 2 +- Doc/html/inherit_graph_16.md5 | 2 +- Doc/html/inherit_graph_16.png | Bin 455 -> 394 bytes Doc/html/inherit_graph_17.map | 2 +- Doc/html/inherit_graph_17.md5 | 2 +- Doc/html/inherit_graph_17.png | Bin 439 -> 511 bytes Doc/html/inherit_graph_18.map | 2 +- Doc/html/inherit_graph_18.md5 | 2 +- Doc/html/inherit_graph_18.png | Bin 442 -> 426 bytes Doc/html/inherit_graph_19.map | 2 +- Doc/html/inherit_graph_19.md5 | 2 +- Doc/html/inherit_graph_19.png | Bin 455 -> 426 bytes Doc/html/inherit_graph_2.map | 2 +- Doc/html/inherit_graph_2.md5 | 2 +- Doc/html/inherit_graph_2.png | Bin 415 -> 558 bytes Doc/html/inherit_graph_20.map | 2 +- Doc/html/inherit_graph_20.md5 | 2 +- Doc/html/inherit_graph_20.png | Bin 377 -> 426 bytes Doc/html/inherit_graph_21.map | 2 +- Doc/html/inherit_graph_21.md5 | 2 +- Doc/html/inherit_graph_21.png | Bin 430 -> 439 bytes Doc/html/inherit_graph_22.map | 3 + Doc/html/inherit_graph_22.md5 | 1 + Doc/html/inherit_graph_22.png | Bin 0 -> 442 bytes Doc/html/inherit_graph_23.map | 3 + Doc/html/inherit_graph_23.md5 | 1 + Doc/html/inherit_graph_23.png | Bin 0 -> 455 bytes Doc/html/inherit_graph_24.map | 3 + Doc/html/inherit_graph_24.md5 | 1 + Doc/html/inherit_graph_24.png | Bin 0 -> 572 bytes Doc/html/inherit_graph_3.map | 5 +- Doc/html/inherit_graph_3.md5 | 2 +- Doc/html/inherit_graph_3.png | Bin 3237 -> 391 bytes Doc/html/inherit_graph_4.map | 2 +- Doc/html/inherit_graph_4.md5 | 2 +- Doc/html/inherit_graph_4.png | Bin 512 -> 412 bytes Doc/html/inherit_graph_5.map | 2 +- Doc/html/inherit_graph_5.md5 | 2 +- Doc/html/inherit_graph_5.png | Bin 507 -> 458 bytes Doc/html/inherit_graph_6.map | 2 +- Doc/html/inherit_graph_6.md5 | 2 +- Doc/html/inherit_graph_6.png | Bin 516 -> 425 bytes Doc/html/inherit_graph_7.map | 3 +- Doc/html/inherit_graph_7.md5 | 2 +- Doc/html/inherit_graph_7.png | Bin 1133 -> 500 bytes Doc/html/inherit_graph_8.map | 2 +- Doc/html/inherit_graph_8.md5 | 2 +- Doc/html/inherit_graph_8.png | Bin 498 -> 415 bytes Doc/html/inherit_graph_9.map | 5 +- Doc/html/inherit_graph_9.md5 | 2 +- Doc/html/inherit_graph_9.png | Bin 394 -> 3237 bytes Doc/html/inherits.html | 74 +- Doc/html/menudata.js | 44 +- Doc/html/mpu6050_8cpp.html | 2 +- Doc/html/mpu6050_8cpp__incl.map | 2 +- Doc/html/mpu6050_8cpp__incl.md5 | 2 +- Doc/html/mpu6050_8h.html | 2 +- Doc/html/mpu6050_8h__incl.map | 2 +- Doc/html/mpu6050_8h__incl.md5 | 2 +- Doc/html/mpu6050_8h_source.html | 2 +- Doc/html/search/all_0.js | 14 +- Doc/html/search/all_10.js | 13 +- Doc/html/search/all_11.js | 44 +- Doc/html/search/all_12.js | 74 +- Doc/html/search/all_13.js | 20 +- Doc/html/search/all_14.js | 3 +- Doc/html/search/all_15.js | 25 +- Doc/html/search/all_17.js | 16 +- Doc/html/search/all_2.js | 104 ++- Doc/html/search/all_3.js | 19 +- Doc/html/search/all_4.js | 24 +- Doc/html/search/all_6.js | 23 +- Doc/html/search/all_7.js | 25 +- Doc/html/search/all_9.js | 8 +- Doc/html/search/all_b.js | 4 +- Doc/html/search/all_c.js | 195 +++--- Doc/html/search/all_f.js | 53 +- Doc/html/search/classes_0.js | 8 +- Doc/html/search/classes_1.js | 27 +- Doc/html/search/classes_3.js | 3 +- Doc/html/search/defines_2.js | 3 +- Doc/html/search/defines_4.js | 78 +-- Doc/html/search/defines_5.js | 80 ++- Doc/html/search/defines_6.js | 9 + Doc/html/search/defines_7.js | 6 + Doc/html/search/defines_8.js | 4 + Doc/html/search/defines_9.js | 4 + Doc/html/search/defines_a.js | 5 + Doc/html/search/defines_b.js | 4 + Doc/html/search/defines_c.js | 6 + Doc/html/search/files_0.js | 46 +- Doc/html/search/functions_1.js | 29 +- Doc/html/search/functions_2.js | 7 +- Doc/html/search/functions_3.js | 6 +- Doc/html/search/functions_4.js | 15 +- Doc/html/search/functions_5.js | 37 +- Doc/html/search/functions_6.js | 19 +- Doc/html/search/functions_7.js | 4 +- Doc/html/search/functions_8.js | 14 +- Doc/html/search/functions_9.js | 19 +- Doc/html/search/functions_a.js | 26 +- Doc/html/search/functions_b.js | 27 +- Doc/html/search/functions_c.js | 14 +- Doc/html/search/functions_d.js | 15 +- Doc/html/search/functions_e.js | 16 +- Doc/html/search/searchdata.js | 6 +- Doc/html/search/variables_1.js | 23 +- Doc/html/search/variables_10.js | 7 +- Doc/html/search/variables_12.js | 8 +- Doc/html/search/variables_13.js | 8 + Doc/html/search/variables_3.js | 5 +- Doc/html/search/variables_5.js | 5 +- Doc/html/search/variables_f.js | 9 +- ...i_t_m_a_p_f_i_l_e_h_e_a_d_e_r-members.html | 90 +++ ...uct___b_i_t_m_a_p_f_i_l_e_h_e_a_d_e_r.html | 192 ++++++ .../struct___b_i_t_m_a_p_i_n_f_o-members.html | 88 +++ Doc/html/struct___b_i_t_m_a_p_i_n_f_o.html | 167 +++++ ...uct___b_i_t_m_a_p_i_n_f_o__coll__graph.map | 6 + ...uct___b_i_t_m_a_p_i_n_f_o__coll__graph.md5 | 1 + ...uct___b_i_t_m_a_p_i_n_f_o__coll__graph.png | Bin 0 -> 5115 bytes ...i_t_m_a_p_i_n_f_o_h_e_a_d_e_r-members.html | 96 +++ ...uct___b_i_t_m_a_p_i_n_f_o_h_e_a_d_e_r.html | 300 ++++++++ Doc/html/struct___r_g_b_q_u_a_d-members.html | 89 +++ Doc/html/struct___r_g_b_q_u_a_d.html | 174 +++++ ...uctstruct__bsp___flash___pack-members.html | 88 +++ .../structstruct__bsp___flash___pack.html | 155 +++++ Doc/html/todo.html | 12 +- Doc/html/varint_8h.html | 648 +++++++++++++++++- Doc/html/varint_8h__dep__incl.map | 58 +- Doc/html/varint_8h__dep__incl.md5 | 2 +- Doc/html/varint_8h__dep__incl.png | Bin 101256 -> 119049 bytes Doc/html/varint_8h__incl.map | 2 +- Doc/html/varint_8h__incl.md5 | 2 +- Doc/html/varint_8h_source.html | 26 +- Doc/html/vartable_8cpp.html | 2 +- Doc/html/vartable_8cpp__incl.map | 2 +- Doc/html/vartable_8cpp__incl.md5 | 2 +- Doc/html/vartable_8h.html | 6 +- Doc/html/vartable_8h__incl.map | 2 +- Doc/html/vartable_8h__incl.md5 | 2 +- Doc/html/vartable_8h_source.html | 2 +- Doc/latex/_callback_8cpp__incl.md5 | 2 +- Doc/latex/_main_system_8cpp.tex | 4 +- Doc/latex/_main_system_8cpp__incl.md5 | 2 +- Doc/latex/_s_t_l___queue_8cpp__incl.md5 | 2 +- Doc/latex/_s_t_l___queue_8h__incl.md5 | 2 +- Doc/latex/_s_t_l___stack_8cpp__incl.md5 | 2 +- Doc/latex/_s_t_l___stack_8h__incl.md5 | 2 +- Doc/latex/annotated.tex | 8 + Doc/latex/bsp___a_t24_c00_8cpp__incl.md5 | 2 +- Doc/latex/bsp___a_t24_c00_8h__incl.md5 | 2 +- Doc/latex/bsp___b_m_p_8cpp.tex | 25 + Doc/latex/bsp___b_m_p_8cpp__incl.md5 | 1 + Doc/latex/bsp___b_m_p_8cpp__incl.pdf | Bin 0 -> 17875 bytes Doc/latex/bsp___b_m_p_8cpp_source.tex | 87 +++ Doc/latex/bsp___b_m_p_8h.tex | 47 ++ Doc/latex/bsp___b_m_p_8h__dep__incl.md5 | 1 + Doc/latex/bsp___b_m_p_8h__dep__incl.pdf | Bin 0 -> 16008 bytes Doc/latex/bsp___b_m_p_8h__incl.md5 | 1 + Doc/latex/bsp___b_m_p_8h__incl.pdf | Bin 0 -> 17799 bytes Doc/latex/bsp___b_m_p_8h_source.tex | 92 +++ Doc/latex/bsp___c_r_c_8cpp__incl.md5 | 2 +- Doc/latex/bsp___c_r_c_8h__incl.md5 | 2 +- Doc/latex/bsp___calculus_8cpp.tex | 24 + Doc/latex/bsp___calculus_8cpp__incl.md5 | 1 + Doc/latex/bsp___calculus_8cpp__incl.pdf | Bin 0 -> 17983 bytes Doc/latex/bsp___calculus_8cpp_source.tex | 79 +++ Doc/latex/bsp___calculus_8h.tex | 39 ++ Doc/latex/bsp___calculus_8h__dep__incl.md5 | 1 + Doc/latex/bsp___calculus_8h__dep__incl.pdf | Bin 0 -> 16987 bytes Doc/latex/bsp___calculus_8h__incl.md5 | 1 + Doc/latex/bsp___calculus_8h__incl.pdf | Bin 0 -> 17902 bytes Doc/latex/bsp___calculus_8h_source.tex | 69 ++ Doc/latex/bsp___digit_8cpp__incl.md5 | 2 +- Doc/latex/bsp___digit_8h__incl.md5 | 2 +- Doc/latex/bsp___i_i_c_8cpp__incl.md5 | 2 +- Doc/latex/bsp___i_i_c_8h__incl.md5 | 2 +- .../bsp___i_i_c___s_t_m32_8cpp__incl.md5 | 2 +- .../bsp___i_i_c___s_t_m32_8cpp_source.tex | 22 +- Doc/latex/bsp___i_i_c___s_t_m32_8h__incl.md5 | 2 +- Doc/latex/bsp___m_a_x6675_8cpp__incl.md5 | 2 +- Doc/latex/bsp___m_a_x6675_8h__incl.md5 | 2 +- Doc/latex/bsp___mod_bus_8cpp__incl.md5 | 2 +- Doc/latex/bsp___mod_bus_8h__incl.md5 | 2 +- .../bsp___mod_bus___s_t_m32_8cpp__incl.md5 | 2 +- .../bsp___mod_bus___s_t_m32_8h__incl.md5 | 2 +- .../bsp___o_l_e_d___s_t_m32_8cpp__incl.md5 | 2 +- .../bsp___o_l_e_d___s_t_m32_8h__incl.md5 | 2 +- Doc/latex/bsp___p_i_d_8cpp__incl.md5 | 2 +- Doc/latex/bsp___p_i_d_8h__incl.md5 | 2 +- Doc/latex/bsp___s_d_8cpp.tex | 3 +- Doc/latex/bsp___s_d_8cpp__incl.md5 | 2 +- Doc/latex/bsp___s_d_8h.tex | 20 +- Doc/latex/bsp___s_d_8h__dep__incl.md5 | 2 +- Doc/latex/bsp___s_d_8h__incl.md5 | 2 +- Doc/latex/bsp__flash_8c.tex | 183 +++++ Doc/latex/bsp__flash_8c__incl.md5 | 1 + Doc/latex/bsp__flash_8c__incl.pdf | Bin 0 -> 17463 bytes ...5549058e1315d29263c0b26816bcffb_cgraph.md5 | 1 + ...5549058e1315d29263c0b26816bcffb_cgraph.pdf | Bin 0 -> 13681 bytes ...4a679e19a8af2c7ddfa86f4310a13d_icgraph.md5 | 1 + ...4a679e19a8af2c7ddfa86f4310a13d_icgraph.pdf | Bin 0 -> 13683 bytes ...1a1ff74b284a19aa3872b6f3d6abd11_cgraph.md5 | 1 + ...1a1ff74b284a19aa3872b6f3d6abd11_cgraph.pdf | Bin 0 -> 15297 bytes ...304997d797af3400074bdb68e5de1c_icgraph.md5 | 1 + ...304997d797af3400074bdb68e5de1c_icgraph.pdf | Bin 0 -> 15289 bytes Doc/latex/bsp__flash_8c_source.tex | 64 ++ Doc/latex/bsp__flash_8h.tex | 148 ++++ Doc/latex/bsp__flash_8h__incl.md5 | 1 + Doc/latex/bsp__flash_8h__incl.pdf | Bin 0 -> 17464 bytes ...5549058e1315d29263c0b26816bcffb_cgraph.md5 | 1 + ...5549058e1315d29263c0b26816bcffb_cgraph.pdf | Bin 0 -> 13681 bytes ...4a679e19a8af2c7ddfa86f4310a13d_icgraph.md5 | 1 + ...4a679e19a8af2c7ddfa86f4310a13d_icgraph.pdf | Bin 0 -> 13683 bytes ...1a1ff74b284a19aa3872b6f3d6abd11_cgraph.md5 | 1 + ...1a1ff74b284a19aa3872b6f3d6abd11_cgraph.pdf | Bin 0 -> 15297 bytes ...304997d797af3400074bdb68e5de1c_icgraph.md5 | 1 + ...304997d797af3400074bdb68e5de1c_icgraph.pdf | Bin 0 -> 15289 bytes Doc/latex/bsp__flash_8h_source.tex | 40 ++ Doc/latex/classbsp___b_m_p.tex | 239 +++++++ Doc/latex/classbsp___b_m_p__coll__graph.md5 | 1 + Doc/latex/classbsp___b_m_p__coll__graph.pdf | Bin 0 -> 18910 bytes Doc/latex/classbsp___differential.tex | 91 +++ Doc/latex/classbsp___i_i_c.tex | 6 +- Doc/latex/classbsp___i_i_c___s_t_m32.tex | 2 +- Doc/latex/classbsp___integral.tex | 275 ++++++++ ...6d9e02d1146744fe80ebab69070abb4_cgraph.md5 | 1 + ...6d9e02d1146744fe80ebab69070abb4_cgraph.pdf | Bin 0 -> 14516 bytes ...2b6143ca39861a83b77befc131bf5e_icgraph.md5 | 1 + ...2b6143ca39861a83b77befc131bf5e_icgraph.pdf | Bin 0 -> 14511 bytes Doc/latex/classbsp___s_d.tex | 66 +- .../dir_7d600478d4be1ed73c651a71d29ab217.tex | 16 +- Doc/latex/files.tex | 10 +- Doc/latex/hierarchy.tex | 8 + Doc/latex/mpu6050_8cpp__incl.md5 | 2 +- Doc/latex/mpu6050_8h__incl.md5 | 2 +- Doc/latex/refman.tex | 20 + ...ruct___b_i_t_m_a_p_f_i_l_e_h_e_a_d_e_r.tex | 89 +++ Doc/latex/struct___b_i_t_m_a_p_i_n_f_o.tex | 74 ++ ...uct___b_i_t_m_a_p_i_n_f_o__coll__graph.md5 | 1 + ...uct___b_i_t_m_a_p_i_n_f_o__coll__graph.pdf | Bin 0 -> 18438 bytes ...ruct___b_i_t_m_a_p_i_n_f_o_h_e_a_d_e_r.tex | 161 +++++ Doc/latex/struct___r_g_b_q_u_a_d.tex | 77 +++ Doc/latex/struct_m_s_d___c_a_r_d_i_n_f_o.tex | 3 +- .../structstruct__bsp___flash___pack.tex | 65 ++ Doc/latex/todo.tex | 21 +- Doc/latex/varint_8h.tex | 308 +++++++++ Doc/latex/varint_8h__dep__incl.md5 | 2 +- Doc/latex/varint_8h__dep__incl.pdf | Bin 28872 -> 29224 bytes Doc/latex/varint_8h__incl.md5 | 2 +- Doc/latex/varint_8h_source.tex | 26 +- Doc/latex/vartable_8cpp__incl.md5 | 2 +- Doc/latex/vartable_8h.tex | 4 +- Doc/latex/vartable_8h__incl.md5 | 2 +- Doc/man/man3/Callback.cpp.3 | 2 +- Doc/man/man3/Callback.h.3 | 2 +- .../man3/D__gitt_MicrochipFor32_STL_Device_.3 | 2 +- .../man3/D__gitt_MicrochipFor32_bsp_Device_.3 | 28 +- .../D__gitt_MicrochipFor32_bsp_MPU6050_.3 | 2 +- .../man3/D__gitt_MicrochipFor32_bsp_System_.3 | 2 +- Doc/man/man3/MSD_CARDINFO.3 | 2 +- Doc/man/man3/MSD_CID.3 | 2 +- Doc/man/man3/MSD_CSD.3 | 2 +- Doc/man/man3/MainSystem.cpp.3 | 2 +- Doc/man/man3/STL_Queue.cpp.3 | 2 +- Doc/man/man3/STL_Queue.h.3 | 2 +- Doc/man/man3/STL_Stack.cpp.3 | 2 +- Doc/man/man3/STL_Stack.h.3 | 2 +- Doc/man/man3/STL_lQueue.3 | 2 +- Doc/man/man3/STL_lStack.3 | 2 +- Doc/man/man3/STL_rQueue.3 | 2 +- Doc/man/man3/STL_rStack.3 | 2 +- Doc/man/man3/User.h.3 | 2 +- Doc/man/man3/_BITMAPFILEHEADER.3 | 61 ++ Doc/man/man3/_BITMAPINFO.3 | 47 ++ Doc/man/man3/_BITMAPINFOHEADER.3 | 103 +++ Doc/man/man3/_RGBQUAD.3 | 54 ++ Doc/man/man3/_lQueue.3 | 2 +- Doc/man/man3/_lStack.3 | 2 +- Doc/man/man3/bsp_AT24C00.cpp.3 | 2 +- Doc/man/man3/bsp_AT24C00.h.3 | 2 +- Doc/man/man3/bsp_BMP.3 | 178 +++++ Doc/man/man3/bsp_BMP.cpp.3 | 22 + Doc/man/man3/bsp_BMP.h.3 | 48 ++ Doc/man/man3/bsp_CRC.cpp.3 | 2 +- Doc/man/man3/bsp_CRC.h.3 | 2 +- Doc/man/man3/bsp_Calculus.cpp.3 | 22 + Doc/man/man3/bsp_Calculus.h.3 | 36 + Doc/man/man3/bsp_Differential.3 | 73 ++ Doc/man/man3/bsp_Digit.3 | 2 +- Doc/man/man3/bsp_Digit.cpp.3 | 2 +- Doc/man/man3/bsp_Digit.h.3 | 2 +- Doc/man/man3/bsp_IIC.3 | 2 +- Doc/man/man3/bsp_IIC.cpp.3 | 2 +- Doc/man/man3/bsp_IIC.h.3 | 2 +- Doc/man/man3/bsp_IIC_STM32.3 | 4 +- Doc/man/man3/bsp_IIC_STM32.cpp.3 | 2 +- Doc/man/man3/bsp_IIC_STM32.h.3 | 2 +- Doc/man/man3/bsp_Increment_PID.3 | 2 +- Doc/man/man3/bsp_Integral.3 | 204 ++++++ Doc/man/man3/bsp_MAX6675.3 | 2 +- Doc/man/man3/bsp_MAX6675.cpp.3 | 2 +- Doc/man/man3/bsp_MAX6675.h.3 | 2 +- Doc/man/man3/bsp_ModBus.cpp.3 | 2 +- Doc/man/man3/bsp_ModBus.h.3 | 2 +- Doc/man/man3/bsp_ModBus_Rx.3 | 2 +- Doc/man/man3/bsp_ModBus_STM32.3 | 2 +- Doc/man/man3/bsp_ModBus_STM32.cpp.3 | 2 +- Doc/man/man3/bsp_ModBus_STM32.h.3 | 2 +- Doc/man/man3/bsp_ModBus_Tx.3 | 2 +- Doc/man/man3/bsp_OLED_STM32.cpp.3 | 2 +- Doc/man/man3/bsp_OLED_STM32.h.3 | 2 +- Doc/man/man3/bsp_PID.cpp.3 | 2 +- Doc/man/man3/bsp_PID.h.3 | 2 +- Doc/man/man3/bsp_Position_PID.3 | 2 +- Doc/man/man3/bsp_SD.3 | 2 +- Doc/man/man3/bsp_SD.cpp.3 | 2 +- Doc/man/man3/bsp_SD.h.3 | 12 +- Doc/man/man3/bsp_STM32_AT24C00.3 | 2 +- Doc/man/man3/bsp_STM32_OLED.3 | 2 +- Doc/man/man3/bsp_flash.c.3 | 139 ++++ Doc/man/man3/bsp_flash.h.3 | 110 +++ Doc/man/man3/mpu6050.cpp.3 | 2 +- Doc/man/man3/mpu6050.h.3 | 2 +- Doc/man/man3/struct_bsp_Flash_Pack.3 | 54 ++ Doc/man/man3/todo.3 | 4 +- Doc/man/man3/varint.h.3 | 198 +++++- Doc/man/man3/vartable.cpp.3 | 2 +- Doc/man/man3/vartable.h.3 | 2 +- Doc/xml/_main_system_8cpp.xml | 4 +- Doc/xml/bsp___b_m_p_8cpp.xml | 124 ++++ Doc/xml/bsp___b_m_p_8h.xml | 142 ++++ Doc/xml/bsp___calculus_8cpp.xml | 116 ++++ Doc/xml/bsp___calculus_8h.xml | 116 ++++ Doc/xml/bsp___i_i_c___s_t_m32_8cpp.xml | 22 +- Doc/xml/bsp___s_d_8h.xml | 1 + Doc/xml/bsp__flash_8c.xml | 254 +++++++ Doc/xml/bsp__flash_8h.xml | 194 ++++++ Doc/xml/classbsp___b_m_p.xml | 408 +++++++++++ Doc/xml/classbsp___differential.xml | 90 +++ Doc/xml/classbsp___i_i_c.xml | 6 +- Doc/xml/classbsp___i_i_c___s_t_m32.xml | 6 +- Doc/xml/classbsp___integral.xml | 327 +++++++++ .../dir_7d600478d4be1ed73c651a71d29ab217.xml | 6 + Doc/xml/index.xml | 107 +++ ...ruct___b_i_t_m_a_p_f_i_l_e_h_e_a_d_e_r.xml | 99 +++ Doc/xml/struct___b_i_t_m_a_p_i_n_f_o.xml | 95 +++ ...ruct___b_i_t_m_a_p_i_n_f_o_h_e_a_d_e_r.xml | 197 ++++++ Doc/xml/struct___r_g_b_q_u_a_d.xml | 81 +++ Doc/xml/structstruct__bsp___flash___pack.xml | 63 ++ Doc/xml/todo.xml | 15 +- Doc/xml/varint_8h.xml | 498 +++++++++++--- Doc/xml/vartable_8h.xml | 4 +- bsp_Device/bsp_BMP.cpp | 123 ++++ bsp_Device/bsp_BMP.h | 113 +++ bsp_Device/bsp_Calculus.h | 2 + bsp_Device/bsp_SD.h | 2 +- bsp_Device/bsp_flash.c | 2 +- bsp_Device/varint.h | 27 +- 709 files changed, 17019 insertions(+), 2341 deletions(-) create mode 100644 Doc/docbook/bsp___b_m_p_8cpp.xml create mode 100644 Doc/docbook/bsp___b_m_p_8cpp__incl.md5 create mode 100644 Doc/docbook/bsp___b_m_p_8cpp__incl.png create mode 100644 Doc/docbook/bsp___b_m_p_8cpp_source.xml create mode 100644 Doc/docbook/bsp___b_m_p_8h.xml create mode 100644 Doc/docbook/bsp___b_m_p_8h__dep__incl.md5 create mode 100644 Doc/docbook/bsp___b_m_p_8h__dep__incl.png create mode 100644 Doc/docbook/bsp___b_m_p_8h__incl.md5 create mode 100644 Doc/docbook/bsp___b_m_p_8h__incl.png create mode 100644 Doc/docbook/bsp___b_m_p_8h_source.xml create mode 100644 Doc/docbook/bsp___calculus_8cpp.xml create mode 100644 Doc/docbook/bsp___calculus_8cpp__incl.md5 create mode 100644 Doc/docbook/bsp___calculus_8cpp__incl.png create mode 100644 Doc/docbook/bsp___calculus_8cpp_source.xml create mode 100644 Doc/docbook/bsp___calculus_8h.xml create mode 100644 Doc/docbook/bsp___calculus_8h__dep__incl.md5 create mode 100644 Doc/docbook/bsp___calculus_8h__dep__incl.png create mode 100644 Doc/docbook/bsp___calculus_8h__incl.md5 create mode 100644 Doc/docbook/bsp___calculus_8h__incl.png create mode 100644 Doc/docbook/bsp___calculus_8h_source.xml create mode 100644 Doc/docbook/bsp__flash_8c.xml create mode 100644 Doc/docbook/bsp__flash_8c__incl.md5 create mode 100644 Doc/docbook/bsp__flash_8c__incl.png create mode 100644 Doc/docbook/bsp__flash_8c_a45549058e1315d29263c0b26816bcffb_cgraph.md5 create mode 100644 Doc/docbook/bsp__flash_8c_a45549058e1315d29263c0b26816bcffb_cgraph.png create mode 100644 Doc/docbook/bsp__flash_8c_a734a679e19a8af2c7ddfa86f4310a13d_icgraph.md5 create mode 100644 Doc/docbook/bsp__flash_8c_a734a679e19a8af2c7ddfa86f4310a13d_icgraph.png create mode 100644 Doc/docbook/bsp__flash_8c_aa1a1ff74b284a19aa3872b6f3d6abd11_cgraph.md5 create mode 100644 Doc/docbook/bsp__flash_8c_aa1a1ff74b284a19aa3872b6f3d6abd11_cgraph.png create mode 100644 Doc/docbook/bsp__flash_8c_af1304997d797af3400074bdb68e5de1c_icgraph.md5 create mode 100644 Doc/docbook/bsp__flash_8c_af1304997d797af3400074bdb68e5de1c_icgraph.png create mode 100644 Doc/docbook/bsp__flash_8c_source.xml create mode 100644 Doc/docbook/bsp__flash_8h.xml create mode 100644 Doc/docbook/bsp__flash_8h__incl.md5 create mode 100644 Doc/docbook/bsp__flash_8h__incl.png create mode 100644 Doc/docbook/bsp__flash_8h_a45549058e1315d29263c0b26816bcffb_cgraph.md5 create mode 100644 Doc/docbook/bsp__flash_8h_a45549058e1315d29263c0b26816bcffb_cgraph.png create mode 100644 Doc/docbook/bsp__flash_8h_a734a679e19a8af2c7ddfa86f4310a13d_icgraph.md5 create mode 100644 Doc/docbook/bsp__flash_8h_a734a679e19a8af2c7ddfa86f4310a13d_icgraph.png create mode 100644 Doc/docbook/bsp__flash_8h_aa1a1ff74b284a19aa3872b6f3d6abd11_cgraph.md5 create mode 100644 Doc/docbook/bsp__flash_8h_aa1a1ff74b284a19aa3872b6f3d6abd11_cgraph.png create mode 100644 Doc/docbook/bsp__flash_8h_af1304997d797af3400074bdb68e5de1c_icgraph.md5 create mode 100644 Doc/docbook/bsp__flash_8h_af1304997d797af3400074bdb68e5de1c_icgraph.png create mode 100644 Doc/docbook/bsp__flash_8h_source.xml create mode 100644 Doc/docbook/classbsp___b_m_p.xml create mode 100644 Doc/docbook/classbsp___b_m_p__coll__graph.md5 create mode 100644 Doc/docbook/classbsp___b_m_p__coll__graph.png create mode 100644 Doc/docbook/classbsp___differential.xml create mode 100644 Doc/docbook/classbsp___integral.xml create mode 100644 Doc/docbook/classbsp___integral_a86d9e02d1146744fe80ebab69070abb4_cgraph.md5 create mode 100644 Doc/docbook/classbsp___integral_a86d9e02d1146744fe80ebab69070abb4_cgraph.png create mode 100644 Doc/docbook/classbsp___integral_aae2b6143ca39861a83b77befc131bf5e_icgraph.md5 create mode 100644 Doc/docbook/classbsp___integral_aae2b6143ca39861a83b77befc131bf5e_icgraph.png create mode 100644 Doc/docbook/struct___b_i_t_m_a_p_f_i_l_e_h_e_a_d_e_r.xml create mode 100644 Doc/docbook/struct___b_i_t_m_a_p_i_n_f_o.xml create mode 100644 Doc/docbook/struct___b_i_t_m_a_p_i_n_f_o__coll__graph.md5 create mode 100644 Doc/docbook/struct___b_i_t_m_a_p_i_n_f_o__coll__graph.png create mode 100644 Doc/docbook/struct___b_i_t_m_a_p_i_n_f_o_h_e_a_d_e_r.xml create mode 100644 Doc/docbook/struct___r_g_b_q_u_a_d.xml create mode 100644 Doc/docbook/structstruct__bsp___flash___pack.xml create mode 100644 Doc/html/bsp___b_m_p_8cpp.html create mode 100644 Doc/html/bsp___b_m_p_8cpp__incl.map create mode 100644 Doc/html/bsp___b_m_p_8cpp__incl.md5 create mode 100644 Doc/html/bsp___b_m_p_8cpp__incl.png create mode 100644 Doc/html/bsp___b_m_p_8cpp_source.html create mode 100644 Doc/html/bsp___b_m_p_8h.html create mode 100644 Doc/html/bsp___b_m_p_8h__dep__incl.map create mode 100644 Doc/html/bsp___b_m_p_8h__dep__incl.md5 create mode 100644 Doc/html/bsp___b_m_p_8h__dep__incl.png create mode 100644 Doc/html/bsp___b_m_p_8h__incl.map create mode 100644 Doc/html/bsp___b_m_p_8h__incl.md5 create mode 100644 Doc/html/bsp___b_m_p_8h__incl.png create mode 100644 Doc/html/bsp___b_m_p_8h_source.html create mode 100644 Doc/html/bsp___calculus_8cpp.html create mode 100644 Doc/html/bsp___calculus_8cpp__incl.map create mode 100644 Doc/html/bsp___calculus_8cpp__incl.md5 create mode 100644 Doc/html/bsp___calculus_8cpp__incl.png create mode 100644 Doc/html/bsp___calculus_8cpp_source.html create mode 100644 Doc/html/bsp___calculus_8h.html create mode 100644 Doc/html/bsp___calculus_8h__dep__incl.map create mode 100644 Doc/html/bsp___calculus_8h__dep__incl.md5 create mode 100644 Doc/html/bsp___calculus_8h__dep__incl.png create mode 100644 Doc/html/bsp___calculus_8h__incl.map create mode 100644 Doc/html/bsp___calculus_8h__incl.md5 create mode 100644 Doc/html/bsp___calculus_8h__incl.png create mode 100644 Doc/html/bsp___calculus_8h_source.html create mode 100644 Doc/html/bsp__flash_8c.html create mode 100644 Doc/html/bsp__flash_8c__incl.map create mode 100644 Doc/html/bsp__flash_8c__incl.md5 create mode 100644 Doc/html/bsp__flash_8c__incl.png create mode 100644 Doc/html/bsp__flash_8c_a45549058e1315d29263c0b26816bcffb_cgraph.map create mode 100644 Doc/html/bsp__flash_8c_a45549058e1315d29263c0b26816bcffb_cgraph.md5 create mode 100644 Doc/html/bsp__flash_8c_a45549058e1315d29263c0b26816bcffb_cgraph.png create mode 100644 Doc/html/bsp__flash_8c_a734a679e19a8af2c7ddfa86f4310a13d_icgraph.map create mode 100644 Doc/html/bsp__flash_8c_a734a679e19a8af2c7ddfa86f4310a13d_icgraph.md5 create mode 100644 Doc/html/bsp__flash_8c_a734a679e19a8af2c7ddfa86f4310a13d_icgraph.png create mode 100644 Doc/html/bsp__flash_8c_aa1a1ff74b284a19aa3872b6f3d6abd11_cgraph.map create mode 100644 Doc/html/bsp__flash_8c_aa1a1ff74b284a19aa3872b6f3d6abd11_cgraph.md5 create mode 100644 Doc/html/bsp__flash_8c_aa1a1ff74b284a19aa3872b6f3d6abd11_cgraph.png create mode 100644 Doc/html/bsp__flash_8c_af1304997d797af3400074bdb68e5de1c_icgraph.map create mode 100644 Doc/html/bsp__flash_8c_af1304997d797af3400074bdb68e5de1c_icgraph.md5 create mode 100644 Doc/html/bsp__flash_8c_af1304997d797af3400074bdb68e5de1c_icgraph.png create mode 100644 Doc/html/bsp__flash_8c_source.html create mode 100644 Doc/html/bsp__flash_8h.html create mode 100644 Doc/html/bsp__flash_8h__incl.map create mode 100644 Doc/html/bsp__flash_8h__incl.md5 create mode 100644 Doc/html/bsp__flash_8h__incl.png create mode 100644 Doc/html/bsp__flash_8h_a45549058e1315d29263c0b26816bcffb_cgraph.map create mode 100644 Doc/html/bsp__flash_8h_a45549058e1315d29263c0b26816bcffb_cgraph.md5 create mode 100644 Doc/html/bsp__flash_8h_a45549058e1315d29263c0b26816bcffb_cgraph.png create mode 100644 Doc/html/bsp__flash_8h_a734a679e19a8af2c7ddfa86f4310a13d_icgraph.map create mode 100644 Doc/html/bsp__flash_8h_a734a679e19a8af2c7ddfa86f4310a13d_icgraph.md5 create mode 100644 Doc/html/bsp__flash_8h_a734a679e19a8af2c7ddfa86f4310a13d_icgraph.png create mode 100644 Doc/html/bsp__flash_8h_aa1a1ff74b284a19aa3872b6f3d6abd11_cgraph.map create mode 100644 Doc/html/bsp__flash_8h_aa1a1ff74b284a19aa3872b6f3d6abd11_cgraph.md5 create mode 100644 Doc/html/bsp__flash_8h_aa1a1ff74b284a19aa3872b6f3d6abd11_cgraph.png create mode 100644 Doc/html/bsp__flash_8h_af1304997d797af3400074bdb68e5de1c_icgraph.map create mode 100644 Doc/html/bsp__flash_8h_af1304997d797af3400074bdb68e5de1c_icgraph.md5 create mode 100644 Doc/html/bsp__flash_8h_af1304997d797af3400074bdb68e5de1c_icgraph.png create mode 100644 Doc/html/bsp__flash_8h_source.html create mode 100644 Doc/html/classbsp___b_m_p-members.html create mode 100644 Doc/html/classbsp___b_m_p.html create mode 100644 Doc/html/classbsp___b_m_p__coll__graph.map create mode 100644 Doc/html/classbsp___b_m_p__coll__graph.md5 create mode 100644 Doc/html/classbsp___b_m_p__coll__graph.png create mode 100644 Doc/html/classbsp___differential-members.html create mode 100644 Doc/html/classbsp___differential.html create mode 100644 Doc/html/classbsp___integral-members.html create mode 100644 Doc/html/classbsp___integral.html create mode 100644 Doc/html/classbsp___integral_a86d9e02d1146744fe80ebab69070abb4_cgraph.map create mode 100644 Doc/html/classbsp___integral_a86d9e02d1146744fe80ebab69070abb4_cgraph.md5 create mode 100644 Doc/html/classbsp___integral_a86d9e02d1146744fe80ebab69070abb4_cgraph.png create mode 100644 Doc/html/classbsp___integral_aae2b6143ca39861a83b77befc131bf5e_icgraph.map create mode 100644 Doc/html/classbsp___integral_aae2b6143ca39861a83b77befc131bf5e_icgraph.md5 create mode 100644 Doc/html/classbsp___integral_aae2b6143ca39861a83b77befc131bf5e_icgraph.png create mode 100644 Doc/html/functions_v.html create mode 100644 Doc/html/globals_p.html create mode 100644 Doc/html/inherit_graph_22.map create mode 100644 Doc/html/inherit_graph_22.md5 create mode 100644 Doc/html/inherit_graph_22.png create mode 100644 Doc/html/inherit_graph_23.map create mode 100644 Doc/html/inherit_graph_23.md5 create mode 100644 Doc/html/inherit_graph_23.png create mode 100644 Doc/html/inherit_graph_24.map create mode 100644 Doc/html/inherit_graph_24.md5 create mode 100644 Doc/html/inherit_graph_24.png create mode 100644 Doc/html/search/defines_6.js create mode 100644 Doc/html/search/defines_7.js create mode 100644 Doc/html/search/defines_8.js create mode 100644 Doc/html/search/defines_9.js create mode 100644 Doc/html/search/defines_a.js create mode 100644 Doc/html/search/defines_b.js create mode 100644 Doc/html/search/defines_c.js create mode 100644 Doc/html/search/variables_13.js create mode 100644 Doc/html/struct___b_i_t_m_a_p_f_i_l_e_h_e_a_d_e_r-members.html create mode 100644 Doc/html/struct___b_i_t_m_a_p_f_i_l_e_h_e_a_d_e_r.html create mode 100644 Doc/html/struct___b_i_t_m_a_p_i_n_f_o-members.html create mode 100644 Doc/html/struct___b_i_t_m_a_p_i_n_f_o.html create mode 100644 Doc/html/struct___b_i_t_m_a_p_i_n_f_o__coll__graph.map create mode 100644 Doc/html/struct___b_i_t_m_a_p_i_n_f_o__coll__graph.md5 create mode 100644 Doc/html/struct___b_i_t_m_a_p_i_n_f_o__coll__graph.png create mode 100644 Doc/html/struct___b_i_t_m_a_p_i_n_f_o_h_e_a_d_e_r-members.html create mode 100644 Doc/html/struct___b_i_t_m_a_p_i_n_f_o_h_e_a_d_e_r.html create mode 100644 Doc/html/struct___r_g_b_q_u_a_d-members.html create mode 100644 Doc/html/struct___r_g_b_q_u_a_d.html create mode 100644 Doc/html/structstruct__bsp___flash___pack-members.html create mode 100644 Doc/html/structstruct__bsp___flash___pack.html create mode 100644 Doc/latex/bsp___b_m_p_8cpp.tex create mode 100644 Doc/latex/bsp___b_m_p_8cpp__incl.md5 create mode 100644 Doc/latex/bsp___b_m_p_8cpp__incl.pdf create mode 100644 Doc/latex/bsp___b_m_p_8cpp_source.tex create mode 100644 Doc/latex/bsp___b_m_p_8h.tex create mode 100644 Doc/latex/bsp___b_m_p_8h__dep__incl.md5 create mode 100644 Doc/latex/bsp___b_m_p_8h__dep__incl.pdf create mode 100644 Doc/latex/bsp___b_m_p_8h__incl.md5 create mode 100644 Doc/latex/bsp___b_m_p_8h__incl.pdf create mode 100644 Doc/latex/bsp___b_m_p_8h_source.tex create mode 100644 Doc/latex/bsp___calculus_8cpp.tex create mode 100644 Doc/latex/bsp___calculus_8cpp__incl.md5 create mode 100644 Doc/latex/bsp___calculus_8cpp__incl.pdf create mode 100644 Doc/latex/bsp___calculus_8cpp_source.tex create mode 100644 Doc/latex/bsp___calculus_8h.tex create mode 100644 Doc/latex/bsp___calculus_8h__dep__incl.md5 create mode 100644 Doc/latex/bsp___calculus_8h__dep__incl.pdf create mode 100644 Doc/latex/bsp___calculus_8h__incl.md5 create mode 100644 Doc/latex/bsp___calculus_8h__incl.pdf create mode 100644 Doc/latex/bsp___calculus_8h_source.tex create mode 100644 Doc/latex/bsp__flash_8c.tex create mode 100644 Doc/latex/bsp__flash_8c__incl.md5 create mode 100644 Doc/latex/bsp__flash_8c__incl.pdf create mode 100644 Doc/latex/bsp__flash_8c_a45549058e1315d29263c0b26816bcffb_cgraph.md5 create mode 100644 Doc/latex/bsp__flash_8c_a45549058e1315d29263c0b26816bcffb_cgraph.pdf create mode 100644 Doc/latex/bsp__flash_8c_a734a679e19a8af2c7ddfa86f4310a13d_icgraph.md5 create mode 100644 Doc/latex/bsp__flash_8c_a734a679e19a8af2c7ddfa86f4310a13d_icgraph.pdf create mode 100644 Doc/latex/bsp__flash_8c_aa1a1ff74b284a19aa3872b6f3d6abd11_cgraph.md5 create mode 100644 Doc/latex/bsp__flash_8c_aa1a1ff74b284a19aa3872b6f3d6abd11_cgraph.pdf create mode 100644 Doc/latex/bsp__flash_8c_af1304997d797af3400074bdb68e5de1c_icgraph.md5 create mode 100644 Doc/latex/bsp__flash_8c_af1304997d797af3400074bdb68e5de1c_icgraph.pdf create mode 100644 Doc/latex/bsp__flash_8c_source.tex create mode 100644 Doc/latex/bsp__flash_8h.tex create mode 100644 Doc/latex/bsp__flash_8h__incl.md5 create mode 100644 Doc/latex/bsp__flash_8h__incl.pdf create mode 100644 Doc/latex/bsp__flash_8h_a45549058e1315d29263c0b26816bcffb_cgraph.md5 create mode 100644 Doc/latex/bsp__flash_8h_a45549058e1315d29263c0b26816bcffb_cgraph.pdf create mode 100644 Doc/latex/bsp__flash_8h_a734a679e19a8af2c7ddfa86f4310a13d_icgraph.md5 create mode 100644 Doc/latex/bsp__flash_8h_a734a679e19a8af2c7ddfa86f4310a13d_icgraph.pdf create mode 100644 Doc/latex/bsp__flash_8h_aa1a1ff74b284a19aa3872b6f3d6abd11_cgraph.md5 create mode 100644 Doc/latex/bsp__flash_8h_aa1a1ff74b284a19aa3872b6f3d6abd11_cgraph.pdf create mode 100644 Doc/latex/bsp__flash_8h_af1304997d797af3400074bdb68e5de1c_icgraph.md5 create mode 100644 Doc/latex/bsp__flash_8h_af1304997d797af3400074bdb68e5de1c_icgraph.pdf create mode 100644 Doc/latex/bsp__flash_8h_source.tex create mode 100644 Doc/latex/classbsp___b_m_p.tex create mode 100644 Doc/latex/classbsp___b_m_p__coll__graph.md5 create mode 100644 Doc/latex/classbsp___b_m_p__coll__graph.pdf create mode 100644 Doc/latex/classbsp___differential.tex create mode 100644 Doc/latex/classbsp___integral.tex create mode 100644 Doc/latex/classbsp___integral_a86d9e02d1146744fe80ebab69070abb4_cgraph.md5 create mode 100644 Doc/latex/classbsp___integral_a86d9e02d1146744fe80ebab69070abb4_cgraph.pdf create mode 100644 Doc/latex/classbsp___integral_aae2b6143ca39861a83b77befc131bf5e_icgraph.md5 create mode 100644 Doc/latex/classbsp___integral_aae2b6143ca39861a83b77befc131bf5e_icgraph.pdf create mode 100644 Doc/latex/struct___b_i_t_m_a_p_f_i_l_e_h_e_a_d_e_r.tex create mode 100644 Doc/latex/struct___b_i_t_m_a_p_i_n_f_o.tex create mode 100644 Doc/latex/struct___b_i_t_m_a_p_i_n_f_o__coll__graph.md5 create mode 100644 Doc/latex/struct___b_i_t_m_a_p_i_n_f_o__coll__graph.pdf create mode 100644 Doc/latex/struct___b_i_t_m_a_p_i_n_f_o_h_e_a_d_e_r.tex create mode 100644 Doc/latex/struct___r_g_b_q_u_a_d.tex create mode 100644 Doc/latex/structstruct__bsp___flash___pack.tex create mode 100644 Doc/man/man3/_BITMAPFILEHEADER.3 create mode 100644 Doc/man/man3/_BITMAPINFO.3 create mode 100644 Doc/man/man3/_BITMAPINFOHEADER.3 create mode 100644 Doc/man/man3/_RGBQUAD.3 create mode 100644 Doc/man/man3/bsp_BMP.3 create mode 100644 Doc/man/man3/bsp_BMP.cpp.3 create mode 100644 Doc/man/man3/bsp_BMP.h.3 create mode 100644 Doc/man/man3/bsp_Calculus.cpp.3 create mode 100644 Doc/man/man3/bsp_Calculus.h.3 create mode 100644 Doc/man/man3/bsp_Differential.3 create mode 100644 Doc/man/man3/bsp_Integral.3 create mode 100644 Doc/man/man3/bsp_flash.c.3 create mode 100644 Doc/man/man3/bsp_flash.h.3 create mode 100644 Doc/man/man3/struct_bsp_Flash_Pack.3 create mode 100644 Doc/xml/bsp___b_m_p_8cpp.xml create mode 100644 Doc/xml/bsp___b_m_p_8h.xml create mode 100644 Doc/xml/bsp___calculus_8cpp.xml create mode 100644 Doc/xml/bsp___calculus_8h.xml create mode 100644 Doc/xml/bsp__flash_8c.xml create mode 100644 Doc/xml/bsp__flash_8h.xml create mode 100644 Doc/xml/classbsp___b_m_p.xml create mode 100644 Doc/xml/classbsp___differential.xml create mode 100644 Doc/xml/classbsp___integral.xml create mode 100644 Doc/xml/struct___b_i_t_m_a_p_f_i_l_e_h_e_a_d_e_r.xml create mode 100644 Doc/xml/struct___b_i_t_m_a_p_i_n_f_o.xml create mode 100644 Doc/xml/struct___b_i_t_m_a_p_i_n_f_o_h_e_a_d_e_r.xml create mode 100644 Doc/xml/struct___r_g_b_q_u_a_d.xml create mode 100644 Doc/xml/structstruct__bsp___flash___pack.xml create mode 100644 bsp_Device/bsp_BMP.cpp create mode 100644 bsp_Device/bsp_BMP.h diff --git a/Doc/docbook/_callback_8cpp__incl.md5 b/Doc/docbook/_callback_8cpp__incl.md5 index 2a3b122..5b2e487 100644 --- a/Doc/docbook/_callback_8cpp__incl.md5 +++ b/Doc/docbook/_callback_8cpp__incl.md5 @@ -1 +1 @@ -e7b7448de58aa8208e7960fb60ae7b2e \ No newline at end of file +5bab8e68f70fe52778862a603056e696 \ No newline at end of file diff --git a/Doc/docbook/_main_system_8cpp.xml b/Doc/docbook/_main_system_8cpp.xml index 92caa7e..dc19db9 100644 --- a/Doc/docbook/_main_system_8cpp.xml +++ b/Doc/docbook/_main_system_8cpp.xml @@ -53,7 +53,7 @@ -待办事项 +待办事项 在此处填写初始化程序 @@ -74,7 +74,7 @@ -待办事项 +待办事项 在此处填写主进程程序 diff --git a/Doc/docbook/_main_system_8cpp__incl.md5 b/Doc/docbook/_main_system_8cpp__incl.md5 index dee2cc0..fee42bb 100644 --- a/Doc/docbook/_main_system_8cpp__incl.md5 +++ b/Doc/docbook/_main_system_8cpp__incl.md5 @@ -1 +1 @@ -67d0e1b885952c083a9768e4b37b1985 \ No newline at end of file +f25aa9f7b8ab9d88a2fc41212e3aa10d \ No newline at end of file diff --git a/Doc/docbook/_s_t_l___queue_8cpp__incl.md5 b/Doc/docbook/_s_t_l___queue_8cpp__incl.md5 index ae06e26..15651bf 100644 --- a/Doc/docbook/_s_t_l___queue_8cpp__incl.md5 +++ b/Doc/docbook/_s_t_l___queue_8cpp__incl.md5 @@ -1 +1 @@ -90af04557dc9c56e2f6a6cc134d1cec3 \ No newline at end of file +7805f3714805f8d591903a61a333fb2b \ No newline at end of file diff --git a/Doc/docbook/_s_t_l___queue_8h__incl.md5 b/Doc/docbook/_s_t_l___queue_8h__incl.md5 index 3aff00d..8353ca7 100644 --- a/Doc/docbook/_s_t_l___queue_8h__incl.md5 +++ b/Doc/docbook/_s_t_l___queue_8h__incl.md5 @@ -1 +1 @@ -6334a3d6ac3689685a982fa2c33b6afc \ No newline at end of file +7b91003566bc6c92539fcff6b97182e8 \ No newline at end of file diff --git a/Doc/docbook/_s_t_l___stack_8cpp__incl.md5 b/Doc/docbook/_s_t_l___stack_8cpp__incl.md5 index 575e00b..4bf11de 100644 --- a/Doc/docbook/_s_t_l___stack_8cpp__incl.md5 +++ b/Doc/docbook/_s_t_l___stack_8cpp__incl.md5 @@ -1 +1 @@ -025cc28edebf45961573d7ca05741fae \ No newline at end of file +1a58c98eea298b03785002ed51d8cb9f \ No newline at end of file diff --git a/Doc/docbook/_s_t_l___stack_8h__incl.md5 b/Doc/docbook/_s_t_l___stack_8h__incl.md5 index a541b9d..468e23a 100644 --- a/Doc/docbook/_s_t_l___stack_8h__incl.md5 +++ b/Doc/docbook/_s_t_l___stack_8h__incl.md5 @@ -1 +1 @@ -51bfe6773d4708df113f1d8bc5c490a3 \ No newline at end of file +1b18a3f52c5dfd8576e55b5632f8ab5c \ No newline at end of file diff --git a/Doc/docbook/annotated.xml b/Doc/docbook/annotated.xml index 72287bf..e1ddd62 100644 --- a/Doc/docbook/annotated.xml +++ b/Doc/docbook/annotated.xml @@ -1,10 +1,22 @@
类列表 -这里列出了所有类、结构、联合以及接口定义等,并附带简要说明:_lQueue +这里列出了所有类、结构、联合以及接口定义等,并附带简要说明:_BITMAPFILEHEADER +位图文件头 +_BITMAPINFO +BMP文件头 +_BITMAPINFOHEADER +位图信息头 +_lQueue 链表方式队列的节点 _lStack 链表方式栈的节点 +_RGBQUAD +调色板 +bsp_BMP +构建一个BMP类 +bsp_Differential +一个微分对象 bsp_Digit 一个面向数码管的类,使用级联的HC595 bsp_IIC @@ -13,6 +25,8 @@ STM32版本的软件IIC 需要使用构造函数初始化 bsp_Increment_PID 增量法为基础的PID算法 +bsp_Integral +一个积分对象 bsp_MAX6675 MAX6675的一个对象类 bsp_ModBus_Rx @@ -37,4 +51,6 @@ 一个队列的类 STL_rStack 一个栈的类 +struct_bsp_Flash_Pack +一包数据的内容
diff --git a/Doc/docbook/bsp___a_t24_c00_8cpp__incl.md5 b/Doc/docbook/bsp___a_t24_c00_8cpp__incl.md5 index 789c041..e43819d 100644 --- a/Doc/docbook/bsp___a_t24_c00_8cpp__incl.md5 +++ b/Doc/docbook/bsp___a_t24_c00_8cpp__incl.md5 @@ -1 +1 @@ -d61ffd2905d340d645e707b5a5ccb2ab \ No newline at end of file +fa6d9bad0974502bf315402daec889e6 \ No newline at end of file diff --git a/Doc/docbook/bsp___a_t24_c00_8h__incl.md5 b/Doc/docbook/bsp___a_t24_c00_8h__incl.md5 index 20a038a..9366c86 100644 --- a/Doc/docbook/bsp___a_t24_c00_8h__incl.md5 +++ b/Doc/docbook/bsp___a_t24_c00_8h__incl.md5 @@ -1 +1 @@ -4ccbfa877159501e44b1eb20e3802283 \ No newline at end of file +d507a468f35921a28d8c0eab99251a9e \ No newline at end of file diff --git a/Doc/docbook/bsp___b_m_p_8cpp.xml b/Doc/docbook/bsp___b_m_p_8cpp.xml new file mode 100644 index 0000000..6f476da --- /dev/null +++ b/Doc/docbook/bsp___b_m_p_8cpp.xml @@ -0,0 +1,26 @@ + +
+D:/gitt/MicrochipFor32/bsp_Device/bsp_BMP.cpp 文件参考 +D:/gitt/MicrochipFor32/bsp_Device/bsp_BMP.cpp + + +用来构造BMP图片 + + +#include "bsp_BMP.h"bsp_BMP.cpp 的引用(Include)关系图: + + + + + + + + +
+详细描述 + +用来构造BMP图片 + +在文件 bsp_BMP.cpp 中定义. +
+
diff --git a/Doc/docbook/bsp___b_m_p_8cpp__incl.md5 b/Doc/docbook/bsp___b_m_p_8cpp__incl.md5 new file mode 100644 index 0000000..33f871a --- /dev/null +++ b/Doc/docbook/bsp___b_m_p_8cpp__incl.md5 @@ -0,0 +1 @@ +062ea6b48affc70ad7d3050fce0d2429 \ No newline at end of file diff --git a/Doc/docbook/bsp___b_m_p_8cpp__incl.png b/Doc/docbook/bsp___b_m_p_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..24366d63df8a5d50c6a33e88a32e1be774d3b346 GIT binary patch literal 5129 zcmcIocQhPK*I&IaB5L$RiyA^UN^&5}@2jonhY=^Z z^{{I9Ln~Ey{NE+rcvm7YC}@Q9HH~7uUS+B2RfZaH+*^ynUlI8VSoS@A zaL6RpVw@M57U9WIvZal!m`J(0E})yH?d98er8@JYihX*da9QSWNOOzqRRVq(31}RC zls)WlC(^EA8+92RTzB>S+YK-+a`7Y%&FSB*K?v3>pWj$@_J$85~k?bbH=G((8w z@vt>tyx{;t^_iq4xYD)wTDNe>PKDvIva2V!8kt2T`jbU-#g)p zFh04OzO}UlWN(`#mZF-Q+$*^df4Pav%R;cTvzp6L(oZ6>C0|-RAUVJB8@I)kyB7Do zwOJL`P<|cM(kh!QW)_swXzRTc_h!O~^(HAM9O(aB4vq+RU>afFReYS`GC5;$b8Kk~U~OX?e|i_Qlxym|f25V1n|W(> z!7f`!Z*=AbtRW|Rzu({99E(!16#7a!n-6Jwp-dkk=XekXMB+G$Aee1;WBI)pHdGh` z3TT6rxsqwh`smZCz2`%`SktmxSZx`Me)oqn8jIRqJR6D}x7h2v4jWzmvi`&6+)%#8 z3Srbnwc=SAupuuio@gj4rz1Iuom>zclYW{#^rZ?Z!gvXLrNn?)!#1v1f}lWrlwacR z`+V~^r<;IoRBld=BnbIr4dH|3vb#auD&+g}lPlB5uyXu^_>zV|)8+tEHRCDgs|UnK z0TKP{?(V65baNQG?>r*l`eLO{B8&pllmGcde$-%qBX z@nWF6<454_2vEu=jVwbSMF)N5brWt=S$11t(Zk%jzU$>_h9N*AnrrPXqNU5N&nzW9uc5%-#U4xAR(@WfNhy@S!N@L1oG571} zu<;GzY3Q#Ll%Tb&rEKe{@ZpT}WWhB|%dKOLXT{j%trLb1Q(R)kSr~{{4GVHgDCGQE z7A?w)wO|^%8X^B7o%?mI$ai<2wWLAc8w-4yt(YuoW*9}peX$3-HZb9b_u67QC4rQ~ z%_x80HvRUpATaHzoRP$9F!ptQ-KWT$^w*+`r!#@oErA-g0#Q(;^0Z5 zMYP)WRo?+e(RkI}w!&jlv)}q-5TX9$)@-WA`(XAI)nk{?-4p9!p~yoB&%Wi5f8J)9 zSH+v@NNtYvQ5I4tyE*_>64>EQJUJ?e+XpMM9Ld5>@G5QBUR-?5W+%Ew|hIZ7jHtJ#j+*NThN%W=2v6OFZdFM}S=SBsmv)JiFRqq!$ zRb7P_vsz5iY8XTfTmETwtKEIxyf{gbO$7?a==;F{%j4HtZc*R~=I$rq>MSVTc20M# zYiUf++Ev!FuD6Z{`42g)4jO4Cd#G*UsdiU*Tlo{gZF0~UMs>h97!aYo6TRrfYtfd$ z2)N|}fYR=NW!_PQKScXnI?~MF{#_(d>7+!B#9Q&wL&LFtU?DiO9}_%yfO?k2^>lf2 z*9(Bq@?Xr3CB`dYoH=5<49T_u=S0m;7s>FGsM%kO2P*Esv~B ztS)MOI%j_jvmn$~_i+MJ0{i_OEC@Bq%rF`fX~KW~BXduZzGmFH

bxeVK)Vr2FSp zfykL|CZUd#yk{ma6+&@8n4fq*f->a8ipqQ(0P?Ii;4sT+4Ym$7cCTK*0=i}+>rRJs zSzxPQU%X$lL^;X|e4fp%5E& zS@ToZ+t^M8sIzAyQaXLx3t+tAI@BkMEc2aGR@FaQp-mypf;YXmBB*+q@K$&Q2e8#@ z(R2EbhEd&uPckHor!uH<=&+lFt4HGSzJY-qPIU7U-;<0<#u|>f6lsiC1|FIYFFq^^ zGX=j`s0N&SplEix%Ls!Ky!Jq+EkQa*We1~63dH4#L?#>~s$O5;KMwzl(V$SiK56b@ z%3N&0KC}}LT}UaGcg3^4p|n|JgiZzC>krgGee?NpXz|BW&#wb-w~#{DC`MGTiF4y4 zdjTh2B>_h8!>1L@OBO^eqz87?C^~@c{lSjfW$c=OkBCZ!3zv2-`7O_^Rlo<4R{U`4 zn!d>thcz>dJ-cq|Q*o;3sPm%e@B`EVt^Q2 zHJMtpUQL6DCUT}YIY(BjyS5j!&KGpSS^4eddv5T)nz|iYPX>h;{1u}N;kZ;Kr%vK2 z4@rHRKwJcL(e|?F;j1z!$NXo}szw zG;{itxW*+0pV2}`@309)g7!AZ1{r8-y>gEJP^aY}*>j2A-v99SrD|3!`p+R6brhzK z-K-by@>@chF+o0K(gM9!*mHVR)xqOGp0#RAY#Xsov63@!bL+Dmt*erB@_>-5)8gc3 zh}meB)U}-q7kLgkOeDILt~<*iRV5m#8<; zYb_V1&8lMO6#wQ()o?Bx}g)JvEsKJS(JE1cdztDJg@@IGH zqO69Oj0&^-D?|!O!Ao-rPoh|-IPx%uFT~Gv4m%sAi9jyTKVXZRxCKeG8b{TN3r-Jb z5j_9IU-xP28T{s#KDcOZ^VV+<7?@4Ey;Cl}_>m?k(lai`eMu6&s>F-qF|nLiU9nZK z13rzu3&dik=V9*hgDwrA~qNx3m{ zyWp+MF6Ry8ezh6qg<#?_W3oxE+*iO?kX)T1!r<^7@NJjz=hBDE^9jtO7APQn|K2Jg zt~Otp?vu*Pa~bxV_uq>1aHA?DxnzB_b6G685<0$T&))S@v{z?vBF&N*SLAHV14`;; zpjI!sRVn>Yh7tAd^)zU4^!v~iTB9V~JK*34>=MD$UZ&?~)SX!rNG3F6C~+)l z!C2BBAa|M9%)YJDK@Nfz2{V~`Y}oE#)r$(JnW0sXi`I)5fFU`Hru3vala(gTdd|JqH+0 zYgftQisEX91Q8UucTB?{uV5=Qw@OSg4gQOI-qY>MnGFE~VH*uko)$be2p3*)W`$e{ zW8oMW>674F__)3fyb2F?YdzmgyB))mW z<%l>-=B7&kBC8NFa|gEIT>ksfO~AYHOQXNLytX?hh6jYBD?!- z2jaos3%hHqQT?eWzMPB2@|U}C9;l~u%HN02K3wPO)J7v^9&S8uYZ#hN<(thD{hL_) z2NDofSPm|IpvB4?hHddldZf|U*B3&lMTpv3%QDFjQx?609fEx8^c3ve!i49hOR~vGF{!R)OZEV zE1l>fKTeh)5p!}4yFlO1Y12@qqZm6}!ebP^mW^1v4ZuzTFG-FCDByd zon7Oza@`7ctf&I&8($mUhU=d5yGO9OTDklaq67l#eg} zEJclsjO5(%g_!moKi?^Ufg)D?m${h-NAuMh+=jVa2@>1svuLntgt+`$313ffqAujd zKc1WMbqvwebh%StBF6&j!VA@;;1?7Gh8tJ;G%#zJ;m6k5|SZ_7qwvUIo_}-7X zB9m>a#H$?owP%0)h@PLHr*iyN$%cQ=}A?zS#|u?-^sWg08dDZ#2hSHtgS^6Pk!}+sZi|ajE~=bZfaR%vL3m zw|=h^SN@wl_tPz1v;XYolxpB^@-b}S+LS8hFRdaEXOtW$LoeHquT<|S((!+@W#lIM bAkxgG%-j2h`#o}Q4`A@uecd{3r|ACy{YC@P literal 0 HcmV?d00001 diff --git a/Doc/docbook/bsp___b_m_p_8cpp_source.xml b/Doc/docbook/bsp___b_m_p_8cpp_source.xml new file mode 100644 index 0000000..830c225 --- /dev/null +++ b/Doc/docbook/bsp___b_m_p_8cpp_source.xml @@ -0,0 +1,86 @@ + +

+bsp_BMP.cpp +D:/gitt/MicrochipFor32/bsp_Device/bsp_BMP.cpp +浏览该文件的文档.00001 /*---------------------------------------------------------------------------------------------------- +00002 # +00003 # Copyright (c) 2022 Yuankang Liang(XerolySkinner) +00004 # +00005 # 本软件按原样提供,无任何明示或暗示 +00006 # 在任何情况下,作者都不承担任何损害赔偿责任 +00007 # +00008 # 使用的许可声明: +00009 # 1. 不得歪曲本软件的来源,你不能声称你编写了原始软件. +00010 # 2. 免费授予以任何目的,前提是版权声明出现在所有副本中. +00011 # 并且版权声明和许可声明同时出现. +00012 # 3. 你有使用,复制,修改,分发,和销售本软件的许可. +00013 # 4. 如果你在产品中使用,产品文档中的声明是赞赏的但不是必须的. +00014 # 5. 本通知不得从任何来源删除或更改. +00015 # +00016 # Yuankang Liang(XerolySkinner) +00017 # E-mail:zabbcccbbaz@163.com +00018 # QQ:2715099320 +00019 # Mobile Phone:13005636215 +00020 # +00021 # All rights reserved. +00022 */ +00023 +00034 //---------------------------------------------------------------------------------------------------- +00035 // 头文件 +00036 #include "bsp_BMP.h" +00038 //---------------------------------------------------------------------------------------------------- +00039 // 类函数 +00045 void bsp_BMP::pels(u32 x, u32 y) { +00046 bsp_BMP::BITMAPINFO.bmiHeader.biXPelsPerMeter = x; +00047 bsp_BMP::BITMAPINFO.bmiHeader.biYPelsPerMeter = y;} +00052 u32 bsp_BMP::giveData(void) { +00053 free(dat); +00054 dat = (u8*)malloc(Size); +00055 return (u32)dat;} +00059 void bsp_BMP::delData(void) { +00060 free(dat);} +00068 void bsp_BMP::ColorsSet(u8 R, u8 G, u8 B,u32 i) { +00069 BITMAPINFO.bmiColors[i].rgbBlue = B; +00070 BITMAPINFO.bmiColors[i].rgbGreen = G; +00071 BITMAPINFO.bmiColors[i].rgbRed = R; +00072 BITMAPINFO.bmiColors[i].rgbReserved = 0;} +00078 void bsp_BMP::sizeSet(u32 x, u32 y) { +00079 free(dat); +00080 Size = x * y; +00081 BITMAPINFO.bmiHeader.biWidth = x; // 色彩宽度 +00082 BITMAPINFO.bmiHeader.biHeight = y; // 色彩高度 +00083 BITMAPINFO.bmfHeader.bfOffBits = +00084 sizeof(_BITMAPINFO); // 位图数据偏倚 +00085 BITMAPINFO.bmfHeader.bfSize = +00086 x * y + +00087 BITMAPINFO.bmfHeader.bfOffBits; // 文件大小 +00088 } +00090 //---------------------------------------------------------------------------------------------------- +00091 // 构造函数 +00097 bsp_BMP::bsp_BMP(u32 Width, u32 Height) { +00098 bsp_BMP::dat = NULL; +00099 bsp_BMP::Size = Width * Height; +00100 BITMAPINFO.bmiHeader.biWidth = Width; // 色彩宽度 +00101 BITMAPINFO.bmiHeader.biHeight = Height; // 色彩高度 +00102 BITMAPINFO.bmfHeader.bfType = 0x4D42; // 恒为保护字 +00103 BITMAPINFO.bmfHeader.bfReserved1 = 0; // 保留字 +00104 BITMAPINFO.bmfHeader.bfReserved2 = 0; // 保留字 +00105 BITMAPINFO.bmiHeader.biCompression = 0; // 无压缩 +00106 BITMAPINFO.bmiHeader.biSizeImage = 0; // 无压缩下为0 +00107 BITMAPINFO.bmiHeader.biPlanes = 1; // 恒为保护字 +00108 BITMAPINFO.bmiHeader.biClrUsed = 0; // 使用全部颜色 +00109 BITMAPINFO.bmiHeader.biClrImportant = 0; // 全部颜色都重要 +00110 BITMAPINFO.bmiHeader.biXPelsPerMeter = 0; // 像素-不太重要 +00111 BITMAPINFO.bmiHeader.biYPelsPerMeter = 0; // 像素-不太重要 +00112 BITMAPINFO.bmiHeader.biSize = 40; // 信息头大小 +00113 BITMAPINFO.bmfHeader.bfOffBits = +00114 sizeof(_BITMAPINFO); // 位图数据偏倚 +00115 BITMAPINFO.bmfHeader.bfSize = +00116 Width * Height+ +00117 BITMAPINFO.bmfHeader.bfOffBits; // 文件大小 +00118 BITMAPINFO.bmiHeader.biBitCount = 8; // 色彩深度 +00119 } +00120 //---------------------------------------------------------------------------------------------------- +00121 bsp_BMP::~bsp_BMP(void) { +00122 free(dat);} +
diff --git a/Doc/docbook/bsp___b_m_p_8h.xml b/Doc/docbook/bsp___b_m_p_8h.xml new file mode 100644 index 0000000..f4d5e7f --- /dev/null +++ b/Doc/docbook/bsp___b_m_p_8h.xml @@ -0,0 +1,60 @@ + +
+D:/gitt/MicrochipFor32/bsp_Device/bsp_BMP.h 文件参考 +D:/gitt/MicrochipFor32/bsp_Device/bsp_BMP.h + + +用来构造BMP图片 + + +#include "varint.h"#include <stdlib.h>bsp_BMP.h 的引用(Include)关系图: + + + + + + + + +此图展示该文件直接或间接的被哪些文件引用了: + + + + + + + + + + + + struct _BITMAPFILEHEADER + +位图文件头 + + struct _BITMAPINFOHEADER + +位图信息头 + + struct _RGBQUAD + +调色板 + + struct _BITMAPINFO + +BMP文件头 + + class bsp_BMP + +构建一个BMP类 + + + +
+详细描述 + +用来构造BMP图片 + +在文件 bsp_BMP.h 中定义. +
+
diff --git a/Doc/docbook/bsp___b_m_p_8h__dep__incl.md5 b/Doc/docbook/bsp___b_m_p_8h__dep__incl.md5 new file mode 100644 index 0000000..e5cfad9 --- /dev/null +++ b/Doc/docbook/bsp___b_m_p_8h__dep__incl.md5 @@ -0,0 +1 @@ +076f3757130d37bc7a9e16d5c2a0ac69 \ No newline at end of file diff --git a/Doc/docbook/bsp___b_m_p_8h__dep__incl.png b/Doc/docbook/bsp___b_m_p_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..adda8e75f8f0890b83031bab905de40d86d6c1eb GIT binary patch literal 2257 zcmchZXHXLe7RQ4kRisKUqEZhK6m=0ogn%S;sUkt#4Lw9a1z9BE2}mIHEQL`yWrWe@cm+AWdS()SCw>DWdi^LFQ67?E|EoyS0fljODWR3tJoD+ zXhHzoqpyoTII(0l8fSbccwSa~M+$AU z(&((b6c7^P9?q>>`*mJ4ej~#5T@-iUv$MWtULT+uFJ>;F>NB7@FNtqyxwIS_pW)a{ z104@Sp3St#DljsL7x#V#%AW~ z*6(6}J7>=LYz+!NoS>T5I-u3b3XRIPX5Rpo4iW}uKb*|9P-)_Sbpz)i-oyvNO<>ya zMU<()LCegdnBb9V*9>m49ei(d{D8dsVSG2nTgABUkh8f+NC8Q)4tvc9nOFBCW6?hT z{#GDV>|`#ARy_3Q+d*o zSy{`{jl_v8*^U@*l|J1bW1cpWpTFXlo&L9 zA%PXSvl~*Hmx%Kcx5`)%J#)tCKo#TcKwrVRfBSj~WCon5XQckr(V_!2@!VyTtm(o5 z(cC@48h7dt5@&=uMUluaEivfYL(H%G2OV4xNha#kcG;DMi%KgRjq@A@70M1&UJ4ax zs29Kuxm#VD)0;b>oD^4fDWz~x$gRx1K=&2d0AUDb^ zzuSCF=KeY{MpEA2s$Ho@BUS|Br@1eov!x2qOaOlZ0TditPtUscBQ^G@f~uQXugQe#kT2Lc>M3ewB6>psZTP916A?L>lTXtdB0?sBm4ibhAr91 zJ(y|T>Tp_viTGb^;MG6)e$aBvH3XrNI^@?hzs%Z8pM`5!)aTr&%4zrfsQYqg6UFzP z_Qun3%?;^Iefj0#-r3L}3X`ec@2(V&G#Oh!?3Y#AwAeV=5JSeUGd(qLx-i zC-jEQLh|NP7PFsEY*QY9@{52u4Tb}F=}@G?I%3{$cE zGZ#!}0b&qZ`wB0Aad4Hi)8Tb$@@Ud9k9n{25=sSzV(xx#ps%Gfm5GBKumLkfr}@Xd zuEdLFPue&{vFMG7k4jC(_|V5VV1$WJsoYatIK4N8Y22F=pk9@aceh=;jT~%rs4;w& zVNfUzyjhC94uns+Zz z;-QyOy^&`WTsy(eHAsP;Ue72X|BS7b2Ip+9fo8MqYG5^M$smo+%zn9MPg6p-u{YNw`WN>gg@OK+=Fl+3{$n=V@u{Ps&kmdw)> z8(F)gxyNtH=ii5?+N1)bo~??A3;c=0zx>#nuyJ@80|f~{KXxUG@~10Uz9SH@!*a)g h;LlVLFSgVNLf#0BGb_43cbriGP)mD@I`jL_{|U!aXZrvE literal 0 HcmV?d00001 diff --git a/Doc/docbook/bsp___b_m_p_8h__incl.md5 b/Doc/docbook/bsp___b_m_p_8h__incl.md5 new file mode 100644 index 0000000..ae835ba --- /dev/null +++ b/Doc/docbook/bsp___b_m_p_8h__incl.md5 @@ -0,0 +1 @@ +ba2603077eea24df840880690636543c \ No newline at end of file diff --git a/Doc/docbook/bsp___b_m_p_8h__incl.png b/Doc/docbook/bsp___b_m_p_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..05a49cb50a65d9ce3845678b99ad7c1e99d592a6 GIT binary patch literal 4115 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 literal 0 HcmV?d00001 diff --git a/Doc/docbook/bsp___b_m_p_8h_source.xml b/Doc/docbook/bsp___b_m_p_8h_source.xml new file mode 100644 index 0000000..e157978 --- /dev/null +++ b/Doc/docbook/bsp___b_m_p_8h_source.xml @@ -0,0 +1,91 @@ + +
+bsp_BMP.h +D:/gitt/MicrochipFor32/bsp_Device/bsp_BMP.h +浏览该文件的文档.00001 /*---------------------------------------------------------------------------------------------------- +00002 # +00003 # Copyright (c) 2022 Yuankang Liang(XerolySkinner) +00004 # +00005 # 本软件按原样提供,无任何明示或暗示 +00006 # 在任何情况下,作者都不承担任何损害赔偿责任 +00007 # +00008 # 使用的许可声明: +00009 # 1. 不得歪曲本软件的来源,你不能声称你编写了原始软件. +00010 # 2. 免费授予以任何目的,前提是版权声明出现在所有副本中. +00011 # 并且版权声明和许可声明同时出现. +00012 # 3. 你有使用,复制,修改,分发,和销售本软件的许可. +00013 # 4. 如果你在产品中使用,产品文档中的声明是赞赏的但不是必须的. +00014 # 5. 本通知不得从任何来源删除或更改. +00015 # +00016 # Yuankang Liang(XerolySkinner) +00017 # E-mail:zabbcccbbaz@163.com +00018 # QQ:2715099320 +00019 # Mobile Phone:13005636215 +00020 # +00021 # All rights reserved. +00022 */ +00023 +00033 #pragma once +00034 #ifdef __cplusplus +00035 #include "varint.h" +00036 #include <stdlib.h> +00038 //---------------------------------------------------------------------------------------------------- +00039 // 文件头 +00040 #pragma pack(1) +00044 typedef struct +00045 { +00046 u16 bfType; //文件标志.固定为'BM',用来识别BMP位图类型 +00047 u32 bfSize; //文件大小,占四个字节 +00048 u16 bfReserved1; //保留,总为0 +00049 u16 bfReserved2; //保留,总为0 +00050 u32 bfOffBits; //从文件开始到位图数据(bitmap data)开始之间的的偏移量 +00051 }_BITMAPFILEHEADER; +00055 typedef struct { +00056 u32 biSize; //BITMAPINFOHEADER结构所需要的字数。 +00057 u32 biWidth; //图象的宽度,以象素为单位 +00058 u32 biHeight; //图象的高度,以象素为单位 +00059 u16 biPlanes; //为目标设备说明位面数,其值将总是被设为1 +00060 u16 biBitCount; //比特数/象素,其值为1、4、8、16、24、或32 +00061 u32 biCompression; //图象数据压缩的类型。其值可以是下述值之一: +00062 //BI_RGB:没有压缩; +00063 //BI_RLE8:每个象素8比特的RLE压缩编码,压缩格式由2字节组成(重复象素计数和颜色索引); +00064 //BI_RLE4:每个象素4比特的RLE压缩编码,压缩格式由2字节组成 +00065 //BI_BITFIELDS:每个象素的比特由指定的掩码决定。 +00066 u32 biSizeImage; //图象的大小,以字节为单位。当用BI_RGB格式时,可设置为0 +00067 u32 biXPelsPerMeter; //水平分辨率,用象素/米表示 +00068 u32 biYPelsPerMeter; //垂直分辨率,用象素/米表示 +00069 u32 biClrUsed; //位图实际使用的彩色表中的颜色索引数 +00070 u32 biClrImportant; //对图象显示有重要影响的颜色索引的数目,如果是0,表示都重要。 +00071 }_BITMAPINFOHEADER; +00075 typedef struct{ +00076 u8 rgbBlue; //指定蓝色强度 +00077 u8 rgbGreen; //指定绿色强度 +00078 u8 rgbRed; //指定红色强度 +00079 u8 rgbReserved; //保留,设置为0 +00080 }_RGBQUAD; +00084 typedef struct{ +00085 _BITMAPFILEHEADER bmfHeader; //位图文件头 +00086 _BITMAPINFOHEADER bmiHeader; //位图信息头 +00087 _RGBQUAD bmiColors[256]; //调色板 +00088 }_BITMAPINFO; +00089 #pragma pack() +00091 //---------------------------------------------------------------------------------------------------- +00092 // 头文件 +00093 #pragma once +00097 class bsp_BMP { +00098 public: +00099 bsp_BMP(u32 Width, u32 Height); +00100 ~bsp_BMP(void); +00101 public: +00102 void pels(u32 x, u32 y); +00103 u32 giveData(void); +00104 void delData(void); +00105 void ColorsSet(u8 R, u8 G, u8 B,u32 i); +00106 void sizeSet(u32 x, u32 y); +00107 public: +00108 _BITMAPINFO BITMAPINFO; +00109 u32 Size; +00110 u8* dat; +00111 }; +00113 #endif +
diff --git a/Doc/docbook/bsp___c_r_c_8cpp__incl.md5 b/Doc/docbook/bsp___c_r_c_8cpp__incl.md5 index 4c5cd1e..9b7cf51 100644 --- a/Doc/docbook/bsp___c_r_c_8cpp__incl.md5 +++ b/Doc/docbook/bsp___c_r_c_8cpp__incl.md5 @@ -1 +1 @@ -1c13e627ea18cebdeca90e28952b2549 \ No newline at end of file +378a5be4b791bf720a7460767abe1117 \ No newline at end of file diff --git a/Doc/docbook/bsp___c_r_c_8h__incl.md5 b/Doc/docbook/bsp___c_r_c_8h__incl.md5 index 4c45b6a..dfd84e9 100644 --- a/Doc/docbook/bsp___c_r_c_8h__incl.md5 +++ b/Doc/docbook/bsp___c_r_c_8h__incl.md5 @@ -1 +1 @@ -9bca80e74187dabc56e9d2ac38ab4110 \ No newline at end of file +aee28dc06f0158f8d6b147aafe8bb9a1 \ No newline at end of file diff --git a/Doc/docbook/bsp___calculus_8cpp.xml b/Doc/docbook/bsp___calculus_8cpp.xml new file mode 100644 index 0000000..a0b4f12 --- /dev/null +++ b/Doc/docbook/bsp___calculus_8cpp.xml @@ -0,0 +1,26 @@ + +
+D:/gitt/MicrochipFor32/bsp_Device/bsp_Calculus.cpp 文件参考 +D:/gitt/MicrochipFor32/bsp_Device/bsp_Calculus.cpp + + +离散微积分 + + +#include "bsp_Calculus.h"bsp_Calculus.cpp 的引用(Include)关系图: + + + + + + + + +
+详细描述 + +离散微积分 + +在文件 bsp_Calculus.cpp 中定义. +
+
diff --git a/Doc/docbook/bsp___calculus_8cpp__incl.md5 b/Doc/docbook/bsp___calculus_8cpp__incl.md5 new file mode 100644 index 0000000..7050f06 --- /dev/null +++ b/Doc/docbook/bsp___calculus_8cpp__incl.md5 @@ -0,0 +1 @@ +55d6117803837208a63d5e074f58ac23 \ No newline at end of file diff --git a/Doc/docbook/bsp___calculus_8cpp__incl.png b/Doc/docbook/bsp___calculus_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..d6707d22a3f1862e6bf6a7a71d48cfe9c18645d3 GIT binary patch literal 5251 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 +
+bsp_Calculus.cpp +D:/gitt/MicrochipFor32/bsp_Device/bsp_Calculus.cpp +浏览该文件的文档.00001 /*---------------------------------------------------------------------------------------------------- +00002 # +00003 # Copyright (c) 2022 Yuankang Liang(XerolySkinner) +00004 # +00005 # 本软件按原样提供,无任何明示或暗示 +00006 # 在任何情况下,作者都不承担任何损害赔偿责任 +00007 # +00008 # 使用的许可声明: +00009 # 1. 不得歪曲本软件的来源,你不能声称你编写了原始软件. +00010 # 2. 免费授予以任何目的,前提是版权声明出现在所有副本中. +00011 # 并且版权声明和许可声明同时出现. +00012 # 3. 你有使用,复制,修改,分发,和销售本软件的许可. +00013 # 4. 如果你在产品中使用,产品文档中的声明是赞赏的但不是必须的. +00014 # 5. 本通知不得从任何来源删除或更改. +00015 # +00016 # Yuankang Liang(XerolySkinner) +00017 # E-mail:zabbcccbbaz@163.com +00018 # QQ:2715099320 +00019 # Mobile Phone:13005636215 +00020 # +00021 # All rights reserved. +00022 */ +00023 +00035 //---------------------------------------------------------------------------------------------------- +00036 // 头文件 +00037 #include "bsp_Calculus.h" +00039 //---------------------------------------------------------------------------------------------------- +00040 // 类函数 +00046 float bsp_Differential::Differential(float var) { +00047 static float old=var; +00048 float result= (var - old) / dt; +00049 old = var; +00050 return result;} +00052 //---------------------------------------------------------------------------------------------------- +00053 // 类函数 +00059 float bsp_Integral::Integral(float var) { +00060 results += var * dt; +00061 return results;} +00062 //---------------------------------------------------------------------------------------------------- +00067 void bsp_Integral::Integral_set(float results) { +00068 bsp_Integral::results = results;} +00069 //---------------------------------------------------------------------------------------------------- +00075 u32 bsp_Integral::Integral_makelist(u32 len) { +00076 result_list = (float*)malloc(sizeof(float)* len); +00077 result_len = len; +00078 Integral_clslist(); +00079 return (u32)result_list;} +00080 //---------------------------------------------------------------------------------------------------- +00086 float bsp_Integral::Integral_list(float var) { +00087 static u32 len=0; +00088 results += var * dt; +00089 // 保存历史 +00090 result_list[len] = var * dt; +00091 // 轮盘转 +00092 ++len; +00093 if (len == result_len)len = 0; +00094 // 去除尾值 +00095 if (len < result_len - 1) +00096 results -= result_list[len + 1]; +00097 else +00098 results -= result_list[0]; +00099 // +00100 return results;} +00101 //---------------------------------------------------------------------------------------------------- +00105 void bsp_Integral::Integral_dellist(void) { +00106 free(result_list); +00107 result_len = 0; +00108 result_list = NULL;} +00109 //---------------------------------------------------------------------------------------------------- +00113 void bsp_Integral::Integral_clslist(void) { +00114 if (result_list == NULL)return; +00115 for (u32 i = 0; i < result_len; i++) +00116 result_list[i] = 0;} +
diff --git a/Doc/docbook/bsp___calculus_8h.xml b/Doc/docbook/bsp___calculus_8h.xml new file mode 100644 index 0000000..cb6cc26 --- /dev/null +++ b/Doc/docbook/bsp___calculus_8h.xml @@ -0,0 +1,48 @@ + +
+D:/gitt/MicrochipFor32/bsp_Device/bsp_Calculus.h 文件参考 +D:/gitt/MicrochipFor32/bsp_Device/bsp_Calculus.h + + +离散微积分 + + +#include <stdlib.h>#include "varint.h"bsp_Calculus.h 的引用(Include)关系图: + + + + + + + + +此图展示该文件直接或间接的被哪些文件引用了: + + + + + + + + + + + + class bsp_Differential + +一个微分对象 + + class bsp_Integral + +一个积分对象 + + + +
+详细描述 + +离散微积分 + +在文件 bsp_Calculus.h 中定义. +
+
diff --git a/Doc/docbook/bsp___calculus_8h__dep__incl.md5 b/Doc/docbook/bsp___calculus_8h__dep__incl.md5 new file mode 100644 index 0000000..7229950 --- /dev/null +++ b/Doc/docbook/bsp___calculus_8h__dep__incl.md5 @@ -0,0 +1 @@ +3595893eb2f98cb9b95a064c9c342fb5 \ No newline at end of file diff --git a/Doc/docbook/bsp___calculus_8h__dep__incl.png b/Doc/docbook/bsp___calculus_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..02da26b3cc39fc6dd5957590324d72f3fa7b1e00 GIT binary patch literal 2383 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 literal 0 HcmV?d00001 diff --git a/Doc/docbook/bsp___calculus_8h__incl.md5 b/Doc/docbook/bsp___calculus_8h__incl.md5 new file mode 100644 index 0000000..5ecfb2c --- /dev/null +++ b/Doc/docbook/bsp___calculus_8h__incl.md5 @@ -0,0 +1 @@ +701e6fece90a228d26b32443744f7b56 \ No newline at end of file diff --git a/Doc/docbook/bsp___calculus_8h__incl.png b/Doc/docbook/bsp___calculus_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..1c22c560611d7a1a17a9ab4ad559ce969fca80b3 GIT binary patch literal 4198 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 +
+bsp_Calculus.h +D:/gitt/MicrochipFor32/bsp_Device/bsp_Calculus.h +浏览该文件的文档.00001 /*---------------------------------------------------------------------------------------------------- +00002 # +00003 # Copyright (c) 2022 Yuankang Liang(XerolySkinner) +00004 # +00005 # 本软件按原样提供,无任何明示或暗示 +00006 # 在任何情况下,作者都不承担任何损害赔偿责任 +00007 # +00008 # 使用的许可声明: +00009 # 1. 不得歪曲本软件的来源,你不能声称你编写了原始软件. +00010 # 2. 免费授予以任何目的,前提是版权声明出现在所有副本中. +00011 # 并且版权声明和许可声明同时出现. +00012 # 3. 你有使用,复制,修改,分发,和销售本软件的许可. +00013 # 4. 如果你在产品中使用,产品文档中的声明是赞赏的但不是必须的. +00014 # 5. 本通知不得从任何来源删除或更改. +00015 # +00016 # Yuankang Liang(XerolySkinner) +00017 # E-mail:zabbcccbbaz@163.com +00018 # QQ:2715099320 +00019 # Mobile Phone:13005636215 +00020 # +00021 # All rights reserved. +00022 */ +00023 +00033 #pragma once +00034 #ifdef __cplusplus +00035 #include <stdlib.h> +00036 #include "varint.h" +00038 //---------------------------------------------------------------------------------------------------- +00039 // 类目 +00043 class bsp_Differential{ +00044 public: +00045 bsp_Differential(float dt) { +00046 bsp_Differential::dt = dt;} +00047 public: +00048 float Differential(float var); +00049 public: +00050 float dt; +00051 }; +00052 //---------------------------------------------------------------------------------------------------- +00059 class bsp_Integral { +00060 public: +00061 bsp_Integral(float dt) { +00062 bsp_Integral::result_list = NULL; +00063 bsp_Integral::dt = dt; +00064 bsp_Integral::results = 0;} +00065 ~bsp_Integral(void) { +00066 free(result_list); +00067 result_list = NULL;} +00068 public: +00069 float Integral(float var); +00070 void Integral_set(float results); +00071 +00072 float Integral_list(float var); +00073 u32 Integral_makelist(u32 len); +00074 void Integral_dellist(void); +00075 void Integral_clslist(void); +00076 public: +00077 float *result_list; +00078 u32 result_len; +00079 float results; +00080 float dt; +00081 }; +00083 #endif +
diff --git a/Doc/docbook/bsp___digit_8cpp__incl.md5 b/Doc/docbook/bsp___digit_8cpp__incl.md5 index 4b50bf2..4f1c543 100644 --- a/Doc/docbook/bsp___digit_8cpp__incl.md5 +++ b/Doc/docbook/bsp___digit_8cpp__incl.md5 @@ -1 +1 @@ -042549b4c70be9512963c51b667a26c0 \ No newline at end of file +77705ff73775d9305def5b688629e2bf \ No newline at end of file diff --git a/Doc/docbook/bsp___digit_8h__incl.md5 b/Doc/docbook/bsp___digit_8h__incl.md5 index 2af484a..253b31f 100644 --- a/Doc/docbook/bsp___digit_8h__incl.md5 +++ b/Doc/docbook/bsp___digit_8h__incl.md5 @@ -1 +1 @@ -20ec23eb07beb642f39e5abcdfcd6068 \ No newline at end of file +5a2dd6c40815bfe731cf1667f129a274 \ No newline at end of file diff --git a/Doc/docbook/bsp___i_i_c_8cpp__incl.md5 b/Doc/docbook/bsp___i_i_c_8cpp__incl.md5 index 1b5d607..e7a33f9 100644 --- a/Doc/docbook/bsp___i_i_c_8cpp__incl.md5 +++ b/Doc/docbook/bsp___i_i_c_8cpp__incl.md5 @@ -1 +1 @@ -7a6a93f355491cd0f137e8e3f87c9c83 \ No newline at end of file +4cfab8bdd4e849699970e4e09d30f5b4 \ No newline at end of file diff --git a/Doc/docbook/bsp___i_i_c_8h__incl.md5 b/Doc/docbook/bsp___i_i_c_8h__incl.md5 index 09bca1b..d2b7647 100644 --- a/Doc/docbook/bsp___i_i_c_8h__incl.md5 +++ b/Doc/docbook/bsp___i_i_c_8h__incl.md5 @@ -1 +1 @@ -610e9a8f2c0ec7b8e152d816a0343cac \ No newline at end of file +972b83dc156c6576e84f65cfba424ab7 \ No newline at end of file diff --git a/Doc/docbook/bsp___i_i_c___s_t_m32_8cpp__incl.md5 b/Doc/docbook/bsp___i_i_c___s_t_m32_8cpp__incl.md5 index 0494dda..751a736 100644 --- a/Doc/docbook/bsp___i_i_c___s_t_m32_8cpp__incl.md5 +++ b/Doc/docbook/bsp___i_i_c___s_t_m32_8cpp__incl.md5 @@ -1 +1 @@ -a32b121090453bd1ba787e9592915435 \ No newline at end of file +99ec78978e193eea555b179de975dcae \ No newline at end of file diff --git a/Doc/docbook/bsp___i_i_c___s_t_m32_8cpp_source.xml b/Doc/docbook/bsp___i_i_c___s_t_m32_8cpp_source.xml index 4044338..1053001 100644 --- a/Doc/docbook/bsp___i_i_c___s_t_m32_8cpp_source.xml +++ b/Doc/docbook/bsp___i_i_c___s_t_m32_8cpp_source.xml @@ -53,15 +53,15 @@ 00080 else { 00081 return HAL_GPIO_ReadPin(GPIOx_SCK, GPIO_Pin_SCK); 00082 }} -00089 u8 bsp_IIC_STM32::IIC_SDA(u8 var) { -00090 if (var == IIC_RESET) { -00091 HAL_GPIO_WritePin(GPIOx_SDA, GPIO_Pin_SDA, GPIO_PIN_RESET); -00092 return 2;} -00093 else if (var == IIC_SET) { -00094 HAL_GPIO_WritePin(GPIOx_SDA, GPIO_Pin_SDA, GPIO_PIN_SET); -00095 return 2;} -00096 else { -00097 return HAL_GPIO_ReadPin(GPIOx_SDA, GPIO_Pin_SDA); -00098 }} -00100 +00088 u8 bsp_IIC_STM32::IIC_SDA(u8 var) { +00089 if (var == IIC_RESET) { +00090 HAL_GPIO_WritePin(GPIOx_SDA, GPIO_Pin_SDA, GPIO_PIN_RESET); +00091 return 2;} +00092 else if (var == IIC_SET) { +00093 HAL_GPIO_WritePin(GPIOx_SDA, GPIO_Pin_SDA, GPIO_PIN_SET); +00094 return 2;} +00095 else { +00096 return HAL_GPIO_ReadPin(GPIOx_SDA, GPIO_Pin_SDA); +00097 }} +00099 diff --git a/Doc/docbook/bsp___i_i_c___s_t_m32_8h__incl.md5 b/Doc/docbook/bsp___i_i_c___s_t_m32_8h__incl.md5 index 4c6f2fa..c51b6e3 100644 --- a/Doc/docbook/bsp___i_i_c___s_t_m32_8h__incl.md5 +++ b/Doc/docbook/bsp___i_i_c___s_t_m32_8h__incl.md5 @@ -1 +1 @@ -434d1ac463c09204629681b9859e90e5 \ No newline at end of file +d93573a6061a468cee600bcb26da56c0 \ No newline at end of file diff --git a/Doc/docbook/bsp___m_a_x6675_8cpp__incl.md5 b/Doc/docbook/bsp___m_a_x6675_8cpp__incl.md5 index bf7cfd6..c9677c2 100644 --- a/Doc/docbook/bsp___m_a_x6675_8cpp__incl.md5 +++ b/Doc/docbook/bsp___m_a_x6675_8cpp__incl.md5 @@ -1 +1 @@ -c3412ba50491fb15b2e98d622a058257 \ No newline at end of file +edece428a1865e9468bf81418d1c614d \ No newline at end of file diff --git a/Doc/docbook/bsp___m_a_x6675_8h__incl.md5 b/Doc/docbook/bsp___m_a_x6675_8h__incl.md5 index 50ca5d4..9448211 100644 --- a/Doc/docbook/bsp___m_a_x6675_8h__incl.md5 +++ b/Doc/docbook/bsp___m_a_x6675_8h__incl.md5 @@ -1 +1 @@ -c7878948260ba41829bba5fa91f57c35 \ No newline at end of file +e94bd0298a4a163f1850dfb7bc77d139 \ No newline at end of file diff --git a/Doc/docbook/bsp___mod_bus_8cpp__incl.md5 b/Doc/docbook/bsp___mod_bus_8cpp__incl.md5 index f5362d1..9f45d4d 100644 --- a/Doc/docbook/bsp___mod_bus_8cpp__incl.md5 +++ b/Doc/docbook/bsp___mod_bus_8cpp__incl.md5 @@ -1 +1 @@ -7e507556509e9083d59516b0ca7d0e53 \ No newline at end of file +95ef4392359a3ed19f5792653ca66da9 \ No newline at end of file diff --git a/Doc/docbook/bsp___mod_bus_8h__incl.md5 b/Doc/docbook/bsp___mod_bus_8h__incl.md5 index ebef491..5526bcf 100644 --- a/Doc/docbook/bsp___mod_bus_8h__incl.md5 +++ b/Doc/docbook/bsp___mod_bus_8h__incl.md5 @@ -1 +1 @@ -ed0f49f916ae094198ae0f7fe42942c7 \ No newline at end of file +87f408f1a881a8f9ffc46b5873fa5e1f \ No newline at end of file diff --git a/Doc/docbook/bsp___mod_bus___s_t_m32_8cpp__incl.md5 b/Doc/docbook/bsp___mod_bus___s_t_m32_8cpp__incl.md5 index 6a50d44..1882bfe 100644 --- a/Doc/docbook/bsp___mod_bus___s_t_m32_8cpp__incl.md5 +++ b/Doc/docbook/bsp___mod_bus___s_t_m32_8cpp__incl.md5 @@ -1 +1 @@ -25ce0e9308f678af72fe2e4cd7bac92d \ No newline at end of file +62ce250af195cf0621767371adf7a71a \ No newline at end of file diff --git a/Doc/docbook/bsp___mod_bus___s_t_m32_8h__incl.md5 b/Doc/docbook/bsp___mod_bus___s_t_m32_8h__incl.md5 index 6a5da08..a7051ce 100644 --- a/Doc/docbook/bsp___mod_bus___s_t_m32_8h__incl.md5 +++ b/Doc/docbook/bsp___mod_bus___s_t_m32_8h__incl.md5 @@ -1 +1 @@ -6a8961a100923169530083bf0b917641 \ No newline at end of file +c6f39345e90191cd2ff70821a6ad15ba \ No newline at end of file diff --git a/Doc/docbook/bsp___o_l_e_d___s_t_m32_8cpp__incl.md5 b/Doc/docbook/bsp___o_l_e_d___s_t_m32_8cpp__incl.md5 index d4dcb01..18f5229 100644 --- a/Doc/docbook/bsp___o_l_e_d___s_t_m32_8cpp__incl.md5 +++ b/Doc/docbook/bsp___o_l_e_d___s_t_m32_8cpp__incl.md5 @@ -1 +1 @@ -27ea151070e5815d5c45816e67ed464b \ No newline at end of file +284238da4c9efdbbbde5e601ed6bcb96 \ No newline at end of file diff --git a/Doc/docbook/bsp___o_l_e_d___s_t_m32_8h__incl.md5 b/Doc/docbook/bsp___o_l_e_d___s_t_m32_8h__incl.md5 index 43c4bac..6382341 100644 --- a/Doc/docbook/bsp___o_l_e_d___s_t_m32_8h__incl.md5 +++ b/Doc/docbook/bsp___o_l_e_d___s_t_m32_8h__incl.md5 @@ -1 +1 @@ -ea1261db9a114170f97b9ede4db83279 \ No newline at end of file +ebc85e246f2da1d131078b4684307bbe \ No newline at end of file diff --git a/Doc/docbook/bsp___p_i_d_8cpp__incl.md5 b/Doc/docbook/bsp___p_i_d_8cpp__incl.md5 index b2bf060..95ef2d2 100644 --- a/Doc/docbook/bsp___p_i_d_8cpp__incl.md5 +++ b/Doc/docbook/bsp___p_i_d_8cpp__incl.md5 @@ -1 +1 @@ -5c3df41c0e696701837b806e77c69d98 \ No newline at end of file +2ab85af796eaf36eee108f8cccd60e15 \ No newline at end of file diff --git a/Doc/docbook/bsp___p_i_d_8h__incl.md5 b/Doc/docbook/bsp___p_i_d_8h__incl.md5 index cad0650..8b28e91 100644 --- a/Doc/docbook/bsp___p_i_d_8h__incl.md5 +++ b/Doc/docbook/bsp___p_i_d_8h__incl.md5 @@ -1 +1 @@ -0963e028120e6ec1f2f7050575e37c26 \ No newline at end of file +cf82af814320311898cbfce219375707 \ No newline at end of file diff --git a/Doc/docbook/bsp___s_d_8cpp__incl.md5 b/Doc/docbook/bsp___s_d_8cpp__incl.md5 index 486eb97..f297365 100644 --- a/Doc/docbook/bsp___s_d_8cpp__incl.md5 +++ b/Doc/docbook/bsp___s_d_8cpp__incl.md5 @@ -1 +1 @@ -ba83b3acb6835f6281fb9befa8f81c7d \ No newline at end of file +d276001320b370d74ffd90fc9d28f0d0 \ No newline at end of file diff --git a/Doc/docbook/bsp___s_d_8h.xml b/Doc/docbook/bsp___s_d_8h.xml index 693c6d6..bc8675a 100644 --- a/Doc/docbook/bsp___s_d_8h.xml +++ b/Doc/docbook/bsp___s_d_8h.xml @@ -2,6 +2,11 @@
D:/gitt/MicrochipFor32/bsp_Device/bsp_SD.h 文件参考 D:/gitt/MicrochipFor32/bsp_Device/bsp_SD.h + + +操作SD卡的库 + + #include "spi.h"#include "varint.h"bsp_SD.h 的引用(Include)关系图: @@ -136,6 +141,13 @@
+详细描述 + +操作SD卡的库 + +在文件 bsp_SD.h 中定义. +
+
宏定义说明
CMD0 diff --git a/Doc/docbook/bsp___s_d_8h__dep__incl.md5 b/Doc/docbook/bsp___s_d_8h__dep__incl.md5 index 5a2d977..9c9b6e6 100644 --- a/Doc/docbook/bsp___s_d_8h__dep__incl.md5 +++ b/Doc/docbook/bsp___s_d_8h__dep__incl.md5 @@ -1 +1 @@ -a352825c2443e2cffaad52cb43e5ed6c \ No newline at end of file +38f535b42a8225f3b3512882fc587218 \ No newline at end of file diff --git a/Doc/docbook/bsp___s_d_8h__incl.md5 b/Doc/docbook/bsp___s_d_8h__incl.md5 index f0d3042..08f4dee 100644 --- a/Doc/docbook/bsp___s_d_8h__incl.md5 +++ b/Doc/docbook/bsp___s_d_8h__incl.md5 @@ -1 +1 @@ -2d80c37534916ebc9695572cc5b08873 \ No newline at end of file +2942098228a949bc0cbeb671e9019831 \ No newline at end of file diff --git a/Doc/docbook/bsp__flash_8c.xml b/Doc/docbook/bsp__flash_8c.xml new file mode 100644 index 0000000..d3b9857 --- /dev/null +++ b/Doc/docbook/bsp__flash_8c.xml @@ -0,0 +1,243 @@ + +
+D:/gitt/MicrochipFor32/bsp_Device/bsp_flash.c 文件参考 +D:/gitt/MicrochipFor32/bsp_Device/bsp_flash.c + + +写STM32的Flash库 + + +#include "main.h"bsp_flash.c 的引用(Include)关系图: + + + + + + + + + + + + struct struct_bsp_Flash_Pack + +一包数据的内容 + + + + + 函数 + + uint32_t bsp_WriteFlashOnePage (uint32_t *dat, uint32_t num) + +写入一页Flash空间 + + void bsp_ReadFlash (uint32_t *dat, uint32_t num) + +读取一页Flash空间 + + void bsp_WriteFlash_Pack (void) + +将一包数据存入Flash + + void bsp_ReadFlash_Pack (void) + +从Flash读取一包数据 + + + + + 变量 + + uint32_t FlashAddr = 0x08010000 + +读写Flash起始地址,跳过程序部分 + + struct struct_bsp_Flash_Pack bsp_Flash_Pack ={0,0,0} + + + +
+详细描述 + +写STM32的Flash库 + +在文件 bsp_flash.c 中定义. +
+
+函数说明 +
+ bsp_ReadFlash() +bsp_ReadFlashbsp_flash.c +bsp_flash.cbsp_ReadFlash +void bsp_ReadFlash (uint32_t * dat, uint32_t num) + +读取一页Flash空间 + + + + + +参数 + + + + + + + +*dat +读取数据的缓冲区 + + + +num +读取数量 + + + + +
+
+
+ 返回 + +无返回 + +
+ +在文件 bsp_flash.c 第 75 行定义. +这是这个函数的调用关系图: + + + + + + + + +
+
+ bsp_ReadFlash_Pack() +bsp_ReadFlash_Packbsp_flash.c +bsp_flash.cbsp_ReadFlash_Pack +void bsp_ReadFlash_Pack (void ) + +从Flash读取一包数据 + + +返回 + +无返回 + + + +在文件 bsp_flash.c 第 91 行定义. +函数调用图: + + + + + + + + +
+
+ bsp_WriteFlash_Pack() +bsp_WriteFlash_Packbsp_flash.c +bsp_flash.cbsp_WriteFlash_Pack +void bsp_WriteFlash_Pack (void ) + +将一包数据存入Flash + + +返回 + +无返回 + + + +在文件 bsp_flash.c 第 83 行定义. +函数调用图: + + + + + + + + +
+
+ bsp_WriteFlashOnePage() +bsp_WriteFlashOnePagebsp_flash.c +bsp_flash.cbsp_WriteFlashOnePage +uint32_t bsp_WriteFlashOnePage (uint32_t * dat, uint32_t num) + +写入一页Flash空间 + + + + + +参数 + + + + + + + +*dat +要写入的数据 + + + +num +要写入的数量 + + + + +
+
+
+ 返回 + +返回0则成功 + +
+ +在文件 bsp_flash.c 第 56 行定义. +这是这个函数的调用关系图: + + + + + + + + +
+
+
+变量说明 +
+ bsp_Flash_Pack +bsp_Flash_Packbsp_flash.c +bsp_flash.cbsp_Flash_Pack +struct struct_bsp_Flash_Pack bsp_Flash_Pack ={0,0,0}
+
+ FlashAddr +FlashAddrbsp_flash.c +bsp_flash.cFlashAddr +uint32_t FlashAddr = 0x08010000 + +读写Flash起始地址,跳过程序部分 + + +在文件 bsp_flash.c 第 36 行定义. +
+
+
diff --git a/Doc/docbook/bsp__flash_8c__incl.md5 b/Doc/docbook/bsp__flash_8c__incl.md5 new file mode 100644 index 0000000..8c01578 --- /dev/null +++ b/Doc/docbook/bsp__flash_8c__incl.md5 @@ -0,0 +1 @@ +fb2ed090a154415f6c01daed1e15d25d \ No newline at end of file diff --git a/Doc/docbook/bsp__flash_8c__incl.png b/Doc/docbook/bsp__flash_8c__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..ce8bfe47e714a58ca81fd3670248940d2f970c96 GIT binary patch literal 1736 zcmcJQ|5wuY7svgUmS4imGSRG0x}2Hc$~dN|rI4EWC3KotftJR^x8f4~hN2k)pGLOK zTuWVUrs9-_68gbFb4eK^5fnu-%VKWgx8pZL!+mJm**W_Ic3=12$2qUp>)c=N^V~~| zjtsFd1)J*W=~;w@!Vo&P>Vml0SeNZYp8Yx)Cx?f?^nU+%?(rHcbQgtTu;a10)wAQg z@|Un(#tWCKyS5^VkGWW#*+Sb#%Z5vwEK(#lOczah3YR}@VtmS&5B@yV{RXJsa?56f zspVctZBtZ-RiE1)?snQ0%Ys}?MpVH3Xf5mM;UeC^gZ|dp-Q9lb7JrVjZ!uM8p^!?{ zkDZ;lNEiIk6JD^qu$v#a9M0-xg8XceULp6kYCoDUb4(= z-+^`>kFM2f8OpG$NGdo96J}p_`-u+Ky=GoEuCA^zLYYj~GLiVORRn?0Gx9SDg*965 z)0{vB@>C&cR82}qltZ4&$iIBT?pdZR*cKC~DtQo>v4-$&Dzpko90I1lZ}TYn)gw0! z`%`H@#Z4+RDVNtFDp%r1)((w+%{kCh0qj?#bPRa7u60m+QdVD71=I)JU$KLu}Sjaur?LrjUP`plSw}-J+9$k-gpQ*+H ztC`bFAIMqpbJ(Z|0~8X;W!~c26{ICs@#QR08p=L0g7_ngm6aXg%CCnY2TtKo7-l{m%)z;cu+x#$B;bGN$0 zjgpydKXWdq%EpyEVD*~n0(uXg>Lb}n(^%HEdNIoh!RqkSA}fbQ*#8Q|s~2tVY6-0I zXszTODIoj!+czaDO4}WSsZ!x`$cW3e&kl>zSLY=SqBZW~EJ2g*JvdDsy(*05adSY; z4Wc7QXEoLNySS)Ri@+Uz4;*jZPYP4mr)H<6CEG;7&w2i!m1r0=7zYLwxY>b3liM)K zaqIVE>fF{J>}~&2`-MHl#A$1A_@pQM4_Ke4&d$z~TS_s{A3rY1%1grJ5C}-u)SdO2 zsN-#2o1lC8+{w>gP|6=}yk_wox~>OIe*K5$|C0W{k7`EX;gfSayN4$}r{^4mXy=V^ zsoLf-fY;>k_A8lT&1Cy?K(E!h=py>=1x#Ud=L74XNyC$v?e*aI-mzhY0&zZWsd-Ea zj(>}Aq{*T)P|6OWqT=P;pYjK8fR=wWYn1KtH^0PYAL z8HzV=b?#s`+0X=z_dRQojD-Q3A#q1t%lTxC|H+bwn&geqAaa%gk+s2G^Ft)?eiG+< ztHFHzg_+S_>m?VQb0l2*M4ZnqI!)JqX?Q5uh}`|l`MwGae8nuQ-2I5JLpL2I&}9;I(Skdv?ZP?3Po12vVii{au;rMrSV` zeDz_8f<>yZb!rl|u5x;a5p(9una%tO>43l|XCrw*d;NrCIsj~%$PBfYa^Ah{w_%0< z>h|ZT`?KGPhjy7?;b-3VWV_jJrTqPRd4J>7V>E6iwuV%Lszp_iG863Jcw7@&woWm_ zn;VyYFI{)?k&iTd8}UFmcF-=MGu`i6ZvByGl=@G--ILO=ii9VQKroa{c`AmW!4A>u zKG21$B^H!A0PSP%a85b0n{sGo&IkI8!QJdy04%i&eWlpRuWlP9|2>QUDah(qfoFHo yPw1Q_+*_W%d(1l`Fzn{Lq8ZM>`02!PjS_)CcQ9tB#aq^zVd&^KW6d( literal 0 HcmV?d00001 diff --git a/Doc/docbook/bsp__flash_8c_a45549058e1315d29263c0b26816bcffb_cgraph.md5 b/Doc/docbook/bsp__flash_8c_a45549058e1315d29263c0b26816bcffb_cgraph.md5 new file mode 100644 index 0000000..ed40454 --- /dev/null +++ b/Doc/docbook/bsp__flash_8c_a45549058e1315d29263c0b26816bcffb_cgraph.md5 @@ -0,0 +1 @@ +ab5ff94308626c322cbbe1936391c29b \ No newline at end of file diff --git a/Doc/docbook/bsp__flash_8c_a45549058e1315d29263c0b26816bcffb_cgraph.png b/Doc/docbook/bsp__flash_8c_a45549058e1315d29263c0b26816bcffb_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..1391a6b279e1b01e8a91e237f75bb14d447c8300 GIT binary patch literal 1202 zcmV;j1Wo&iP)^#kQHhTaO5fKp)5fKp)tux6!v9-1Jo`{_7A{kn5s`_AOXXmf3^9T_|(WS0) zpn6>Izm04o5jiU&d+nt~19BO_FI^`Qf^%Xm9DDyAD}XDL$)xdYXgKEcdDkh_7DW*@ zH#fUZg95~H?0kOIavnrPCk6{35e*g#AQ24~3m_2%J6dwbiWtJ3jYn#dvj z+KS>@j6-N2O^!+1|Gw)$M4+mz#&c;RhxBVJifb_rO^&5W0qlZnLbfqcPjVsXYE1fM zy02Hpf=AcS%hRrNvF0igZ4}}*3%#}87C@pPg0B{e&FO*u0pQjW*!$_c{MmI{)D6=D zxY~wgR~+f>S^C;)b&~gcR{2!PDSgdiI~x+;G6&0?((U@Xs#IVkhYvmg@Qnz*o$l*H z1$JL=;P&pP^2{>cYKxd%C8f8H>1(SMTi)+ku(Co?{@rAso z6(Do3EbqRU?`O*`Y?U~^++F>q<>eb1zo=~;W(Bb9q{y}lolLIc6q}n;C@0u0g$!ybOQZ=Whe(yiyQ&@g-?d$2q>lf>FRF5j& zDQGf2nrb5ve6|#P{?^<0XL;sJ{Qc@pOccmD_^gnF7H;=K`(4RfCFPyk7G1OAJ2h@% zOp3H}2vVk4)$QNaZQK22=NhpbGos@uP--zwWvYeg}d9ut?w3t-WN z>1y()pKl{}nOxdb^t#P+T)e{Q;M#Xdl63lQFjo(B4#oSPCJO;XfrTpWi5_l&Pe0y$ z`R*jDz4`-+CwE(uKV+3?8M{m_O*1_NS;^ja@@@C5PJy$lKwsQ!%xpW0qF5zHTgA{K zr@Ym6YwA`k$-FCB*&kz-;+@qHivE1Yi&$`xa{P79##J`?>P z$Hc~u7v$%zbMVP4W-M~e;MZXh(O|Iv6479>020w)u>ca$V6gxa(O~7C0H{491$81*NAIm(QdQ20p6m1bkBEqfh=_=Yh={`c3#r5bMCADC QAOHXW07*qoM6N<$f~S`~PXGV_ literal 0 HcmV?d00001 diff --git a/Doc/docbook/bsp__flash_8c_a734a679e19a8af2c7ddfa86f4310a13d_icgraph.md5 b/Doc/docbook/bsp__flash_8c_a734a679e19a8af2c7ddfa86f4310a13d_icgraph.md5 new file mode 100644 index 0000000..73544d2 --- /dev/null +++ b/Doc/docbook/bsp__flash_8c_a734a679e19a8af2c7ddfa86f4310a13d_icgraph.md5 @@ -0,0 +1 @@ +b0ff8295d0b038b5ca8bf7e04a6b7c30 \ No newline at end of file diff --git a/Doc/docbook/bsp__flash_8c_a734a679e19a8af2c7ddfa86f4310a13d_icgraph.png b/Doc/docbook/bsp__flash_8c_a734a679e19a8af2c7ddfa86f4310a13d_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..fc84faed7ddbe8de70851a8a874a791037770efe GIT binary patch literal 1212 zcmV;t1Vj6YP)>x&o&4t z3Wx%M+*42z#||h6#R^ioNKWXGP*R{1N|{9Bn$Q@kC@CQ19!0Wf8Sl>S&c5CC-hRK% zw{!E}jc=Z2c6?`mh=_=Yh=_=Yh*p`n4@@SLlOnR&Ml!V8RQ1m8?(UXGvRerP+15S$Y$;n4fZ*SM04fRJ9MQx{0*=RJv z`ucj?X;6Uqe4hIFpy51-h>i>vKqBfb7C<8EEfzo`>aEN}kTOIBs%p_y;dp84$RYXK z^5R;ILuem$j!DzM-&GJrQKJWmS%*w@ zpr=e%fbllWU2!D0XUS{v>LlxVR{504DS6FeI~x+;G6&0?lI=Ras(cQ?2>>5J5j}bv z2jhMH4vK46-jiP~1I1fJca@afIwr5hE4HlXS>;nEr{pz@?QBSV%N&x-3ZQ$hEbG3Q z?`O-2RVI!v_q2YKvhod$pVzjEDmmpn-X#LWuizK}D6j$GBMk8IWM6+*!S|~8_M0i+1aXUq)dVWKTFK(OX2o|hTlbih&8e>E#q^a8EH^*AFg|8@))# z+h*-$lT#x2YzcgUcR#`7rw{R}9ALQot5O1P5wV)wz7S5}yKz7M;%pLPSyQ01hY*jS*9(Rd|Kq=*QELX>i zjIR^->#r%Vz`wkw;wCOOf$yqI;>8{eo$d;1t%JjBQE zzbNhA){`Snh-H#%vR&Dv>^s@%;&pkEb$LN-LhDL2aUw5*iH&rE155)LA6&q%OJA!m zmNwKYS3XzMzT>JYPUJ;Qa#FHonp2r|=^CeZ@NwczC)H#^*4;Uq&T}1G@-9C;cKTvq zirHpdQ$KlQ)U_^EVoJ7a`^8fo|NnnZ37$Wk!v6Ax`cw(7^&Z3K%A6dy94k&Ry1UE& z;?dkWo6d6`TkAnqsyY*VIqm7**CKZ*8m2ugJV~zg4+f*Cb~NKKX$+{har@ z?xdmXUsu{G@;co|k?|&BU8=;Ccf6%~Cm*W^5MY1^uO9t|`%4?@76PpO`3JsQpO>R5 z10+Alrl0d(*L}yW>)(`w@?NL=C^BBt>tg$!l<7BboTBGd;Vi-1)V|A{mp(^VcQ+lc zGL~t4m+f?IZDZAyuabRL{jQ;7$^8_iFm>{DriT2q{-chm7IW0}Tx*-qEiMXa`c=t@1wzRJwMiLz1cU$Ula=50w1uKpZ7YiCOx z>r$j2+qt<|6E*kxQ%i%DwfvU#Q4t=@Ya@b-$BpqgfHy_(*3k>^{`K?UKj4==;F5!i zefmS*mYTS$#FVuw#pk+Y&96u-w(Cxw?>jdO#Z@cS0tIA96b;Ky&efa%q z_{_Z1PD@(cR5OV1Q&ts{+|qseC|$XTsg8^2 zBoM)YiZBJieF1JkPJhWd91gGA^{X#8PMSFCsUZcwBH7lLVQaJTCa=cs%y{Jov>;H6#Du!5^vPzX#b56f(C- z4u`|_e!o9x;&H)kDc6uam+x^HhEPf^jK||*&x0rGIspz9a9b2U>K)> zJ}%l5nc%bTkk0cRKi9>LXbOA1eGI2s_^5)aJ3PoAAG?FRCituxFP+78apQw$<#zz9 zzT?PZ`tUP}w_DTiU+bPlLqtTyFu@ZMbrcgk5m84m!4na66caoVQAZhf(QIvPH5ms{ zD{OCXJ9`ivQQgiYc%{@G01F;sp>rSzg1f$BuoVQsdr=gv`;LQ1=OlL%5fKp)5fKp) d5fM=X{sr6Q&iq|4xDfyV002ovPDHLkV1k2GvOWL+ literal 0 HcmV?d00001 diff --git a/Doc/docbook/bsp__flash_8c_af1304997d797af3400074bdb68e5de1c_icgraph.md5 b/Doc/docbook/bsp__flash_8c_af1304997d797af3400074bdb68e5de1c_icgraph.md5 new file mode 100644 index 0000000..760508d --- /dev/null +++ b/Doc/docbook/bsp__flash_8c_af1304997d797af3400074bdb68e5de1c_icgraph.md5 @@ -0,0 +1 @@ +54426b90b818acb7f5333a62b45c8205 \ No newline at end of file diff --git a/Doc/docbook/bsp__flash_8c_af1304997d797af3400074bdb68e5de1c_icgraph.png b/Doc/docbook/bsp__flash_8c_af1304997d797af3400074bdb68e5de1c_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..60d40cbdda29bf5742da2971839537c1e120544a GIT binary patch literal 1407 zcmV-_1%UdAP)>&z){+2neBVj>1+wd1(u>BHq+vRD>!7@u0Sup9ecKoxJ(?-kW*5v)|8U zGymTEy|>xlPJS~PfQX2Qh=_=Yh=_=Y+93HATU%RCipaST!BGE2QFIu`@vYEt*cc9n zFD6NHCUhJ`CaQXKXJ_Z9?7GGLP9kznM6Pxh7R{3+Ne%$K7CH_aNs_!JB5R@JAS$p9 z;97RYi3FdDE9%6%g0=_6`PAL-{U?R4u_rHuu#;Oul05M zH%Z&_F&A~($j9Mp{;S3}jl3lI(9-17Bnf5rYnr^KInnw2GV80sSYJp4k1afkFD^eX zcSFb1rZgcoNv_%bnkMDY$<7q7&o5b@Ux;0pxe`s9$m?KYBa>s`833Oh-@$JiV~saI z*O#`pb>=<`d1)fAW15qat)ekCnU}ut`b#Y$#^jr>&u>eYi;nXhTb2lF=zGJKNS{1WR zzfI>QzumUqvNl}DS7%(=IDGYM;;lrJJzFmNxoWxXGj3D+rqWKG<$N1;`kRJ%afzvF z{ftQm@X-C&(<*o~0^Zpg>(46qR293QtjhPU9c9lfi+-+JZu^Ye)V`^-Q)fBfMxFk; zo)_Eqq)EF~{nS0qg|`H6Q~PdmT>cnS-MwhNOJ7C(``pj8uWhWRGwWhW-G>J|gVl;B~8ZZED|5j>{ios=F7hcj>FBf1mrA_Vp2~Z5yVu z>ug(1#@|KRsP&7i`I`BxBnMw5h_X9d+L)I*?bwdZ$DHWdH=f;GyL_#B&-Q47r&Lcq zXfJ0G02Fvy1n(!n2hsWM-~amM7VbrVVlnyKIgb2?d{%1Wz7kW}T`3{wrEGk4VsR}U z`P9i>G%k0ngwn>Xg=M9kuI8mGrZQcX(&kAUf0nn+M~qEMJ6+Ft%E~al6OgZa+kLm`s?LQ}-!aPVOW*E{Mi;y`+R(;WH$`x%VrcgOEDG==6#J22 zPrls#@Zsg>oOwu!B*4C6al`ntE>N1H|CbBWRQSetFG{bqT+$ePO6e9KA^ z+3g_{o~f3fvW+W0wtSl*N>@H&YU4|E8Yu9O0H;Lp|3%g-nTxE0!N98BqH;r3DI&W) zgQgTdf}h+OUB7pjj*f{NXLT=2nY zGz$7W_>Hk{MiF9FEC9HR|L&x@1I1n<*x!9czA+s)7!0m2FE6ik@wnhwDc6uapYQQx zGJ&eDk4B>hu5Zo!KX(w>P{jfif2d*?f|t+S#^YC3<=vv>PUI@YKU+=ZqYBDu!}EN` z&w24<0r)NfUR^jndygt`y~BgT32}E&&;(yrGsHd3ViHLfN37&|kr)%5Y=)b!K>;` z0P6u_p*avm(P8KqY(-J@agrq0L&rg6azA$y5fKp)5fKp)5fM=b{srMvkXWCib@l)N N002ovPDHLkV1lK|!|VV6 literal 0 HcmV?d00001 diff --git a/Doc/docbook/bsp__flash_8c_source.xml b/Doc/docbook/bsp__flash_8c_source.xml new file mode 100644 index 0000000..a493c15 --- /dev/null +++ b/Doc/docbook/bsp__flash_8c_source.xml @@ -0,0 +1,63 @@ + +
+bsp_flash.c +D:/gitt/MicrochipFor32/bsp_Device/bsp_flash.c +浏览该文件的文档.00001 /*---------------------------------------------------------------------------------------------------- +00002 # +00003 # Copyright (c) 2022 Yuankang Liang(XerolySkinner) +00004 # +00005 # 本软件按原样提供,无任何明示或暗示 +00006 # 在任何情况下,作者都不承担任何损害赔偿责任 +00007 # +00008 # 使用的许可声明: +00009 # 1. 不得歪曲本软件的来源,你不能声称你编写了原始软件. +00010 # 2. 免费授予以任何目的,前提是版权声明出现在所有副本中. +00011 # 并且版权声明和许可声明同时出现. +00012 # 3. 你有使用,复制,修改,分发,和销售本软件的许可. +00013 # 4. 如果你在产品中使用,产品文档中的声明是赞赏的但不是必须的. +00014 # 5. 本通知不得从任何来源删除或更改. +00015 # +00016 # Yuankang Liang(XerolySkinner) +00017 # E-mail:zabbcccbbaz@163.com +00018 # QQ:2715099320 +00019 # Mobile Phone:13005636215 +00020 # +00021 # All rights reserved. +00022 */ +00023 +00035 #include "main.h" +00036 uint32_t FlashAddr = 0x08010000; +00037 //---------------------------------------------------------------------------------------------------- +00038 #pragma pack(4) +00043 struct struct_bsp_Flash_Pack{ +00044 char Var0; +00045 short Var1; +00046 int Var2; +00047 }bsp_Flash_Pack={0,0,0}; +00048 #pragma pack() +00049 //---------------------------------------------------------------------------------------------------- +00056 uint32_t bsp_WriteFlashOnePage(uint32_t *dat,uint32_t num){ +00057 FLASH_EraseInitTypeDef f; +00058 uint32_t PageError = 0; //错误号7 +00059 HAL_FLASH_Unlock(); //解锁FLASH +00060 f.TypeErase = FLASH_TYPEERASE_PAGES; //Flash擦除 +00061 f.PageAddress = FlashAddr; //擦除地址(起始页) +00062 f.NbPages = 1; //擦除1页 +00063 HAL_FLASHEx_Erase(&f,&PageError); //调用擦除函数 +00064 for(int i=0;i<num;i++) +00065 HAL_FLASH_Program(TYPEPROGRAM_WORD,FlashAddr+i*4,dat[i]); //对FLASH烧写 +00066 HAL_FLASH_Lock(); //锁住FLASH +00067 return PageError;} +00068 //---------------------------------------------------------------------------------------------------- +00075 void bsp_ReadFlash(uint32_t *dat,uint32_t num){ //读入一串数据 +00076 for(int i=0;i<num;i++) +00077 dat[i]=*(__IO uint32_t*)(FlashAddr+i*4);} +00078 //---------------------------------------------------------------------------------------------------- +00083 void bsp_WriteFlash_Pack(void){ +00084 bsp_WriteFlashOnePage((uint32_t*)(&bsp_Flash_Pack),sizeof(struct struct_bsp_Flash_Pack)); +00085 return;} +00086 //---------------------------------------------------------------------------------------------------- +00091 void bsp_ReadFlash_Pack(void){ +00092 bsp_ReadFlash((uint32_t*)(&bsp_Flash_Pack),sizeof(struct struct_bsp_Flash_Pack)); +00093 return;} +
diff --git a/Doc/docbook/bsp__flash_8h.xml b/Doc/docbook/bsp__flash_8h.xml new file mode 100644 index 0000000..31c25fd --- /dev/null +++ b/Doc/docbook/bsp__flash_8h.xml @@ -0,0 +1,204 @@ + +
+D:/gitt/MicrochipFor32/bsp_Device/bsp_flash.h 文件参考 +D:/gitt/MicrochipFor32/bsp_Device/bsp_flash.h + + +写STM32的Flash库 + + +#include "main.h"bsp_flash.h 的引用(Include)关系图: + + + + + + + + + + 函数 + + uint32_t bsp_WriteFlashOnePage (uint32_t *dat, uint32_t num) + +写入一页Flash空间 + + void bsp_ReadFlash (uint32_t *dat, uint32_t num) + +读取一页Flash空间 + + void bsp_WriteFlash_Pack (void) + +将一包数据存入Flash + + void bsp_ReadFlash_Pack (void) + +从Flash读取一包数据 + + + +
+详细描述 + +写STM32的Flash库 + +在文件 bsp_flash.h 中定义. +
+
+函数说明 +
+ bsp_ReadFlash() +bsp_ReadFlashbsp_flash.h +bsp_flash.hbsp_ReadFlash +void bsp_ReadFlash (uint32_t * dat, uint32_t num) + +读取一页Flash空间 + + + + + +参数 + + + + + + + +*dat +读取数据的缓冲区 + + + +num +读取数量 + + + + +
+
+
+ 返回 + +无返回 + +
+ +在文件 bsp_flash.c 第 75 行定义. +这是这个函数的调用关系图: + + + + + + + + +
+
+ bsp_ReadFlash_Pack() +bsp_ReadFlash_Packbsp_flash.h +bsp_flash.hbsp_ReadFlash_Pack +void bsp_ReadFlash_Pack (void ) + +从Flash读取一包数据 + + +返回 + +无返回 + + + +在文件 bsp_flash.c 第 91 行定义. +函数调用图: + + + + + + + + +
+
+ bsp_WriteFlash_Pack() +bsp_WriteFlash_Packbsp_flash.h +bsp_flash.hbsp_WriteFlash_Pack +void bsp_WriteFlash_Pack (void ) + +将一包数据存入Flash + + +返回 + +无返回 + + + +在文件 bsp_flash.c 第 83 行定义. +函数调用图: + + + + + + + + +
+
+ bsp_WriteFlashOnePage() +bsp_WriteFlashOnePagebsp_flash.h +bsp_flash.hbsp_WriteFlashOnePage +uint32_t bsp_WriteFlashOnePage (uint32_t * dat, uint32_t num) + +写入一页Flash空间 + + + + + +参数 + + + + + + + +*dat +要写入的数据 + + + +num +要写入的数量 + + + + +
+
+
+ 返回 + +返回0则成功 + +
+ +在文件 bsp_flash.c 第 56 行定义. +这是这个函数的调用关系图: + + + + + + + + +
+
+
diff --git a/Doc/docbook/bsp__flash_8h__incl.md5 b/Doc/docbook/bsp__flash_8h__incl.md5 new file mode 100644 index 0000000..b8c0bdc --- /dev/null +++ b/Doc/docbook/bsp__flash_8h__incl.md5 @@ -0,0 +1 @@ +f0a077ada558d3a1a1bb4c3258509cbb \ No newline at end of file diff --git a/Doc/docbook/bsp__flash_8h__incl.png b/Doc/docbook/bsp__flash_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..fccb925ab6784d7bcf3d2d88861fb3e2047d23e1 GIT binary patch literal 1735 zcmchYeN@s17spwaB$ilh%dm8_S29Ig@|bU1YExEff$6{;%Q8{=5wtWgluA*tNM{q__@{);X%N!Dzg(yirbk6gf^Zc`aci%qe+me`*2n1S>3J*nF$+ISXt*x~>_j~nNVViIyEEKfz-YX@wx2z31D)dk^we01Dq~K|& zlkHqm*?kA}l`r5MzqVt!u`V7S-myM$xDYZAmSwzIUc=qPHH0LGdlo`}cC=fIhB$sQ zT=7d(>&7k*SMes+HOI?T0x2rUpr~m6?XyhDKw}T@<+gTzQ+=Rlx8IdKtA!&=@J(%P zR2)3@;FsQ^G*r>DSR`8bE=_qdb9?n@V)f_*IdQ{BM@HU!aK$9(tqJz0Om#5j_HKIx z5((R4v2dTGvT=E^Qv}r3oZFpNly%s9Z+3Tg$MnkO^7_fR7G6K{uz{O?J}sl%a^Se= zb2aX022^2UVB?g?CvxWWPND2g?%b9u^cN)(BwSTPKLNx=7jW78I8)KsxOo4L$kq11 zH%i3gvxF%X38_iFRxv5nBZMS>pj_Ikh2Q@;ZwuksyxZ<(8+$L|pOyAk*WlIxw=Ne- zb8R<8bjzfkF{N}7vP(RI$!+xp#sZ_%Up!}csyMR}Tu)#zI7S3y5 zFEc5zdSX<>Dm)G+ZYUNzUrtHjNR`d~Dfq3C5%i|!X3DuBAgNn8tp5ldFhrs~U-Dz4 zS5kKgL0PzL%Y~CkIp9#ygB+w>pwkJA;(-?tfO+HVEsXl08!uaj~%PwadgN${2o#0Dxw*IlC9`Z6y_W;fi!^Fxa2 z?B*Ko)<$j%VsLm&5n*q6BR4%lO9Afpj6ULvR5}hnO#W#NTFzD8=1g7XR*EtD;JaT5 z!o1WsdCqAZlSqkZD7cy-8Ruv=CwRNM34OYaL!_BZcpbJQq+-t{sH#GjAei(NIoIJ! zmj`k^2>}6Q%P}NILnr_EZpJUMImNcL|6ROFh{eZBCp@20xWiheBD*(QBEAHztLgVS z_;RT%-ARl;IuHCPl^ss~(2f?WA06%VtjHIC8}qjMHD(j*9E*A*4*7d&*Y?5A`h_F4 z!Ep=tLua?VeeUZ34gard-vj=@QLR?nW5GkkSy?uJ%y$gxbvj{8-@fok>9sSL?5RQd z@sRJ!p{_*B!_ygoY1=Y7y**fu28(>x{Zqg&&K5uQ$ozNv2+Z*HIrF5Qrq6t$MV)>; zuzNcX?AMi4q6XpM%a3Kq-v-TUEw}+$-fktZ&VpI(Q}U<`DW`rUHAHuRc)z@7cQFNnfcf#S7UldpH{1_-hui(`Ix`(Wt>bX+JO z4>qhghPaP$F||!iO^)>T+PiFuez{BYb{qRkg-QjHP8Rys06o9nLL_ho`U#UuGmCcg iSQM#_8{S)@1$vsuzs;g89k6~T5bAJbXhZO~*Zu>elX9v6 literal 0 HcmV?d00001 diff --git a/Doc/docbook/bsp__flash_8h_a45549058e1315d29263c0b26816bcffb_cgraph.md5 b/Doc/docbook/bsp__flash_8h_a45549058e1315d29263c0b26816bcffb_cgraph.md5 new file mode 100644 index 0000000..ed40454 --- /dev/null +++ b/Doc/docbook/bsp__flash_8h_a45549058e1315d29263c0b26816bcffb_cgraph.md5 @@ -0,0 +1 @@ +ab5ff94308626c322cbbe1936391c29b \ No newline at end of file diff --git a/Doc/docbook/bsp__flash_8h_a45549058e1315d29263c0b26816bcffb_cgraph.png b/Doc/docbook/bsp__flash_8h_a45549058e1315d29263c0b26816bcffb_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..1391a6b279e1b01e8a91e237f75bb14d447c8300 GIT binary patch literal 1202 zcmV;j1Wo&iP)^#kQHhTaO5fKp)5fKp)tux6!v9-1Jo`{_7A{kn5s`_AOXXmf3^9T_|(WS0) zpn6>Izm04o5jiU&d+nt~19BO_FI^`Qf^%Xm9DDyAD}XDL$)xdYXgKEcdDkh_7DW*@ zH#fUZg95~H?0kOIavnrPCk6{35e*g#AQ24~3m_2%J6dwbiWtJ3jYn#dvj z+KS>@j6-N2O^!+1|Gw)$M4+mz#&c;RhxBVJifb_rO^&5W0qlZnLbfqcPjVsXYE1fM zy02Hpf=AcS%hRrNvF0igZ4}}*3%#}87C@pPg0B{e&FO*u0pQjW*!$_c{MmI{)D6=D zxY~wgR~+f>S^C;)b&~gcR{2!PDSgdiI~x+;G6&0?((U@Xs#IVkhYvmg@Qnz*o$l*H z1$JL=;P&pP^2{>cYKxd%C8f8H>1(SMTi)+ku(Co?{@rAso z6(Do3EbqRU?`O*`Y?U~^++F>q<>eb1zo=~;W(Bb9q{y}lolLIc6q}n;C@0u0g$!ybOQZ=Whe(yiyQ&@g-?d$2q>lf>FRF5j& zDQGf2nrb5ve6|#P{?^<0XL;sJ{Qc@pOccmD_^gnF7H;=K`(4RfCFPyk7G1OAJ2h@% zOp3H}2vVk4)$QNaZQK22=NhpbGos@uP--zwWvYeg}d9ut?w3t-WN z>1y()pKl{}nOxdb^t#P+T)e{Q;M#Xdl63lQFjo(B4#oSPCJO;XfrTpWi5_l&Pe0y$ z`R*jDz4`-+CwE(uKV+3?8M{m_O*1_NS;^ja@@@C5PJy$lKwsQ!%xpW0qF5zHTgA{K zr@Ym6YwA`k$-FCB*&kz-;+@qHivE1Yi&$`xa{P79##J`?>P z$Hc~u7v$%zbMVP4W-M~e;MZXh(O|Iv6479>020w)u>ca$V6gxa(O~7C0H{491$81*NAIm(QdQ20p6m1bkBEqfh=_=Yh={`c3#r5bMCADC QAOHXW07*qoM6N<$f~S`~PXGV_ literal 0 HcmV?d00001 diff --git a/Doc/docbook/bsp__flash_8h_a734a679e19a8af2c7ddfa86f4310a13d_icgraph.md5 b/Doc/docbook/bsp__flash_8h_a734a679e19a8af2c7ddfa86f4310a13d_icgraph.md5 new file mode 100644 index 0000000..73544d2 --- /dev/null +++ b/Doc/docbook/bsp__flash_8h_a734a679e19a8af2c7ddfa86f4310a13d_icgraph.md5 @@ -0,0 +1 @@ +b0ff8295d0b038b5ca8bf7e04a6b7c30 \ No newline at end of file diff --git a/Doc/docbook/bsp__flash_8h_a734a679e19a8af2c7ddfa86f4310a13d_icgraph.png b/Doc/docbook/bsp__flash_8h_a734a679e19a8af2c7ddfa86f4310a13d_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..fc84faed7ddbe8de70851a8a874a791037770efe GIT binary patch literal 1212 zcmV;t1Vj6YP)>x&o&4t z3Wx%M+*42z#||h6#R^ioNKWXGP*R{1N|{9Bn$Q@kC@CQ19!0Wf8Sl>S&c5CC-hRK% zw{!E}jc=Z2c6?`mh=_=Yh=_=Yh*p`n4@@SLlOnR&Ml!V8RQ1m8?(UXGvRerP+15S$Y$;n4fZ*SM04fRJ9MQx{0*=RJv z`ucj?X;6Uqe4hIFpy51-h>i>vKqBfb7C<8EEfzo`>aEN}kTOIBs%p_y;dp84$RYXK z^5R;ILuem$j!DzM-&GJrQKJWmS%*w@ zpr=e%fbllWU2!D0XUS{v>LlxVR{504DS6FeI~x+;G6&0?lI=Ras(cQ?2>>5J5j}bv z2jhMH4vK46-jiP~1I1fJca@afIwr5hE4HlXS>;nEr{pz@?QBSV%N&x-3ZQ$hEbG3Q z?`O-2RVI!v_q2YKvhod$pVzjEDmmpn-X#LWuizK}D6j$GBMk8IWM6+*!S|~8_M0i+1aXUq)dVWKTFK(OX2o|hTlbih&8e>E#q^a8EH^*AFg|8@))# z+h*-$lT#x2YzcgUcR#`7rw{R}9ALQot5O1P5wV)wz7S5}yKz7M;%pLPSyQ01hY*jS*9(Rd|Kq=*QELX>i zjIR^->#r%Vz`wkw;wCOOf$yqI;>8{eo$d;1t%JjBQE zzbNhA){`Snh-H#%vR&Dv>^s@%;&pkEb$LN-LhDL2aUw5*iH&rE155)LA6&q%OJA!m zmNwKYS3XzMzT>JYPUJ;Qa#FHonp2r|=^CeZ@NwczC)H#^*4;Uq&T}1G@-9C;cKTvq zirHpdQ$KlQ)U_^EVoJ7a`^8fo|NnnZ37$Wk!v6Ax`cw(7^&Z3K%A6dy94k&Ry1UE& z;?dkWo6d6`TkAnqsyY*VIqm7**CKZ*8m2ugJV~zg4+f*Cb~NKKX$+{har@ z?xdmXUsu{G@;co|k?|&BU8=;Ccf6%~Cm*W^5MY1^uO9t|`%4?@76PpO`3JsQpO>R5 z10+Alrl0d(*L}yW>)(`w@?NL=C^BBt>tg$!l<7BboTBGd;Vi-1)V|A{mp(^VcQ+lc zGL~t4m+f?IZDZAyuabRL{jQ;7$^8_iFm>{DriT2q{-chm7IW0}Tx*-qEiMXa`c=t@1wzRJwMiLz1cU$Ula=50w1uKpZ7YiCOx z>r$j2+qt<|6E*kxQ%i%DwfvU#Q4t=@Ya@b-$BpqgfHy_(*3k>^{`K?UKj4==;F5!i zefmS*mYTS$#FVuw#pk+Y&96u-w(Cxw?>jdO#Z@cS0tIA96b;Ky&efa%q z_{_Z1PD@(cR5OV1Q&ts{+|qseC|$XTsg8^2 zBoM)YiZBJieF1JkPJhWd91gGA^{X#8PMSFCsUZcwBH7lLVQaJTCa=cs%y{Jov>;H6#Du!5^vPzX#b56f(C- z4u`|_e!o9x;&H)kDc6uam+x^HhEPf^jK||*&x0rGIspz9a9b2U>K)> zJ}%l5nc%bTkk0cRKi9>LXbOA1eGI2s_^5)aJ3PoAAG?FRCituxFP+78apQw$<#zz9 zzT?PZ`tUP}w_DTiU+bPlLqtTyFu@ZMbrcgk5m84m!4na66caoVQAZhf(QIvPH5ms{ zD{OCXJ9`ivQQgiYc%{@G01F;sp>rSzg1f$BuoVQsdr=gv`;LQ1=OlL%5fKp)5fKp) d5fM=X{sr6Q&iq|4xDfyV002ovPDHLkV1k2GvOWL+ literal 0 HcmV?d00001 diff --git a/Doc/docbook/bsp__flash_8h_af1304997d797af3400074bdb68e5de1c_icgraph.md5 b/Doc/docbook/bsp__flash_8h_af1304997d797af3400074bdb68e5de1c_icgraph.md5 new file mode 100644 index 0000000..760508d --- /dev/null +++ b/Doc/docbook/bsp__flash_8h_af1304997d797af3400074bdb68e5de1c_icgraph.md5 @@ -0,0 +1 @@ +54426b90b818acb7f5333a62b45c8205 \ No newline at end of file diff --git a/Doc/docbook/bsp__flash_8h_af1304997d797af3400074bdb68e5de1c_icgraph.png b/Doc/docbook/bsp__flash_8h_af1304997d797af3400074bdb68e5de1c_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..60d40cbdda29bf5742da2971839537c1e120544a GIT binary patch literal 1407 zcmV-_1%UdAP)>&z){+2neBVj>1+wd1(u>BHq+vRD>!7@u0Sup9ecKoxJ(?-kW*5v)|8U zGymTEy|>xlPJS~PfQX2Qh=_=Yh=_=Y+93HATU%RCipaST!BGE2QFIu`@vYEt*cc9n zFD6NHCUhJ`CaQXKXJ_Z9?7GGLP9kznM6Pxh7R{3+Ne%$K7CH_aNs_!JB5R@JAS$p9 z;97RYi3FdDE9%6%g0=_6`PAL-{U?R4u_rHuu#;Oul05M zH%Z&_F&A~($j9Mp{;S3}jl3lI(9-17Bnf5rYnr^KInnw2GV80sSYJp4k1afkFD^eX zcSFb1rZgcoNv_%bnkMDY$<7q7&o5b@Ux;0pxe`s9$m?KYBa>s`833Oh-@$JiV~saI z*O#`pb>=<`d1)fAW15qat)ekCnU}ut`b#Y$#^jr>&u>eYi;nXhTb2lF=zGJKNS{1WR zzfI>QzumUqvNl}DS7%(=IDGYM;;lrJJzFmNxoWxXGj3D+rqWKG<$N1;`kRJ%afzvF z{ftQm@X-C&(<*o~0^Zpg>(46qR293QtjhPU9c9lfi+-+JZu^Ye)V`^-Q)fBfMxFk; zo)_Eqq)EF~{nS0qg|`H6Q~PdmT>cnS-MwhNOJ7C(``pj8uWhWRGwWhW-G>J|gVl;B~8ZZED|5j>{ios=F7hcj>FBf1mrA_Vp2~Z5yVu z>ug(1#@|KRsP&7i`I`BxBnMw5h_X9d+L)I*?bwdZ$DHWdH=f;GyL_#B&-Q47r&Lcq zXfJ0G02Fvy1n(!n2hsWM-~amM7VbrVVlnyKIgb2?d{%1Wz7kW}T`3{wrEGk4VsR}U z`P9i>G%k0ngwn>Xg=M9kuI8mGrZQcX(&kAUf0nn+M~qEMJ6+Ft%E~al6OgZa+kLm`s?LQ}-!aPVOW*E{Mi;y`+R(;WH$`x%VrcgOEDG==6#J22 zPrls#@Zsg>oOwu!B*4C6al`ntE>N1H|CbBWRQSetFG{bqT+$ePO6e9KA^ z+3g_{o~f3fvW+W0wtSl*N>@H&YU4|E8Yu9O0H;Lp|3%g-nTxE0!N98BqH;r3DI&W) zgQgTdf}h+OUB7pjj*f{NXLT=2nY zGz$7W_>Hk{MiF9FEC9HR|L&x@1I1n<*x!9czA+s)7!0m2FE6ik@wnhwDc6uapYQQx zGJ&eDk4B>hu5Zo!KX(w>P{jfif2d*?f|t+S#^YC3<=vv>PUI@YKU+=ZqYBDu!}EN` z&w24<0r)NfUR^jndygt`y~BgT32}E&&;(yrGsHd3ViHLfN37&|kr)%5Y=)b!K>;` z0P6u_p*avm(P8KqY(-J@agrq0L&rg6azA$y5fKp)5fKp)5fM=b{srMvkXWCib@l)N N002ovPDHLkV1lK|!|VV6 literal 0 HcmV?d00001 diff --git a/Doc/docbook/bsp__flash_8h_source.xml b/Doc/docbook/bsp__flash_8h_source.xml new file mode 100644 index 0000000..8e2875d --- /dev/null +++ b/Doc/docbook/bsp__flash_8h_source.xml @@ -0,0 +1,39 @@ + +
+bsp_flash.h +D:/gitt/MicrochipFor32/bsp_Device/bsp_flash.h +浏览该文件的文档.00001 /*---------------------------------------------------------------------------------------------------- +00002 # +00003 # Copyright (c) 2022 Yuankang Liang(XerolySkinner) +00004 # +00005 # 本软件按原样提供,无任何明示或暗示 +00006 # 在任何情况下,作者都不承担任何损害赔偿责任 +00007 # +00008 # 使用的许可声明: +00009 # 1. 不得歪曲本软件的来源,你不能声称你编写了原始软件. +00010 # 2. 免费授予以任何目的,前提是版权声明出现在所有副本中. +00011 # 并且版权声明和许可声明同时出现. +00012 # 3. 你有使用,复制,修改,分发,和销售本软件的许可. +00013 # 4. 如果你在产品中使用,产品文档中的声明是赞赏的但不是必须的. +00014 # 5. 本通知不得从任何来源删除或更改. +00015 # +00016 # Yuankang Liang(XerolySkinner) +00017 # E-mail:zabbcccbbaz@163.com +00018 # QQ:2715099320 +00019 # Mobile Phone:13005636215 +00020 # +00021 # All rights reserved. +00022 */ +00023 +00034 #ifndef _XEROLYSKINNER_BSP_FLASH_H +00035 #define _XEROLYSKINNER_BSP_FLASH_H +00036 #include "main.h" +00038 //---------------------------------------------------------------------------------------------------- +00039 // 程序 +00040 // +00041 uint32_t bsp_WriteFlashOnePage(uint32_t *dat,uint32_t num); +00042 void bsp_ReadFlash(uint32_t *dat,uint32_t num); +00043 void bsp_WriteFlash_Pack(void); +00044 void bsp_ReadFlash_Pack(void); +00046 #endif +
diff --git a/Doc/docbook/classbsp___b_m_p.xml b/Doc/docbook/classbsp___b_m_p.xml new file mode 100644 index 0000000..af4b3c1 --- /dev/null +++ b/Doc/docbook/classbsp___b_m_p.xml @@ -0,0 +1,318 @@ + +
+bsp_BMP类 参考 +bsp_BMP + + +构建一个BMP类 + + + +#include <bsp_BMP.h> + +bsp_BMP 的协作图: + + + + + + + + + + Public 成员函数 + + bsp_BMP (u32 Width, u32 Height) + +构造BMP数据头 + + ~bsp_BMP (void) + + void pels (u32 x, u32 y) + +设置像素 + + u32 giveData (void) + +给予数据空间 + + void delData (void) + +释放数据空间 + + void ColorsSet (u8 R, u8 G, u8 B, u32 i) + +设置调色板 + + void sizeSet (u32 x, u32 y) + +设置图片大小 + + + + + Public 属性 + + _BITMAPINFO BITMAPINFO + +文件头 + + u32 Size + +文件大小 + + u8 * dat + +数据区 + + + +
+详细描述 + +构建一个BMP类 + +在文件 bsp_BMP.h 第 97 行定义. +
+
+构造及析构函数说明 +
+ bsp_BMP() +bsp_BMPbsp_BMP +bsp_BMPbsp_BMP +bsp_BMP::bsp_BMP (u32 Width, u32 Height) + +构造BMP数据头 + + + + + +参数 + + + + + + + +Width +图片宽度 + + + +Height +图片高度 + + + + +
+
+
+
+ +在文件 bsp_BMP.cpp 第 97 行定义. +
+
+ ~bsp_BMP() +~bsp_BMPbsp_BMP +bsp_BMP~bsp_BMP +bsp_BMP::~bsp_BMP (void ) +在文件 bsp_BMP.cpp 第 121 行定义. +
+
+
+成员函数说明 +
+ ColorsSet() +ColorsSetbsp_BMP +bsp_BMPColorsSet +void bsp_BMP::ColorsSet (u8 R, u8 G, u8 B, u32 i) + +设置调色板 + + + + + +参数 + + + + + + + +R +红色 + + + +G +绿色 + + + +B +蓝色 + + + +i +索引号 + + + + +
+
+
+
+ +在文件 bsp_BMP.cpp 第 68 行定义. +
+
+ delData() +delDatabsp_BMP +bsp_BMPdelData +void bsp_BMP::delData (void ) + +释放数据空间 + + +在文件 bsp_BMP.cpp 第 59 行定义. +
+
+ giveData() +giveDatabsp_BMP +bsp_BMPgiveData +u32 bsp_BMP::giveData (void ) + +给予数据空间 + + +返回 + +返回给与的数据头 + + + +在文件 bsp_BMP.cpp 第 52 行定义. +
+
+ pels() +pelsbsp_BMP +bsp_BMPpels +void bsp_BMP::pels (u32 x, u32 y) + +设置像素 + + + + + +参数 + + + + + + + +x +x像素 + + + +y +y像素 + + + + +
+
+
+
+ +在文件 bsp_BMP.cpp 第 45 行定义. +
+
+ sizeSet() +sizeSetbsp_BMP +bsp_BMPsizeSet +void bsp_BMP::sizeSet (u32 x, u32 y) + +设置图片大小 + + + + + +参数 + + + + + + + +Width +图片宽度 + + + +Height +图片高度 + + + + +
+
+
+
+ +在文件 bsp_BMP.cpp 第 78 行定义. +
+
+
+类成员变量说明 +
+ BITMAPINFO +BITMAPINFObsp_BMP +bsp_BMPBITMAPINFO +_BITMAPINFO bsp_BMP::BITMAPINFO + +文件头 + + +在文件 bsp_BMP.h 第 108 行定义. +
+
+ dat +datbsp_BMP +bsp_BMPdat +u8* bsp_BMP::dat + +数据区 + + +在文件 bsp_BMP.h 第 110 行定义. +
+
+ Size +Sizebsp_BMP +bsp_BMPSize +u32 bsp_BMP::Size + +文件大小 + + +在文件 bsp_BMP.h 第 109 行定义. +
+ +该类的文档由以下文件生成: +D:/gitt/MicrochipFor32/bsp_Device/bsp_BMP.hD:/gitt/MicrochipFor32/bsp_Device/bsp_BMP.cpp
+
diff --git a/Doc/docbook/classbsp___b_m_p__coll__graph.md5 b/Doc/docbook/classbsp___b_m_p__coll__graph.md5 new file mode 100644 index 0000000..e29cc2a --- /dev/null +++ b/Doc/docbook/classbsp___b_m_p__coll__graph.md5 @@ -0,0 +1 @@ +803dda831830d00e8c7fcd4d37f8b7f3 \ No newline at end of file diff --git a/Doc/docbook/classbsp___b_m_p__coll__graph.png b/Doc/docbook/classbsp___b_m_p__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..461f5a7025895e641194d5b1bb899ffe9ded6a09 GIT binary patch literal 6438 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 literal 0 HcmV?d00001 diff --git a/Doc/docbook/classbsp___differential.xml b/Doc/docbook/classbsp___differential.xml new file mode 100644 index 0000000..7119f89 --- /dev/null +++ b/Doc/docbook/classbsp___differential.xml @@ -0,0 +1,106 @@ + +
+bsp_Differential类 参考 +bsp_Differential + + +一个微分对象 + + + +#include <bsp_Calculus.h> + + + Public 成员函数 + + bsp_Differential (float dt) + + float Differential (float var) + +对数据微分 + + + + + Public 属性 + + float dt + +时间参数 + + + +
+详细描述 + +一个微分对象 + +在文件 bsp_Calculus.h 第 43 行定义. +
+
+构造及析构函数说明 +
+ bsp_Differential() +bsp_Differentialbsp_Differential +bsp_Differentialbsp_Differential +bsp_Differential::bsp_Differential (float dt)[inline] +在文件 bsp_Calculus.h 第 45 行定义. +
+
+
+成员函数说明 +
+ Differential() +Differentialbsp_Differential +bsp_DifferentialDifferential +float bsp_Differential::Differential (float var) + +对数据微分 + + + + + +参数 + + + + + + + +var +此处填入浮点数据 + + + + +
+
+
+ 返回 + +此时的微分值 + +
+ +在文件 bsp_Calculus.cpp 第 46 行定义. +
+
+
+类成员变量说明 +
+ dt +dtbsp_Differential +bsp_Differentialdt +float bsp_Differential::dt + +时间参数 + + +在文件 bsp_Calculus.h 第 50 行定义. +
+ +该类的文档由以下文件生成: +D:/gitt/MicrochipFor32/bsp_Device/bsp_Calculus.hD:/gitt/MicrochipFor32/bsp_Device/bsp_Calculus.cpp
+
diff --git a/Doc/docbook/classbsp___i_i_c.xml b/Doc/docbook/classbsp___i_i_c.xml index f977a61..b4aae19 100644 --- a/Doc/docbook/classbsp___i_i_c.xml +++ b/Doc/docbook/classbsp___i_i_c.xml @@ -99,7 +99,7 @@ 时序中的延时 在此处短暂延时 -待办事项 +待办事项 需要为其实现才可使用软件IIC @@ -312,7 +312,7 @@ 当var为IIC_READ时返回管脚状态 -待办事项 +待办事项 需要为其实现才可使用软件IIC @@ -360,7 +360,7 @@ 当var为IIC_READ时返回管脚状态 -待办事项 +待办事项 需要为其实现才可使用软件IIC diff --git a/Doc/docbook/classbsp___i_i_c___s_t_m32.xml b/Doc/docbook/classbsp___i_i_c___s_t_m32.xml index 3f4b81d..8b0e74d 100644 --- a/Doc/docbook/classbsp___i_i_c___s_t_m32.xml +++ b/Doc/docbook/classbsp___i_i_c___s_t_m32.xml @@ -218,7 +218,7 @@ bsp_IIC_STM32 的协作图: 实现了 bsp_IIC. -在文件 bsp_IIC_STM32.cpp 第 89 行定义. +在文件 bsp_IIC_STM32.cpp 第 88 行定义.
diff --git a/Doc/docbook/classbsp___integral.xml b/Doc/docbook/classbsp___integral.xml new file mode 100644 index 0000000..1b0f651 --- /dev/null +++ b/Doc/docbook/classbsp___integral.xml @@ -0,0 +1,339 @@ + +
+bsp_Integral类 参考 +bsp_Integral + + +一个积分对象 + + + +#include <bsp_Calculus.h> + + + Public 成员函数 + + bsp_Integral (float dt) + + ~bsp_Integral (void) + + float Integral (float var) + +对数据积分 + + void Integral_set (float results) + +重设当前积分值 + + float Integral_list (float var) + +进行带有缓冲区的积分 + + u32 Integral_makelist (u32 len) + +赋予历史缓存长度 + + void Integral_dellist (void) + +删除并释放历史缓冲区 + + void Integral_clslist (void) + +清空历史缓存区 + + + + + Public 属性 + + float * result_list + +数据历史 + + u32 result_len + +历史缓冲区长度 + + float results + +积分缓存 + + float dt + +时间参数 + + + +
+详细描述 + +一个积分对象 + + + +注解 + +不应当混用Integral和Integral_list + +选定一种方式(带缓冲区或者不带)后,就不应该更改使用方式 + +虽然带缓冲区方式对算法时间影响不大,但是为了避免浪费空间,不建议使用过大的缓冲区 + + + +在文件 bsp_Calculus.h 第 59 行定义. +
+
+构造及析构函数说明 +
+ bsp_Integral() +bsp_Integralbsp_Integral +bsp_Integralbsp_Integral +bsp_Integral::bsp_Integral (float dt)[inline] +在文件 bsp_Calculus.h 第 61 行定义. +
+
+ ~bsp_Integral() +~bsp_Integralbsp_Integral +bsp_Integral~bsp_Integral +bsp_Integral::~bsp_Integral (void )[inline] +在文件 bsp_Calculus.h 第 65 行定义. +
+
+
+成员函数说明 +
+ Integral() +Integralbsp_Integral +bsp_IntegralIntegral +float bsp_Integral::Integral (float var) + +对数据积分 + + + + + +参数 + + + + + + + +var +此处填入浮点数据 + + + + +
+
+
+ 返回 + +从开始到现在的总积分值 + +
+ +在文件 bsp_Calculus.cpp 第 59 行定义. +
+
+ Integral_clslist() +Integral_clslistbsp_Integral +bsp_IntegralIntegral_clslist +void bsp_Integral::Integral_clslist (void ) + +清空历史缓存区 + + +在文件 bsp_Calculus.cpp 第 113 行定义. +这是这个函数的调用关系图: + + + + + + + + +
+
+ Integral_dellist() +Integral_dellistbsp_Integral +bsp_IntegralIntegral_dellist +void bsp_Integral::Integral_dellist (void ) + +删除并释放历史缓冲区 + + +在文件 bsp_Calculus.cpp 第 105 行定义. +
+
+ Integral_list() +Integral_listbsp_Integral +bsp_IntegralIntegral_list +float bsp_Integral::Integral_list (float var) + +进行带有缓冲区的积分 + + + + + +参数 + + + + + + + +var +需要积分的数值 + + + + +
+
+
+ 返回 + +返回积分值 + +
+ +在文件 bsp_Calculus.cpp 第 86 行定义. +
+
+ Integral_makelist() +Integral_makelistbsp_Integral +bsp_IntegralIntegral_makelist +u32 bsp_Integral::Integral_makelist (u32 len) + +赋予历史缓存长度 + + + + + +参数 + + + + + + + +var +分配的缓存长度 + + + + +
+
+
+ 返回 + +返回分配的内存位置,0为分配失败 + +
+ +在文件 bsp_Calculus.cpp 第 75 行定义. +函数调用图: + + + + + + + + +
+
+ Integral_set() +Integral_setbsp_Integral +bsp_IntegralIntegral_set +void bsp_Integral::Integral_set (float results) + +重设当前积分值 + + + + + +参数 + + + + + + + +var +要设置的积分值 + + + + +
+
+
+
+ +在文件 bsp_Calculus.cpp 第 67 行定义. +
+
+
+类成员变量说明 +
+ dt +dtbsp_Integral +bsp_Integraldt +float bsp_Integral::dt + +时间参数 + + +在文件 bsp_Calculus.h 第 80 行定义. +
+
+ result_len +result_lenbsp_Integral +bsp_Integralresult_len +u32 bsp_Integral::result_len + +历史缓冲区长度 + + +在文件 bsp_Calculus.h 第 78 行定义. +
+
+ result_list +result_listbsp_Integral +bsp_Integralresult_list +float* bsp_Integral::result_list + +数据历史 + + +在文件 bsp_Calculus.h 第 77 行定义. +
+
+ results +resultsbsp_Integral +bsp_Integralresults +float bsp_Integral::results + +积分缓存 + + +在文件 bsp_Calculus.h 第 79 行定义. +
+ +该类的文档由以下文件生成: +D:/gitt/MicrochipFor32/bsp_Device/bsp_Calculus.hD:/gitt/MicrochipFor32/bsp_Device/bsp_Calculus.cpp
+
diff --git a/Doc/docbook/classbsp___integral_a86d9e02d1146744fe80ebab69070abb4_cgraph.md5 b/Doc/docbook/classbsp___integral_a86d9e02d1146744fe80ebab69070abb4_cgraph.md5 new file mode 100644 index 0000000..07b28a5 --- /dev/null +++ b/Doc/docbook/classbsp___integral_a86d9e02d1146744fe80ebab69070abb4_cgraph.md5 @@ -0,0 +1 @@ +bc431be81fe6f6dcd10d023829c673df \ No newline at end of file diff --git a/Doc/docbook/classbsp___integral_a86d9e02d1146744fe80ebab69070abb4_cgraph.png b/Doc/docbook/classbsp___integral_a86d9e02d1146744fe80ebab69070abb4_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..9f9080f95e0641c1c0f9be9ea57eba41c76c75ac GIT binary patch literal 1586 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文件 bsp_AT24C00.h 本类实现AT24C00的通讯 + + 文件 bsp_BMP.cpp + +用来构造BMP图片 + + 文件 bsp_BMP.h + +用来构造BMP图片 + + 文件 bsp_Calculus.cpp + +离散微积分 + + 文件 bsp_Calculus.h + +离散微积分 文件 bsp_CRC.cpp @@ -28,6 +44,14 @@ 文件 bsp_Digit.h 数码管显示类 + + 文件 bsp_flash.c + +写STM32的Flash库 + + 文件 bsp_flash.h + +写STM32的Flash库 文件 bsp_IIC.cpp @@ -90,8 +114,12 @@ 操作SD卡的库 文件 bsp_SD.h + +操作SD卡的库 文件 varint.h + +全局共用的标准类型表 diff --git a/Doc/docbook/index.xml b/Doc/docbook/index.xml index 1c36dd5..04f364f 100644 --- a/Doc/docbook/index.xml +++ b/Doc/docbook/index.xml @@ -13,12 +13,19 @@ 类说明 + + + + + + + @@ -34,6 +41,7 @@ + 文件说明 @@ -41,6 +49,14 @@ + + + + + + + + @@ -49,6 +65,10 @@ + + + + diff --git a/Doc/docbook/mpu6050_8cpp__incl.md5 b/Doc/docbook/mpu6050_8cpp__incl.md5 index eb4b1dc..55e1ff4 100644 --- a/Doc/docbook/mpu6050_8cpp__incl.md5 +++ b/Doc/docbook/mpu6050_8cpp__incl.md5 @@ -1 +1 @@ -5366a30f5bc78cfa1964e306ae9d9890 \ No newline at end of file +fb370354ae0c6dd3a952dd81266bbd0e \ No newline at end of file diff --git a/Doc/docbook/mpu6050_8h__incl.md5 b/Doc/docbook/mpu6050_8h__incl.md5 index dd8c98a..6c8d807 100644 --- a/Doc/docbook/mpu6050_8h__incl.md5 +++ b/Doc/docbook/mpu6050_8h__incl.md5 @@ -1 +1 @@ -4222ea514debe490f4cbb2f128d0e5b8 \ No newline at end of file +d0f145cf7ecf056a3d82c5d4954ea860 \ No newline at end of file diff --git a/Doc/docbook/struct___b_i_t_m_a_p_f_i_l_e_h_e_a_d_e_r.xml b/Doc/docbook/struct___b_i_t_m_a_p_f_i_l_e_h_e_a_d_e_r.xml new file mode 100644 index 0000000..6d45b8f --- /dev/null +++ b/Doc/docbook/struct___b_i_t_m_a_p_f_i_l_e_h_e_a_d_e_r.xml @@ -0,0 +1,75 @@ + +

+_BITMAPFILEHEADER结构体 参考 +_BITMAPFILEHEADER + + +位图文件头 + + + +#include <bsp_BMP.h> + + + Public 属性 + + u16 bfType + + u32 bfSize + + u16 bfReserved1 + + u16 bfReserved2 + + u32 bfOffBits + + + +
+详细描述 + +位图文件头 + +在文件 bsp_BMP.h 第 44 行定义. +
+
+类成员变量说明 +
+ bfOffBits +bfOffBits_BITMAPFILEHEADER +_BITMAPFILEHEADERbfOffBits +u32 _BITMAPFILEHEADER::bfOffBits +在文件 bsp_BMP.h 第 50 行定义. +
+
+ bfReserved1 +bfReserved1_BITMAPFILEHEADER +_BITMAPFILEHEADERbfReserved1 +u16 _BITMAPFILEHEADER::bfReserved1 +在文件 bsp_BMP.h 第 48 行定义. +
+
+ bfReserved2 +bfReserved2_BITMAPFILEHEADER +_BITMAPFILEHEADERbfReserved2 +u16 _BITMAPFILEHEADER::bfReserved2 +在文件 bsp_BMP.h 第 49 行定义. +
+
+ bfSize +bfSize_BITMAPFILEHEADER +_BITMAPFILEHEADERbfSize +u32 _BITMAPFILEHEADER::bfSize +在文件 bsp_BMP.h 第 47 行定义. +
+
+ bfType +bfType_BITMAPFILEHEADER +_BITMAPFILEHEADERbfType +u16 _BITMAPFILEHEADER::bfType +在文件 bsp_BMP.h 第 46 行定义. +
+ +该结构体的文档由以下文件生成: +D:/gitt/MicrochipFor32/bsp_Device/bsp_BMP.h
+
diff --git a/Doc/docbook/struct___b_i_t_m_a_p_i_n_f_o.xml b/Doc/docbook/struct___b_i_t_m_a_p_i_n_f_o.xml new file mode 100644 index 0000000..37491ea --- /dev/null +++ b/Doc/docbook/struct___b_i_t_m_a_p_i_n_f_o.xml @@ -0,0 +1,66 @@ + +
+_BITMAPINFO结构体 参考 +_BITMAPINFO + + +BMP文件头 + + + +#include <bsp_BMP.h> + +_BITMAPINFO 的协作图: + + + + + + + + + + Public 属性 + + _BITMAPFILEHEADER bmfHeader + + _BITMAPINFOHEADER bmiHeader + + _RGBQUAD bmiColors [256] + + + +
+详细描述 + +BMP文件头 + +在文件 bsp_BMP.h 第 84 行定义. +
+
+类成员变量说明 +
+ bmfHeader +bmfHeader_BITMAPINFO +_BITMAPINFObmfHeader +_BITMAPFILEHEADER _BITMAPINFO::bmfHeader +在文件 bsp_BMP.h 第 85 行定义. +
+
+ bmiColors +bmiColors_BITMAPINFO +_BITMAPINFObmiColors +_RGBQUAD _BITMAPINFO::bmiColors[256] +在文件 bsp_BMP.h 第 87 行定义. +
+
+ bmiHeader +bmiHeader_BITMAPINFO +_BITMAPINFObmiHeader +_BITMAPINFOHEADER _BITMAPINFO::bmiHeader +在文件 bsp_BMP.h 第 86 行定义. +
+ +该结构体的文档由以下文件生成: +D:/gitt/MicrochipFor32/bsp_Device/bsp_BMP.h
+
diff --git a/Doc/docbook/struct___b_i_t_m_a_p_i_n_f_o__coll__graph.md5 b/Doc/docbook/struct___b_i_t_m_a_p_i_n_f_o__coll__graph.md5 new file mode 100644 index 0000000..34a5418 --- /dev/null +++ b/Doc/docbook/struct___b_i_t_m_a_p_i_n_f_o__coll__graph.md5 @@ -0,0 +1 @@ +76d622d89629e99a16a71d8fee6da921 \ No newline at end of file diff --git a/Doc/docbook/struct___b_i_t_m_a_p_i_n_f_o__coll__graph.png b/Doc/docbook/struct___b_i_t_m_a_p_i_n_f_o__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..27f6dddebbc53da3e89f0ef1f31e4851e4a90c64 GIT binary patch literal 5115 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 literal 0 HcmV?d00001 diff --git a/Doc/docbook/struct___b_i_t_m_a_p_i_n_f_o_h_e_a_d_e_r.xml b/Doc/docbook/struct___b_i_t_m_a_p_i_n_f_o_h_e_a_d_e_r.xml new file mode 100644 index 0000000..34f041c --- /dev/null +++ b/Doc/docbook/struct___b_i_t_m_a_p_i_n_f_o_h_e_a_d_e_r.xml @@ -0,0 +1,129 @@ + +
+_BITMAPINFOHEADER结构体 参考 +_BITMAPINFOHEADER + + +位图信息头 + + + +#include <bsp_BMP.h> + + + Public 属性 + + u32 biSize + + u32 biWidth + + u32 biHeight + + u16 biPlanes + + u16 biBitCount + + u32 biCompression + + u32 biSizeImage + + u32 biXPelsPerMeter + + u32 biYPelsPerMeter + + u32 biClrUsed + + u32 biClrImportant + + + +
+详细描述 + +位图信息头 + +在文件 bsp_BMP.h 第 55 行定义. +
+
+类成员变量说明 +
+ biBitCount +biBitCount_BITMAPINFOHEADER +_BITMAPINFOHEADERbiBitCount +u16 _BITMAPINFOHEADER::biBitCount +在文件 bsp_BMP.h 第 60 行定义. +
+
+ biClrImportant +biClrImportant_BITMAPINFOHEADER +_BITMAPINFOHEADERbiClrImportant +u32 _BITMAPINFOHEADER::biClrImportant +在文件 bsp_BMP.h 第 70 行定义. +
+
+ biClrUsed +biClrUsed_BITMAPINFOHEADER +_BITMAPINFOHEADERbiClrUsed +u32 _BITMAPINFOHEADER::biClrUsed +在文件 bsp_BMP.h 第 69 行定义. +
+
+ biCompression +biCompression_BITMAPINFOHEADER +_BITMAPINFOHEADERbiCompression +u32 _BITMAPINFOHEADER::biCompression +在文件 bsp_BMP.h 第 61 行定义. +
+
+ biHeight +biHeight_BITMAPINFOHEADER +_BITMAPINFOHEADERbiHeight +u32 _BITMAPINFOHEADER::biHeight +在文件 bsp_BMP.h 第 58 行定义. +
+
+ biPlanes +biPlanes_BITMAPINFOHEADER +_BITMAPINFOHEADERbiPlanes +u16 _BITMAPINFOHEADER::biPlanes +在文件 bsp_BMP.h 第 59 行定义. +
+
+ biSize +biSize_BITMAPINFOHEADER +_BITMAPINFOHEADERbiSize +u32 _BITMAPINFOHEADER::biSize +在文件 bsp_BMP.h 第 56 行定义. +
+
+ biSizeImage +biSizeImage_BITMAPINFOHEADER +_BITMAPINFOHEADERbiSizeImage +u32 _BITMAPINFOHEADER::biSizeImage +在文件 bsp_BMP.h 第 66 行定义. +
+
+ biWidth +biWidth_BITMAPINFOHEADER +_BITMAPINFOHEADERbiWidth +u32 _BITMAPINFOHEADER::biWidth +在文件 bsp_BMP.h 第 57 行定义. +
+
+ biXPelsPerMeter +biXPelsPerMeter_BITMAPINFOHEADER +_BITMAPINFOHEADERbiXPelsPerMeter +u32 _BITMAPINFOHEADER::biXPelsPerMeter +在文件 bsp_BMP.h 第 67 行定义. +
+
+ biYPelsPerMeter +biYPelsPerMeter_BITMAPINFOHEADER +_BITMAPINFOHEADERbiYPelsPerMeter +u32 _BITMAPINFOHEADER::biYPelsPerMeter +在文件 bsp_BMP.h 第 68 行定义. +
+ +该结构体的文档由以下文件生成: +D:/gitt/MicrochipFor32/bsp_Device/bsp_BMP.h
+
diff --git a/Doc/docbook/struct___r_g_b_q_u_a_d.xml b/Doc/docbook/struct___r_g_b_q_u_a_d.xml new file mode 100644 index 0000000..d50ad05 --- /dev/null +++ b/Doc/docbook/struct___r_g_b_q_u_a_d.xml @@ -0,0 +1,66 @@ + +
+_RGBQUAD结构体 参考 +_RGBQUAD + + +调色板 + + + +#include <bsp_BMP.h> + + + Public 属性 + + u8 rgbBlue + + u8 rgbGreen + + u8 rgbRed + + u8 rgbReserved + + + +
+详细描述 + +调色板 + +在文件 bsp_BMP.h 第 75 行定义. +
+
+类成员变量说明 +
+ rgbBlue +rgbBlue_RGBQUAD +_RGBQUADrgbBlue +u8 _RGBQUAD::rgbBlue +在文件 bsp_BMP.h 第 76 行定义. +
+
+ rgbGreen +rgbGreen_RGBQUAD +_RGBQUADrgbGreen +u8 _RGBQUAD::rgbGreen +在文件 bsp_BMP.h 第 77 行定义. +
+
+ rgbRed +rgbRed_RGBQUAD +_RGBQUADrgbRed +u8 _RGBQUAD::rgbRed +在文件 bsp_BMP.h 第 78 行定义. +
+
+ rgbReserved +rgbReserved_RGBQUAD +_RGBQUADrgbReserved +u8 _RGBQUAD::rgbReserved +在文件 bsp_BMP.h 第 79 行定义. +
+ +该结构体的文档由以下文件生成: +D:/gitt/MicrochipFor32/bsp_Device/bsp_BMP.h
+
diff --git a/Doc/docbook/structstruct__bsp___flash___pack.xml b/Doc/docbook/structstruct__bsp___flash___pack.xml new file mode 100644 index 0000000..65489e4 --- /dev/null +++ b/Doc/docbook/structstruct__bsp___flash___pack.xml @@ -0,0 +1,60 @@ + +
+struct_bsp_Flash_Pack结构体 参考 +struct_bsp_Flash_Pack + + +一包数据的内容 + + + + Public 属性 + + char Var0 + + short Var1 + + int Var2 + + + +
+详细描述 + +一包数据的内容 + + + +待办事项 +随意更改内部内容方便读取 + + +在文件 bsp_flash.c 第 43 行定义. +
+
+类成员变量说明 +
+ Var0 +Var0struct_bsp_Flash_Pack +struct_bsp_Flash_PackVar0 +char struct_bsp_Flash_Pack::Var0 +在文件 bsp_flash.c 第 44 行定义. +
+
+ Var1 +Var1struct_bsp_Flash_Pack +struct_bsp_Flash_PackVar1 +short struct_bsp_Flash_Pack::Var1 +在文件 bsp_flash.c 第 45 行定义. +
+
+ Var2 +Var2struct_bsp_Flash_Pack +struct_bsp_Flash_PackVar2 +int struct_bsp_Flash_Pack::Var2 +在文件 bsp_flash.c 第 46 行定义. +
+ +该结构体的文档由以下文件生成: +D:/gitt/MicrochipFor32/bsp_Device/bsp_flash.c
+
diff --git a/Doc/docbook/todo.xml b/Doc/docbook/todo.xml index f46d4a0..601550d 100644 --- a/Doc/docbook/todo.xml +++ b/Doc/docbook/todo.xml @@ -2,25 +2,29 @@
+成员 bsp_Flash_Pack + +随意更改内部内容方便读取 + 成员 bsp_IIC::IIC_Delay (void)=0 -需要为其实现才可使用软件IIC +需要为其实现才可使用软件IIC 成员 bsp_IIC::IIC_SCK (u8 var)=0 -需要为其实现才可使用软件IIC +需要为其实现才可使用软件IIC 成员 bsp_IIC::IIC_SDA (u8 var)=0 -需要为其实现才可使用软件IIC +需要为其实现才可使用软件IIC 成员 MainInit (void) -在此处填写初始化程序 +在此处填写初始化程序 成员 MainSystem (void) -在此处填写主进程程序 +在此处填写主进程程序 diff --git a/Doc/docbook/varint_8h.xml b/Doc/docbook/varint_8h.xml index 1e2273d..16ea6ea 100644 --- a/Doc/docbook/varint_8h.xml +++ b/Doc/docbook/varint_8h.xml @@ -2,6 +2,11 @@
D:/gitt/MicrochipFor32/bsp_Device/varint.h 文件参考 D:/gitt/MicrochipFor32/bsp_Device/varint.h + + +全局共用的标准类型表 + + #include "stdint.h"varint.h 的引用(Include)关系图: @@ -20,6 +25,83 @@ + + 宏定义 + + #define P8(x)   ((u8*)(&(x))) + +强制转换变成u8的指针 + + #define Pn8(x, y)   (((u8*)(&(x)))[y]) + +强制转换变成u8的数组 + + #define P16(x)   ((u16*)(&(x))) + +强制转换变成u16的指针 + + #define Pn16(x, y)   (((u16*)(&(x)))[y]) + +强制转换变成u16的数组 + + #define P32(x)   ((u32*)(&(x))) + +强制转换变成u32的指针 + + #define Pn32(x, y)   (((u32*)(&(x)))[y]) + +强制转换变成u32的数组 + + #define DelLb(x)   (x & (x - 1)) + +移除最低位的1 + + #define qDelLb(x)   (x=(x & (x - 1))) + +移除并保存最低位的1 + + #define toBool(x)   (x!=0) + +数布尔化 + + #define uBit(x, y)   (x&(1<<y)) + +挑选某一位 + + #define tBit(x, y)   (toBool(uBit(x,y))) + +挑选某一位并且布尔化 + + #define sBit(x, y)   (x|(1<<y)) + +置高某一位 + + #define rBit(x, y)   (x&(~(1<<y))) + +拉低某一位 + + #define mBit(x, y, z)   ((z)?sBit(x,y):rBit(x,y)) + +选择性拉高拉低某一位 + + #define LpAdd(x, y)   ((x+1)<y?x+1:0) + +带最高限制的加法 + + #define LpDec(x, y)   (x>0?x-1:y-1) + +带最低限制的减法 + + #define qLpAdd(x, y)   (x=(x+1)<y?x+1:0) + +带最高限制的自增 + + #define qLpDec(x, y)   (x=x>0?x-1:y-1) + +带最低限制的自减 + + + 类型定义 @@ -90,6 +172,214 @@
+详细描述 + +全局共用的标准类型表 + +在文件 varint.h 中定义. +
+
+宏定义说明 +
+ DelLb +DelLbvarint.h +varint.hDelLb +#define DelLb( x)   (x & (x - 1)) + +移除最低位的1 + + +在文件 varint.h 第 69 行定义. +
+
+ LpAdd +LpAddvarint.h +varint.hLpAdd +#define LpAdd( x, y)   ((x+1)<y?x+1:0) + +带最高限制的加法 + + +在文件 varint.h 第 80 行定义. +
+
+ LpDec +LpDecvarint.h +varint.hLpDec +#define LpDec( x, y)   (x>0?x-1:y-1) + +带最低限制的减法 + + +在文件 varint.h 第 81 行定义. +
+
+ mBit +mBitvarint.h +varint.hmBit +#define mBit( x, y, z)   ((z)?sBit(x,y):rBit(x,y)) + +选择性拉高拉低某一位 + + +在文件 varint.h 第 78 行定义. +
+
+ P16 +P16varint.h +varint.hP16 +#define P16( x)   ((u16*)(&(x))) + +强制转换变成u16的指针 + + +在文件 varint.h 第 64 行定义. +
+
+ P32 +P32varint.h +varint.hP32 +#define P32( x)   ((u32*)(&(x))) + +强制转换变成u32的指针 + + +在文件 varint.h 第 66 行定义. +
+
+ P8 +P8varint.h +varint.hP8 +#define P8( x)   ((u8*)(&(x))) + +强制转换变成u8的指针 + + +在文件 varint.h 第 62 行定义. +
+
+ Pn16 +Pn16varint.h +varint.hPn16 +#define Pn16( x, y)   (((u16*)(&(x)))[y]) + +强制转换变成u16的数组 + + +在文件 varint.h 第 65 行定义. +
+
+ Pn32 +Pn32varint.h +varint.hPn32 +#define Pn32( x, y)   (((u32*)(&(x)))[y]) + +强制转换变成u32的数组 + + +在文件 varint.h 第 67 行定义. +
+
+ Pn8 +Pn8varint.h +varint.hPn8 +#define Pn8( x, y)   (((u8*)(&(x)))[y]) + +强制转换变成u8的数组 + + +在文件 varint.h 第 63 行定义. +
+
+ qDelLb +qDelLbvarint.h +varint.hqDelLb +#define qDelLb( x)   (x=(x & (x - 1))) + +移除并保存最低位的1 + + +在文件 varint.h 第 70 行定义. +
+
+ qLpAdd +qLpAddvarint.h +varint.hqLpAdd +#define qLpAdd( x, y)   (x=(x+1)<y?x+1:0) + +带最高限制的自增 + + +在文件 varint.h 第 82 行定义. +
+
+ qLpDec +qLpDecvarint.h +varint.hqLpDec +#define qLpDec( x, y)   (x=x>0?x-1:y-1) + +带最低限制的自减 + + +在文件 varint.h 第 84 行定义. +
+
+ rBit +rBitvarint.h +varint.hrBit +#define rBit( x, y)   (x&(~(1<<y))) + +拉低某一位 + + +在文件 varint.h 第 77 行定义. +
+
+ sBit +sBitvarint.h +varint.hsBit +#define sBit( x, y)   (x|(1<<y)) + +置高某一位 + + +在文件 varint.h 第 76 行定义. +
+
+ tBit +tBitvarint.h +varint.htBit +#define tBit( x, y)   (toBool(uBit(x,y))) + +挑选某一位并且布尔化 + + +在文件 varint.h 第 74 行定义. +
+
+ toBool +toBoolvarint.h +varint.htoBool +#define toBool( x)   (x!=0) + +数布尔化 + + +在文件 varint.h 第 72 行定义. +
+
+ uBit +uBitvarint.h +varint.huBit +#define uBit( x, y)   (x&(1<<y)) + +挑选某一位 + + +在文件 varint.h 第 73 行定义. +
+
+
类型定义说明
i16 diff --git a/Doc/docbook/varint_8h__dep__incl.md5 b/Doc/docbook/varint_8h__dep__incl.md5 index 41f5b7c..40b80ae 100644 --- a/Doc/docbook/varint_8h__dep__incl.md5 +++ b/Doc/docbook/varint_8h__dep__incl.md5 @@ -1 +1 @@ -6b55e48e05ee0d5232262fbd366adff3 \ No newline at end of file +dfb1fc150cca2480934318473caba647 \ No newline at end of file diff --git a/Doc/docbook/varint_8h__dep__incl.png b/Doc/docbook/varint_8h__dep__incl.png index b5ef6c43e75bcc942822917b5dcc552199261abe..f13deed915f077cb868fed752dabca5d16f7cde2 100644 GIT binary patch literal 119049 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 z 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 WGGeWT`s4bT@UVC?U70DjeUkC%ydGNK32~9&M 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 B5zPPq literal 101256 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 wIt<$ZaSx}*;00056 typedef volatile i16 vi16; 00057 typedef volatile i32 vi32; 00058 typedef volatile i64 vi64; -00060 +00060 //---------------------------------------------------------------------------------------------------- +00061 // 位宏 +00062 #define P8(x) ((u8*)(&(x))) +00063 #define Pn8(x,y) (((u8*)(&(x)))[y]) +00064 #define P16(x) ((u16*)(&(x))) +00065 #define Pn16(x,y) (((u16*)(&(x)))[y]) +00066 #define P32(x) ((u32*)(&(x))) +00067 #define Pn32(x,y) (((u32*)(&(x)))[y]) +00068 +00069 #define DelLb(x) (x & (x - 1)) +00070 #define qDelLb(x) (x=(x & (x - 1))) +00071 +00072 #define toBool(x) (x!=0) +00073 #define uBit(x,y) (x&(1<<y)) +00074 #define tBit(x,y) (toBool(uBit(x,y))) +00075 +00076 #define sBit(x,y) (x|(1<<y)) +00077 #define rBit(x,y) (x&(~(1<<y))) +00078 #define mBit(x,y,z) ((z)?sBit(x,y):rBit(x,y)) +00079 +00080 #define LpAdd(x,y) ((x+1)<y?x+1:0) +00081 #define LpDec(x,y) (x>0?x-1:y-1) +00082 #define qLpAdd(x,y) (x=(x+1)<y?x+1:0) +00083 #define qLpDec(x,y) (x=x>0?x-1:y-1) +00085

diff --git a/Doc/docbook/vartable_8cpp__incl.md5 b/Doc/docbook/vartable_8cpp__incl.md5 index c84d946..f989f90 100644 --- a/Doc/docbook/vartable_8cpp__incl.md5 +++ b/Doc/docbook/vartable_8cpp__incl.md5 @@ -1 +1 @@ -dca175562cf2d24549fd8506bcd8ec76 \ No newline at end of file +c31aad3efb2e26ed4cd147fa7fd8f390 \ No newline at end of file diff --git a/Doc/docbook/vartable_8h.xml b/Doc/docbook/vartable_8h.xml index 5926270..d3e8187 100644 --- a/Doc/docbook/vartable_8h.xml +++ b/Doc/docbook/vartable_8h.xml @@ -62,7 +62,7 @@ -待办事项 +待办事项 在此处填写初始化程序 @@ -83,7 +83,7 @@ -待办事项 +待办事项 在此处填写主进程程序 diff --git a/Doc/docbook/vartable_8h__incl.md5 b/Doc/docbook/vartable_8h__incl.md5 index c751b9b..afa72c0 100644 --- a/Doc/docbook/vartable_8h__incl.md5 +++ b/Doc/docbook/vartable_8h__incl.md5 @@ -1 +1 @@ -dc6c7aff1bede3738ad0dc9aa8889635 \ No newline at end of file +e44792047edca05675e6e7977cc21f4b \ No newline at end of file diff --git a/Doc/html/_callback_8cpp.html b/Doc/html/_callback_8cpp.html index 35354b4..1ae0e38 100644 --- a/Doc/html/_callback_8cpp.html +++ b/Doc/html/_callback_8cpp.html @@ -89,7 +89,7 @@ Callback.cpp 的引用(Include)关系图: - + diff --git a/Doc/html/_callback_8cpp__incl.map b/Doc/html/_callback_8cpp__incl.map index ec1c693..0853491 100644 --- a/Doc/html/_callback_8cpp__incl.map +++ b/Doc/html/_callback_8cpp__incl.map @@ -2,7 +2,7 @@ - + diff --git a/Doc/html/_callback_8cpp__incl.md5 b/Doc/html/_callback_8cpp__incl.md5 index 2a3b122..5b2e487 100644 --- a/Doc/html/_callback_8cpp__incl.md5 +++ b/Doc/html/_callback_8cpp__incl.md5 @@ -1 +1 @@ -e7b7448de58aa8208e7960fb60ae7b2e \ No newline at end of file +5bab8e68f70fe52778862a603056e696 \ No newline at end of file diff --git a/Doc/html/_main_system_8cpp.html b/Doc/html/_main_system_8cpp.html index 9c3c677..ceb2d2b 100644 --- a/Doc/html/_main_system_8cpp.html +++ b/Doc/html/_main_system_8cpp.html @@ -91,7 +91,7 @@ MainSystem.cpp 的引用(Include)关系图: - + @@ -134,7 +134,7 @@ MainSystem.cpp 的引用(Include)关系图:

初始化步骤的首部

注解
在MX生成的main中,进入循环前放置本函数
-
+
待办事项:
在此处填写初始化程序

在文件 MainSystem.cpp47 行定义.

@@ -158,7 +158,7 @@ MainSystem.cpp 的引用(Include)关系图:

循环主程序函数

注解
在MX生成的main中,进入循环后放置本函数
-
待办事项:
在此处填写主进程程序
+
待办事项:
在此处填写主进程程序

在文件 MainSystem.cpp56 行定义.

diff --git a/Doc/html/_main_system_8cpp__incl.map b/Doc/html/_main_system_8cpp__incl.map index 7ec69ff..26a264b 100644 --- a/Doc/html/_main_system_8cpp__incl.map +++ b/Doc/html/_main_system_8cpp__incl.map @@ -2,7 +2,7 @@ - + diff --git a/Doc/html/_main_system_8cpp__incl.md5 b/Doc/html/_main_system_8cpp__incl.md5 index dee2cc0..fee42bb 100644 --- a/Doc/html/_main_system_8cpp__incl.md5 +++ b/Doc/html/_main_system_8cpp__incl.md5 @@ -1 +1 @@ -67d0e1b885952c083a9768e4b37b1985 \ No newline at end of file +f25aa9f7b8ab9d88a2fc41212e3aa10d \ No newline at end of file diff --git a/Doc/html/_s_t_l___queue_8cpp.html b/Doc/html/_s_t_l___queue_8cpp.html index d89f13f..1410490 100644 --- a/Doc/html/_s_t_l___queue_8cpp.html +++ b/Doc/html/_s_t_l___queue_8cpp.html @@ -88,7 +88,7 @@ STL_Queue.cpp 的引用(Include)关系图: - + diff --git a/Doc/html/_s_t_l___queue_8cpp__incl.map b/Doc/html/_s_t_l___queue_8cpp__incl.map index f53e6be..3f231bc 100644 --- a/Doc/html/_s_t_l___queue_8cpp__incl.map +++ b/Doc/html/_s_t_l___queue_8cpp__incl.map @@ -1,7 +1,7 @@ - + diff --git a/Doc/html/_s_t_l___queue_8cpp__incl.md5 b/Doc/html/_s_t_l___queue_8cpp__incl.md5 index ae06e26..15651bf 100644 --- a/Doc/html/_s_t_l___queue_8cpp__incl.md5 +++ b/Doc/html/_s_t_l___queue_8cpp__incl.md5 @@ -1 +1 @@ -90af04557dc9c56e2f6a6cc134d1cec3 \ No newline at end of file +7805f3714805f8d591903a61a333fb2b \ No newline at end of file diff --git a/Doc/html/_s_t_l___queue_8h.html b/Doc/html/_s_t_l___queue_8h.html index 76006d4..41eeed3 100644 --- a/Doc/html/_s_t_l___queue_8h.html +++ b/Doc/html/_s_t_l___queue_8h.html @@ -92,7 +92,7 @@ STL_Queue.h 的引用(Include)关系图:
- + diff --git a/Doc/html/_s_t_l___queue_8h__incl.map b/Doc/html/_s_t_l___queue_8h__incl.map index 6481d23..7e1b7dc 100644 --- a/Doc/html/_s_t_l___queue_8h__incl.map +++ b/Doc/html/_s_t_l___queue_8h__incl.map @@ -1,6 +1,6 @@ - + diff --git a/Doc/html/_s_t_l___queue_8h__incl.md5 b/Doc/html/_s_t_l___queue_8h__incl.md5 index 3aff00d..8353ca7 100644 --- a/Doc/html/_s_t_l___queue_8h__incl.md5 +++ b/Doc/html/_s_t_l___queue_8h__incl.md5 @@ -1 +1 @@ -6334a3d6ac3689685a982fa2c33b6afc \ No newline at end of file +7b91003566bc6c92539fcff6b97182e8 \ No newline at end of file diff --git a/Doc/html/_s_t_l___queue_8h_source.html b/Doc/html/_s_t_l___queue_8h_source.html index 090e75a..302ec8c 100644 --- a/Doc/html/_s_t_l___queue_8h_source.html +++ b/Doc/html/_s_t_l___queue_8h_source.html @@ -216,7 +216,7 @@ $(function() {
struct _lQueue * back
后一个节点的指针
Definition: STL_Queue.h:88
u32 size
该数据的大小
Definition: STL_Queue.h:90
void * dat
数据的指针
Definition: STL_Queue.h:89
- +
全局共用的标准类型表
uint8_t u8
8位无符号数类型
Definition: varint.h:40
uint32_t u32
32位无符号数类型
Definition: varint.h:42
diff --git a/Doc/html/_s_t_l___stack_8cpp.html b/Doc/html/_s_t_l___stack_8cpp.html index b6a2aa7..1e25646 100644 --- a/Doc/html/_s_t_l___stack_8cpp.html +++ b/Doc/html/_s_t_l___stack_8cpp.html @@ -88,7 +88,7 @@ STL_Stack.cpp 的引用(Include)关系图: - + diff --git a/Doc/html/_s_t_l___stack_8cpp__incl.map b/Doc/html/_s_t_l___stack_8cpp__incl.map index b9eaed6..d51e39c 100644 --- a/Doc/html/_s_t_l___stack_8cpp__incl.map +++ b/Doc/html/_s_t_l___stack_8cpp__incl.map @@ -1,7 +1,7 @@ - + diff --git a/Doc/html/_s_t_l___stack_8cpp__incl.md5 b/Doc/html/_s_t_l___stack_8cpp__incl.md5 index 575e00b..4bf11de 100644 --- a/Doc/html/_s_t_l___stack_8cpp__incl.md5 +++ b/Doc/html/_s_t_l___stack_8cpp__incl.md5 @@ -1 +1 @@ -025cc28edebf45961573d7ca05741fae \ No newline at end of file +1a58c98eea298b03785002ed51d8cb9f \ No newline at end of file diff --git a/Doc/html/_s_t_l___stack_8h.html b/Doc/html/_s_t_l___stack_8h.html index db7b0b5..4a5ee2d 100644 --- a/Doc/html/_s_t_l___stack_8h.html +++ b/Doc/html/_s_t_l___stack_8h.html @@ -92,7 +92,7 @@ STL_Stack.h 的引用(Include)关系图:
- + diff --git a/Doc/html/_s_t_l___stack_8h__incl.map b/Doc/html/_s_t_l___stack_8h__incl.map index 211bcd3..b4cc8c5 100644 --- a/Doc/html/_s_t_l___stack_8h__incl.map +++ b/Doc/html/_s_t_l___stack_8h__incl.map @@ -1,6 +1,6 @@ - + diff --git a/Doc/html/_s_t_l___stack_8h__incl.md5 b/Doc/html/_s_t_l___stack_8h__incl.md5 index a541b9d..468e23a 100644 --- a/Doc/html/_s_t_l___stack_8h__incl.md5 +++ b/Doc/html/_s_t_l___stack_8h__incl.md5 @@ -1 +1 @@ -51bfe6773d4708df113f1d8bc5c490a3 \ No newline at end of file +1b18a3f52c5dfd8576e55b5632f8ab5c \ No newline at end of file diff --git a/Doc/html/_s_t_l___stack_8h_source.html b/Doc/html/_s_t_l___stack_8h_source.html index 37ffdc1..7c62575 100644 --- a/Doc/html/_s_t_l___stack_8h_source.html +++ b/Doc/html/_s_t_l___stack_8h_source.html @@ -214,7 +214,7 @@ $(function() {
void * dat
数据的指针
Definition: STL_Stack.h:90
u32 size
该数据的大小
Definition: STL_Stack.h:91
struct _lStack * front
前一个节点的指针
Definition: STL_Stack.h:89
- +
全局共用的标准类型表
uint8_t u8
8位无符号数类型
Definition: varint.h:40
uint32_t u32
32位无符号数类型
Definition: varint.h:42
diff --git a/Doc/html/annotated.html b/Doc/html/annotated.html index 52277a4..33b907c 100644 --- a/Doc/html/annotated.html +++ b/Doc/html/annotated.html @@ -75,27 +75,35 @@ $(function() {
这里列出了所有类、结构、联合以及接口定义等,并附带简要说明:
- - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 C_lQueue链表方式队列的节点
 C_lStack链表方式栈的节点
 Cbsp_Digit一个面向数码管的类,使用级联的HC595
 Cbsp_IICIIC的基础实现方法 留下三个保护性接口需要实现,分别是控制时钟,控制数据,延时函数
 Cbsp_IIC_STM32STM32版本的软件IIC 需要使用构造函数初始化
 Cbsp_Increment_PID增量法为基础的PID算法
 Cbsp_MAX6675MAX6675的一个对象类
 Cbsp_ModBus_RxModBus协议分析器
 Cbsp_ModBus_STM32STM32用串口的ModBus发送器
 Cbsp_ModBus_TxModBus发送器
 Cbsp_Position_PID位置法为基础的PID算法
 Cbsp_SD一个操作SD卡的类
 Cbsp_STM32_AT24C00一个AT24设备,基于STM32的IIC总线
 Cbsp_STM32_OLED一个OLED设备,基于STM32使用IIC总线
 CMSD_CARDINFO
 CMSD_CID
 CMSD_CSD
 CSTL_lQueue一个队列的类
 CSTL_lStack一个栈的类
 CSTL_rQueue一个队列的类
 CSTL_rStack一个栈的类
 C_BITMAPFILEHEADER位图文件头
 C_BITMAPINFOBMP文件头
 C_BITMAPINFOHEADER位图信息头
 C_lQueue链表方式队列的节点
 C_lStack链表方式栈的节点
 C_RGBQUAD调色板
 Cbsp_BMP构建一个BMP类
 Cbsp_Differential一个微分对象
 Cbsp_Digit一个面向数码管的类,使用级联的HC595
 Cbsp_IICIIC的基础实现方法 留下三个保护性接口需要实现,分别是控制时钟,控制数据,延时函数
 Cbsp_IIC_STM32STM32版本的软件IIC 需要使用构造函数初始化
 Cbsp_Increment_PID增量法为基础的PID算法
 Cbsp_Integral一个积分对象
 Cbsp_MAX6675MAX6675的一个对象类
 Cbsp_ModBus_RxModBus协议分析器
 Cbsp_ModBus_STM32STM32用串口的ModBus发送器
 Cbsp_ModBus_TxModBus发送器
 Cbsp_Position_PID位置法为基础的PID算法
 Cbsp_SD一个操作SD卡的类
 Cbsp_STM32_AT24C00一个AT24设备,基于STM32的IIC总线
 Cbsp_STM32_OLED一个OLED设备,基于STM32使用IIC总线
 CMSD_CARDINFO
 CMSD_CID
 CMSD_CSD
 CSTL_lQueue一个队列的类
 CSTL_lStack一个栈的类
 CSTL_rQueue一个队列的类
 CSTL_rStack一个栈的类
 Cstruct_bsp_Flash_Pack一包数据的内容
diff --git a/Doc/html/bsp___a_t24_c00_8cpp.html b/Doc/html/bsp___a_t24_c00_8cpp.html index 792ee04..8d66670 100644 --- a/Doc/html/bsp___a_t24_c00_8cpp.html +++ b/Doc/html/bsp___a_t24_c00_8cpp.html @@ -89,7 +89,7 @@ bsp_AT24C00.cpp 的引用(Include)关系图:
- + diff --git a/Doc/html/bsp___a_t24_c00_8cpp__incl.map b/Doc/html/bsp___a_t24_c00_8cpp__incl.map index e261687..a2a354b 100644 --- a/Doc/html/bsp___a_t24_c00_8cpp__incl.map +++ b/Doc/html/bsp___a_t24_c00_8cpp__incl.map @@ -1,6 +1,6 @@ - + diff --git a/Doc/html/bsp___a_t24_c00_8cpp__incl.md5 b/Doc/html/bsp___a_t24_c00_8cpp__incl.md5 index 789c041..e43819d 100644 --- a/Doc/html/bsp___a_t24_c00_8cpp__incl.md5 +++ b/Doc/html/bsp___a_t24_c00_8cpp__incl.md5 @@ -1 +1 @@ -d61ffd2905d340d645e707b5a5ccb2ab \ No newline at end of file +fa6d9bad0974502bf315402daec889e6 \ No newline at end of file diff --git a/Doc/html/bsp___a_t24_c00_8cpp_source.html b/Doc/html/bsp___a_t24_c00_8cpp_source.html index be07d5b..e6ea050 100644 --- a/Doc/html/bsp___a_t24_c00_8cpp_source.html +++ b/Doc/html/bsp___a_t24_c00_8cpp_source.html @@ -158,7 +158,7 @@ $(function() {
void IIC_Delay(void)
实现AT定制的IIC延时时间
Definition: bsp_AT24C00.cpp:47
u8 ReadOneByte(u8 addr)
读取一个字节
Definition: bsp_AT24C00.cpp:63
void AT_ReadByte(u8 addr, u8 *dat, u8 len)
读取定长度的字节
- +
全局共用的标准类型表
uint8_t u8
8位无符号数类型
Definition: varint.h:40
diff --git a/Doc/html/bsp___a_t24_c00_8h.html b/Doc/html/bsp___a_t24_c00_8h.html index 1622a01..eb11f6e 100644 --- a/Doc/html/bsp___a_t24_c00_8h.html +++ b/Doc/html/bsp___a_t24_c00_8h.html @@ -90,7 +90,7 @@ bsp_AT24C00.h 的引用(Include)关系图:
- + diff --git a/Doc/html/bsp___a_t24_c00_8h__incl.map b/Doc/html/bsp___a_t24_c00_8h__incl.map index 4af7dd9..62341ee 100644 --- a/Doc/html/bsp___a_t24_c00_8h__incl.map +++ b/Doc/html/bsp___a_t24_c00_8h__incl.map @@ -1,6 +1,6 @@ - + diff --git a/Doc/html/bsp___a_t24_c00_8h__incl.md5 b/Doc/html/bsp___a_t24_c00_8h__incl.md5 index 20a038a..9366c86 100644 --- a/Doc/html/bsp___a_t24_c00_8h__incl.md5 +++ b/Doc/html/bsp___a_t24_c00_8h__incl.md5 @@ -1 +1 @@ -4ccbfa877159501e44b1eb20e3802283 \ No newline at end of file +d507a468f35921a28d8c0eab99251a9e \ No newline at end of file diff --git a/Doc/html/bsp___a_t24_c00_8h_source.html b/Doc/html/bsp___a_t24_c00_8h_source.html index 5fd7c60..b8e55a2 100644 --- a/Doc/html/bsp___a_t24_c00_8h_source.html +++ b/Doc/html/bsp___a_t24_c00_8h_source.html @@ -149,7 +149,7 @@ $(function() {
u8 ReadOneByte(u8 addr)
读取一个字节
Definition: bsp_AT24C00.cpp:63
void AT_ReadByte(u8 addr, u8 *dat, u8 len)
读取定长度的字节
bsp_STM32_AT24C00(u8 Address, u8 Page, GPIO_TypeDef *GPIOx_SCK, uint16_t GPIO_Pin_SCK, GPIO_TypeDef *GPIOx_SDA, uint16_t GPIO_Pin_SDA)
Definition: bsp_AT24C00.h:54
- +
全局共用的标准类型表
uint8_t u8
8位无符号数类型
Definition: varint.h:40
diff --git a/Doc/html/bsp___b_m_p_8cpp.html b/Doc/html/bsp___b_m_p_8cpp.html new file mode 100644 index 0000000..ed195ef --- /dev/null +++ b/Doc/html/bsp___b_m_p_8cpp.html @@ -0,0 +1,108 @@ + + + + + + + +MF32BSP_XerolySkinner: D:/gitt/MicrochipFor32/bsp_Device/bsp_BMP.cpp 文件参考 + + + + + + + + + +
+
+ + + + + + +
+
MF32BSP_XerolySkinner 2.0.0 +
+
C++版本的驱动库
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
载入中...
+
搜索中...
+
未找到
+
+
+
+
+ + +
+
+
bsp_BMP.cpp 文件参考
+
+
+ +

用来构造BMP图片 +更多...

+
#include "bsp_BMP.h"
+
+bsp_BMP.cpp 的引用(Include)关系图:
+
+
+ + + + + + + +
+
+

浏览源代码.

+

详细描述

+

用来构造BMP图片

+ +

在文件 bsp_BMP.cpp 中定义.

+
+ + + + diff --git a/Doc/html/bsp___b_m_p_8cpp__incl.map b/Doc/html/bsp___b_m_p_8cpp__incl.map new file mode 100644 index 0000000..67955ba --- /dev/null +++ b/Doc/html/bsp___b_m_p_8cpp__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Doc/html/bsp___b_m_p_8cpp__incl.md5 b/Doc/html/bsp___b_m_p_8cpp__incl.md5 new file mode 100644 index 0000000..33f871a --- /dev/null +++ b/Doc/html/bsp___b_m_p_8cpp__incl.md5 @@ -0,0 +1 @@ +062ea6b48affc70ad7d3050fce0d2429 \ No newline at end of file diff --git a/Doc/html/bsp___b_m_p_8cpp__incl.png b/Doc/html/bsp___b_m_p_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..24366d63df8a5d50c6a33e88a32e1be774d3b346 GIT binary patch literal 5129 zcmcIocQhPK*I&IaB5L$RiyA^UN^&5}@2jonhY=^Z z^{{I9Ln~Ey{NE+rcvm7YC}@Q9HH~7uUS+B2RfZaH+*^ynUlI8VSoS@A zaL6RpVw@M57U9WIvZal!m`J(0E})yH?d98er8@JYihX*da9QSWNOOzqRRVq(31}RC zls)WlC(^EA8+92RTzB>S+YK-+a`7Y%&FSB*K?v3>pWj$@_J$85~k?bbH=G((8w z@vt>tyx{;t^_iq4xYD)wTDNe>PKDvIva2V!8kt2T`jbU-#g)p zFh04OzO}UlWN(`#mZF-Q+$*^df4Pav%R;cTvzp6L(oZ6>C0|-RAUVJB8@I)kyB7Do zwOJL`P<|cM(kh!QW)_swXzRTc_h!O~^(HAM9O(aB4vq+RU>afFReYS`GC5;$b8Kk~U~OX?e|i_Qlxym|f25V1n|W(> z!7f`!Z*=AbtRW|Rzu({99E(!16#7a!n-6Jwp-dkk=XekXMB+G$Aee1;WBI)pHdGh` z3TT6rxsqwh`smZCz2`%`SktmxSZx`Me)oqn8jIRqJR6D}x7h2v4jWzmvi`&6+)%#8 z3Srbnwc=SAupuuio@gj4rz1Iuom>zclYW{#^rZ?Z!gvXLrNn?)!#1v1f}lWrlwacR z`+V~^r<;IoRBld=BnbIr4dH|3vb#auD&+g}lPlB5uyXu^_>zV|)8+tEHRCDgs|UnK z0TKP{?(V65baNQG?>r*l`eLO{B8&pllmGcde$-%qBX z@nWF6<454_2vEu=jVwbSMF)N5brWt=S$11t(Zk%jzU$>_h9N*AnrrPXqNU5N&nzW9uc5%-#U4xAR(@WfNhy@S!N@L1oG571} zu<;GzY3Q#Ll%Tb&rEKe{@ZpT}WWhB|%dKOLXT{j%trLb1Q(R)kSr~{{4GVHgDCGQE z7A?w)wO|^%8X^B7o%?mI$ai<2wWLAc8w-4yt(YuoW*9}peX$3-HZb9b_u67QC4rQ~ z%_x80HvRUpATaHzoRP$9F!ptQ-KWT$^w*+`r!#@oErA-g0#Q(;^0Z5 zMYP)WRo?+e(RkI}w!&jlv)}q-5TX9$)@-WA`(XAI)nk{?-4p9!p~yoB&%Wi5f8J)9 zSH+v@NNtYvQ5I4tyE*_>64>EQJUJ?e+XpMM9Ld5>@G5QBUR-?5W+%Ew|hIZ7jHtJ#j+*NThN%W=2v6OFZdFM}S=SBsmv)JiFRqq!$ zRb7P_vsz5iY8XTfTmETwtKEIxyf{gbO$7?a==;F{%j4HtZc*R~=I$rq>MSVTc20M# zYiUf++Ev!FuD6Z{`42g)4jO4Cd#G*UsdiU*Tlo{gZF0~UMs>h97!aYo6TRrfYtfd$ z2)N|}fYR=NW!_PQKScXnI?~MF{#_(d>7+!B#9Q&wL&LFtU?DiO9}_%yfO?k2^>lf2 z*9(Bq@?Xr3CB`dYoH=5<49T_u=S0m;7s>FGsM%kO2P*Esv~B ztS)MOI%j_jvmn$~_i+MJ0{i_OEC@Bq%rF`fX~KW~BXduZzGmFH

bxeVK)Vr2FSp zfykL|CZUd#yk{ma6+&@8n4fq*f->a8ipqQ(0P?Ii;4sT+4Ym$7cCTK*0=i}+>rRJs zSzxPQU%X$lL^;X|e4fp%5E& zS@ToZ+t^M8sIzAyQaXLx3t+tAI@BkMEc2aGR@FaQp-mypf;YXmBB*+q@K$&Q2e8#@ z(R2EbhEd&uPckHor!uH<=&+lFt4HGSzJY-qPIU7U-;<0<#u|>f6lsiC1|FIYFFq^^ zGX=j`s0N&SplEix%Ls!Ky!Jq+EkQa*We1~63dH4#L?#>~s$O5;KMwzl(V$SiK56b@ z%3N&0KC}}LT}UaGcg3^4p|n|JgiZzC>krgGee?NpXz|BW&#wb-w~#{DC`MGTiF4y4 zdjTh2B>_h8!>1L@OBO^eqz87?C^~@c{lSjfW$c=OkBCZ!3zv2-`7O_^Rlo<4R{U`4 zn!d>thcz>dJ-cq|Q*o;3sPm%e@B`EVt^Q2 zHJMtpUQL6DCUT}YIY(BjyS5j!&KGpSS^4eddv5T)nz|iYPX>h;{1u}N;kZ;Kr%vK2 z4@rHRKwJcL(e|?F;j1z!$NXo}szw zG;{itxW*+0pV2}`@309)g7!AZ1{r8-y>gEJP^aY}*>j2A-v99SrD|3!`p+R6brhzK z-K-by@>@chF+o0K(gM9!*mHVR)xqOGp0#RAY#Xsov63@!bL+Dmt*erB@_>-5)8gc3 zh}meB)U}-q7kLgkOeDILt~<*iRV5m#8<; zYb_V1&8lMO6#wQ()o?Bx}g)JvEsKJS(JE1cdztDJg@@IGH zqO69Oj0&^-D?|!O!Ao-rPoh|-IPx%uFT~Gv4m%sAi9jyTKVXZRxCKeG8b{TN3r-Jb z5j_9IU-xP28T{s#KDcOZ^VV+<7?@4Ey;Cl}_>m?k(lai`eMu6&s>F-qF|nLiU9nZK z13rzu3&dik=V9*hgDwrA~qNx3m{ zyWp+MF6Ry8ezh6qg<#?_W3oxE+*iO?kX)T1!r<^7@NJjz=hBDE^9jtO7APQn|K2Jg zt~Otp?vu*Pa~bxV_uq>1aHA?DxnzB_b6G685<0$T&))S@v{z?vBF&N*SLAHV14`;; zpjI!sRVn>Yh7tAd^)zU4^!v~iTB9V~JK*34>=MD$UZ&?~)SX!rNG3F6C~+)l z!C2BBAa|M9%)YJDK@Nfz2{V~`Y}oE#)r$(JnW0sXi`I)5fFU`Hru3vala(gTdd|JqH+0 zYgftQisEX91Q8UucTB?{uV5=Qw@OSg4gQOI-qY>MnGFE~VH*uko)$be2p3*)W`$e{ zW8oMW>674F__)3fyb2F?YdzmgyB))mW z<%l>-=B7&kBC8NFa|gEIT>ksfO~AYHOQXNLytX?hh6jYBD?!- z2jaos3%hHqQT?eWzMPB2@|U}C9;l~u%HN02K3wPO)J7v^9&S8uYZ#hN<(thD{hL_) z2NDofSPm|IpvB4?hHddldZf|U*B3&lMTpv3%QDFjQx?609fEx8^c3ve!i49hOR~vGF{!R)OZEV zE1l>fKTeh)5p!}4yFlO1Y12@qqZm6}!ebP^mW^1v4ZuzTFG-FCDByd zon7Oza@`7ctf&I&8($mUhU=d5yGO9OTDklaq67l#eg} zEJclsjO5(%g_!moKi?^Ufg)D?m${h-NAuMh+=jVa2@>1svuLntgt+`$313ffqAujd zKc1WMbqvwebh%StBF6&j!VA@;;1?7Gh8tJ;G%#zJ;m6k5|SZ_7qwvUIo_}-7X zB9m>a#H$?owP%0)h@PLHr*iyN$%cQ=}A?zS#|u?-^sWg08dDZ#2hSHtgS^6Pk!}+sZi|ajE~=bZfaR%vL3m zw|=h^SN@wl_tPz1v;XYolxpB^@-b}S+LS8hFRdaEXOtW$LoeHquT<|S((!+@W#lIM bAkxgG%-j2h`#o}Q4`A@uecd{3r|ACy{YC@P literal 0 HcmV?d00001 diff --git a/Doc/html/bsp___b_m_p_8cpp_source.html b/Doc/html/bsp___b_m_p_8cpp_source.html new file mode 100644 index 0000000..fac06d5 --- /dev/null +++ b/Doc/html/bsp___b_m_p_8cpp_source.html @@ -0,0 +1,204 @@ + + + + + + + +MF32BSP_XerolySkinner: D:/gitt/MicrochipFor32/bsp_Device/bsp_BMP.cpp 源文件 + + + + + + + + + +

+
+ + + + + + +
+
MF32BSP_XerolySkinner 2.0.0 +
+
C++版本的驱动库
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
载入中...
+
搜索中...
+
未找到
+
+
+
+
+ + +
+
+
bsp_BMP.cpp
+
+
+浏览该文件的文档.
1/*----------------------------------------------------------------------------------------------------
+
2 #
+
3 # Copyright (c) 2022 Yuankang Liang(XerolySkinner)
+
4 #
+
5 # 本软件按原样提供,无任何明示或暗示
+
6 # 在任何情况下,作者都不承担任何损害赔偿责任
+
7 #
+
8 # 使用的许可声明:
+
9 # 1. 不得歪曲本软件的来源,你不能声称你编写了原始软件.
+
10 # 2. 免费授予以任何目的,前提是版权声明出现在所有副本中.
+
11 # 并且版权声明和许可声明同时出现.
+
12 # 3. 你有使用,复制,修改,分发,和销售本软件的许可.
+
13 # 4. 如果你在产品中使用,产品文档中的声明是赞赏的但不是必须的.
+
14 # 5. 本通知不得从任何来源删除或更改.
+
15 #
+
16 # Yuankang Liang(XerolySkinner)
+
17 # E-mail:zabbcccbbaz@163.com
+
18 # QQ:2715099320
+
19 # Mobile Phone:13005636215
+
20 #
+
21 # All rights reserved.
+
22 */
+
23
+
34//----------------------------------------------------------------------------------------------------
+
35// 头文件
+
36#include "bsp_BMP.h"
+
38//----------------------------------------------------------------------------------------------------
+
39// 类函数
+
45void bsp_BMP::pels(u32 x, u32 y) {
+ + + +
53 free(dat);
+
54 dat = (u8*)malloc(Size);
+
55 return (u32)dat;}
+
59void bsp_BMP::delData(void) {
+
60 free(dat);}
+
68void bsp_BMP::ColorsSet(u8 R, u8 G, u8 B,u32 i) {
+ + + + + +
79 free(dat);
+
80 Size = x * y;
+
81 BITMAPINFO.bmiHeader.biWidth = x; // 色彩宽度
+
82 BITMAPINFO.bmiHeader.biHeight = y; // 色彩高度
+ +
84 sizeof(_BITMAPINFO); // 位图数据偏倚
+ +
86 x * y +
+
87 BITMAPINFO.bmfHeader.bfOffBits; // 文件大小
+
88 }
+
90//----------------------------------------------------------------------------------------------------
+
91// 构造函数
+
97bsp_BMP::bsp_BMP(u32 Width, u32 Height) {
+
98 bsp_BMP::dat = NULL;
+
99 bsp_BMP::Size = Width * Height;
+
100 BITMAPINFO.bmiHeader.biWidth = Width; // 色彩宽度
+
101 BITMAPINFO.bmiHeader.biHeight = Height; // 色彩高度
+
102 BITMAPINFO.bmfHeader.bfType = 0x4D42; // 恒为保护字
+
103 BITMAPINFO.bmfHeader.bfReserved1 = 0; // 保留字
+
104 BITMAPINFO.bmfHeader.bfReserved2 = 0; // 保留字
+
105 BITMAPINFO.bmiHeader.biCompression = 0; // 无压缩
+
106 BITMAPINFO.bmiHeader.biSizeImage = 0; // 无压缩下为0
+
107 BITMAPINFO.bmiHeader.biPlanes = 1; // 恒为保护字
+
108 BITMAPINFO.bmiHeader.biClrUsed = 0; // 使用全部颜色
+
109 BITMAPINFO.bmiHeader.biClrImportant = 0; // 全部颜色都重要
+
110 BITMAPINFO.bmiHeader.biXPelsPerMeter = 0; // 像素-不太重要
+
111 BITMAPINFO.bmiHeader.biYPelsPerMeter = 0; // 像素-不太重要
+
112 BITMAPINFO.bmiHeader.biSize = 40; // 信息头大小
+ +
114 sizeof(_BITMAPINFO); // 位图数据偏倚
+ +
116 Width * Height+
+
117 BITMAPINFO.bmfHeader.bfOffBits; // 文件大小
+
118 BITMAPINFO.bmiHeader.biBitCount = 8; // 色彩深度
+
119 }
+
120//----------------------------------------------------------------------------------------------------
+ +
122 free(dat);}
+
用来构造BMP图片
+
void ColorsSet(u8 R, u8 G, u8 B, u32 i)
设置调色板
Definition: bsp_BMP.cpp:68
+
u8 * dat
数据区
Definition: bsp_BMP.h:110
+
bsp_BMP(u32 Width, u32 Height)
构造BMP数据头
Definition: bsp_BMP.cpp:97
+
void pels(u32 x, u32 y)
设置像素
Definition: bsp_BMP.cpp:45
+
void sizeSet(u32 x, u32 y)
设置图片大小
Definition: bsp_BMP.cpp:78
+
~bsp_BMP(void)
Definition: bsp_BMP.cpp:121
+
_BITMAPINFO BITMAPINFO
文件头
Definition: bsp_BMP.h:108
+
u32 Size
文件大小
Definition: bsp_BMP.h:109
+
void delData(void)
释放数据空间
Definition: bsp_BMP.cpp:59
+
u32 giveData(void)
给予数据空间
Definition: bsp_BMP.cpp:52
+ + + + + +
u32 biYPelsPerMeter
Definition: bsp_BMP.h:68
+ + + + +
u32 biClrImportant
Definition: bsp_BMP.h:70
+
u32 biXPelsPerMeter
Definition: bsp_BMP.h:67
+ + + + +
BMP文件头
Definition: bsp_BMP.h:84
+
_BITMAPFILEHEADER bmfHeader
Definition: bsp_BMP.h:85
+
_BITMAPINFOHEADER bmiHeader
Definition: bsp_BMP.h:86
+
_RGBQUAD bmiColors[256]
Definition: bsp_BMP.h:87
+
u8 rgbGreen
Definition: bsp_BMP.h:77
+
u8 rgbReserved
Definition: bsp_BMP.h:79
+
u8 rgbRed
Definition: bsp_BMP.h:78
+
u8 rgbBlue
Definition: bsp_BMP.h:76
+
uint8_t u8
8位无符号数类型
Definition: varint.h:40
+
uint32_t u32
32位无符号数类型
Definition: varint.h:42
+
+ + + + diff --git a/Doc/html/bsp___b_m_p_8h.html b/Doc/html/bsp___b_m_p_8h.html new file mode 100644 index 0000000..66906f8 --- /dev/null +++ b/Doc/html/bsp___b_m_p_8h.html @@ -0,0 +1,138 @@ + + + + + + + +MF32BSP_XerolySkinner: D:/gitt/MicrochipFor32/bsp_Device/bsp_BMP.h 文件参考 + + + + + + + + + +
+
+ + + + + + +
+
MF32BSP_XerolySkinner 2.0.0 +
+
C++版本的驱动库
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
载入中...
+
搜索中...
+
未找到
+
+
+
+
+ + +
+
+
+
+
bsp_BMP.h 文件参考
+
+
+ +

用来构造BMP图片 +更多...

+
#include "varint.h"
+#include <stdlib.h>
+
+bsp_BMP.h 的引用(Include)关系图:
+
+
+ + + + + + +
+
+此图展示该文件直接或间接的被哪些文件引用了:
+
+
+ + + + +
+
+

浏览源代码.

+ + + + + + + + + + + + + + + + + +

+类

struct  _BITMAPFILEHEADER
 位图文件头 更多...
 
struct  _BITMAPINFOHEADER
 位图信息头 更多...
 
struct  _RGBQUAD
 调色板 更多...
 
struct  _BITMAPINFO
 BMP文件头 更多...
 
class  bsp_BMP
 构建一个BMP类 更多...
 
+

详细描述

+

用来构造BMP图片

+ +

在文件 bsp_BMP.h 中定义.

+
+ + + + diff --git a/Doc/html/bsp___b_m_p_8h__dep__incl.map b/Doc/html/bsp___b_m_p_8h__dep__incl.map new file mode 100644 index 0000000..8656363 --- /dev/null +++ b/Doc/html/bsp___b_m_p_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/Doc/html/bsp___b_m_p_8h__dep__incl.md5 b/Doc/html/bsp___b_m_p_8h__dep__incl.md5 new file mode 100644 index 0000000..e5cfad9 --- /dev/null +++ b/Doc/html/bsp___b_m_p_8h__dep__incl.md5 @@ -0,0 +1 @@ +076f3757130d37bc7a9e16d5c2a0ac69 \ No newline at end of file diff --git a/Doc/html/bsp___b_m_p_8h__dep__incl.png b/Doc/html/bsp___b_m_p_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..adda8e75f8f0890b83031bab905de40d86d6c1eb GIT binary patch literal 2257 zcmchZXHXLe7RQ4kRisKUqEZhK6m=0ogn%S;sUkt#4Lw9a1z9BE2}mIHEQL`yWrWe@cm+AWdS()SCw>DWdi^LFQ67?E|EoyS0fljODWR3tJoD+ zXhHzoqpyoTII(0l8fSbccwSa~M+$AU z(&((b6c7^P9?q>>`*mJ4ej~#5T@-iUv$MWtULT+uFJ>;F>NB7@FNtqyxwIS_pW)a{ z104@Sp3St#DljsL7x#V#%AW~ z*6(6}J7>=LYz+!NoS>T5I-u3b3XRIPX5Rpo4iW}uKb*|9P-)_Sbpz)i-oyvNO<>ya zMU<()LCegdnBb9V*9>m49ei(d{D8dsVSG2nTgABUkh8f+NC8Q)4tvc9nOFBCW6?hT z{#GDV>|`#ARy_3Q+d*o zSy{`{jl_v8*^U@*l|J1bW1cpWpTFXlo&L9 zA%PXSvl~*Hmx%Kcx5`)%J#)tCKo#TcKwrVRfBSj~WCon5XQckr(V_!2@!VyTtm(o5 z(cC@48h7dt5@&=uMUluaEivfYL(H%G2OV4xNha#kcG;DMi%KgRjq@A@70M1&UJ4ax zs29Kuxm#VD)0;b>oD^4fDWz~x$gRx1K=&2d0AUDb^ zzuSCF=KeY{MpEA2s$Ho@BUS|Br@1eov!x2qOaOlZ0TditPtUscBQ^G@f~uQXugQe#kT2Lc>M3ewB6>psZTP916A?L>lTXtdB0?sBm4ibhAr91 zJ(y|T>Tp_viTGb^;MG6)e$aBvH3XrNI^@?hzs%Z8pM`5!)aTr&%4zrfsQYqg6UFzP z_Qun3%?;^Iefj0#-r3L}3X`ec@2(V&G#Oh!?3Y#AwAeV=5JSeUGd(qLx-i zC-jEQLh|NP7PFsEY*QY9@{52u4Tb}F=}@G?I%3{$cE zGZ#!}0b&qZ`wB0Aad4Hi)8Tb$@@Ud9k9n{25=sSzV(xx#ps%Gfm5GBKumLkfr}@Xd zuEdLFPue&{vFMG7k4jC(_|V5VV1$WJsoYatIK4N8Y22F=pk9@aceh=;jT~%rs4;w& zVNfUzyjhC94uns+Zz z;-QyOy^&`WTsy(eHAsP;Ue72X|BS7b2Ip+9fo8MqYG5^M$smo+%zn9MPg6p-u{YNw`WN>gg@OK+=Fl+3{$n=V@u{Ps&kmdw)> z8(F)gxyNtH=ii5?+N1)bo~??A3;c=0zx>#nuyJ@80|f~{KXxUG@~10Uz9SH@!*a)g h;LlVLFSgVNLf#0BGb_43cbriGP)mD@I`jL_{|U!aXZrvE literal 0 HcmV?d00001 diff --git a/Doc/html/bsp___b_m_p_8h__incl.map b/Doc/html/bsp___b_m_p_8h__incl.map new file mode 100644 index 0000000..088c360 --- /dev/null +++ b/Doc/html/bsp___b_m_p_8h__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/Doc/html/bsp___b_m_p_8h__incl.md5 b/Doc/html/bsp___b_m_p_8h__incl.md5 new file mode 100644 index 0000000..ae835ba --- /dev/null +++ b/Doc/html/bsp___b_m_p_8h__incl.md5 @@ -0,0 +1 @@ +ba2603077eea24df840880690636543c \ No newline at end of file diff --git a/Doc/html/bsp___b_m_p_8h__incl.png b/Doc/html/bsp___b_m_p_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..05a49cb50a65d9ce3845678b99ad7c1e99d592a6 GIT binary patch literal 4115 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 literal 0 HcmV?d00001 diff --git a/Doc/html/bsp___b_m_p_8h_source.html b/Doc/html/bsp___b_m_p_8h_source.html new file mode 100644 index 0000000..f4972ca --- /dev/null +++ b/Doc/html/bsp___b_m_p_8h_source.html @@ -0,0 +1,212 @@ + + + + + + + +MF32BSP_XerolySkinner: D:/gitt/MicrochipFor32/bsp_Device/bsp_BMP.h 源文件 + + + + + + + + + +
+
+ + + + + + +
+
MF32BSP_XerolySkinner 2.0.0 +
+
C++版本的驱动库
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
载入中...
+
搜索中...
+
未找到
+
+
+
+
+ + +
+
+
bsp_BMP.h
+
+
+浏览该文件的文档.
1/*----------------------------------------------------------------------------------------------------
+
2 #
+
3 # Copyright (c) 2022 Yuankang Liang(XerolySkinner)
+
4 #
+
5 # 本软件按原样提供,无任何明示或暗示
+
6 # 在任何情况下,作者都不承担任何损害赔偿责任
+
7 #
+
8 # 使用的许可声明:
+
9 # 1. 不得歪曲本软件的来源,你不能声称你编写了原始软件.
+
10 # 2. 免费授予以任何目的,前提是版权声明出现在所有副本中.
+
11 # 并且版权声明和许可声明同时出现.
+
12 # 3. 你有使用,复制,修改,分发,和销售本软件的许可.
+
13 # 4. 如果你在产品中使用,产品文档中的声明是赞赏的但不是必须的.
+
14 # 5. 本通知不得从任何来源删除或更改.
+
15 #
+
16 # Yuankang Liang(XerolySkinner)
+
17 # E-mail:zabbcccbbaz@163.com
+
18 # QQ:2715099320
+
19 # Mobile Phone:13005636215
+
20 #
+
21 # All rights reserved.
+
22 */
+
23
+
33#pragma once
+
34#ifdef __cplusplus
+
35#include "varint.h"
+
36#include <stdlib.h>
+
38//----------------------------------------------------------------------------------------------------
+
39// 文件头
+
40#pragma pack(1)
+
44typedef struct
+
45{
+
46 u16 bfType; //文件标志.固定为'BM',用来识别BMP位图类型
+
47 u32 bfSize; //文件大小,占四个字节
+
48 u16 bfReserved1; //保留,总为0
+
49 u16 bfReserved2; //保留,总为0
+
50 u32 bfOffBits; //从文件开始到位图数据(bitmap data)开始之间的的偏移量
+ +
55typedef struct {
+
56 u32 biSize; //BITMAPINFOHEADER结构所需要的字数。
+
57 u32 biWidth; //图象的宽度,以象素为单位
+
58 u32 biHeight; //图象的高度,以象素为单位
+
59 u16 biPlanes; //为目标设备说明位面数,其值将总是被设为1
+
60 u16 biBitCount; //比特数/象素,其值为1、4、8、16、24、或32
+
61 u32 biCompression; //图象数据压缩的类型。其值可以是下述值之一:
+
62 //BI_RGB:没有压缩;
+
63 //BI_RLE8:每个象素8比特的RLE压缩编码,压缩格式由2字节组成(重复象素计数和颜色索引);
+
64 //BI_RLE4:每个象素4比特的RLE压缩编码,压缩格式由2字节组成
+
65 //BI_BITFIELDS:每个象素的比特由指定的掩码决定。
+
66 u32 biSizeImage; //图象的大小,以字节为单位。当用BI_RGB格式时,可设置为0
+
67 u32 biXPelsPerMeter; //水平分辨率,用象素/米表示
+
68 u32 biYPelsPerMeter; //垂直分辨率,用象素/米表示
+
69 u32 biClrUsed; //位图实际使用的彩色表中的颜色索引数
+
70 u32 biClrImportant; //对图象显示有重要影响的颜色索引的数目,如果是0,表示都重要。
+ +
75typedef struct{
+
76 u8 rgbBlue; //指定蓝色强度
+
77 u8 rgbGreen; //指定绿色强度
+
78 u8 rgbRed; //指定红色强度
+
79 u8 rgbReserved; //保留,设置为0
+
80 }_RGBQUAD;
+
84typedef struct{
+
85 _BITMAPFILEHEADER bmfHeader; //位图文件头
+
86 _BITMAPINFOHEADER bmiHeader; //位图信息头
+
87 _RGBQUAD bmiColors[256]; //调色板
+ +
89#pragma pack()
+
91//----------------------------------------------------------------------------------------------------
+
92// 头文件
+
93#pragma once
+
97class bsp_BMP {
+
98 public:
+
99 bsp_BMP(u32 Width, u32 Height);
+
100 ~bsp_BMP(void);
+
101 public:
+
102 void pels(u32 x, u32 y);
+
103 u32 giveData(void);
+
104 void delData(void);
+
105 void ColorsSet(u8 R, u8 G, u8 B,u32 i);
+
106 void sizeSet(u32 x, u32 y);
+
107 public:
+ + + +
111 };
+
113#endif
+
构建一个BMP类
Definition: bsp_BMP.h:97
+
void ColorsSet(u8 R, u8 G, u8 B, u32 i)
设置调色板
Definition: bsp_BMP.cpp:68
+
u8 * dat
数据区
Definition: bsp_BMP.h:110
+
void pels(u32 x, u32 y)
设置像素
Definition: bsp_BMP.cpp:45
+
void sizeSet(u32 x, u32 y)
设置图片大小
Definition: bsp_BMP.cpp:78
+
~bsp_BMP(void)
Definition: bsp_BMP.cpp:121
+
_BITMAPINFO BITMAPINFO
文件头
Definition: bsp_BMP.h:108
+
u32 Size
文件大小
Definition: bsp_BMP.h:109
+
void delData(void)
释放数据空间
Definition: bsp_BMP.cpp:59
+
u32 giveData(void)
给予数据空间
Definition: bsp_BMP.cpp:52
+
位图文件头
Definition: bsp_BMP.h:45
+ + + + + +
位图信息头
Definition: bsp_BMP.h:55
+
u32 biYPelsPerMeter
Definition: bsp_BMP.h:68
+ + + + +
u32 biClrImportant
Definition: bsp_BMP.h:70
+
u32 biXPelsPerMeter
Definition: bsp_BMP.h:67
+ + + + +
BMP文件头
Definition: bsp_BMP.h:84
+
_BITMAPFILEHEADER bmfHeader
Definition: bsp_BMP.h:85
+
_BITMAPINFOHEADER bmiHeader
Definition: bsp_BMP.h:86
+
调色板
Definition: bsp_BMP.h:75
+
u8 rgbGreen
Definition: bsp_BMP.h:77
+
u8 rgbReserved
Definition: bsp_BMP.h:79
+
u8 rgbRed
Definition: bsp_BMP.h:78
+
u8 rgbBlue
Definition: bsp_BMP.h:76
+
全局共用的标准类型表
+
uint8_t u8
8位无符号数类型
Definition: varint.h:40
+
uint16_t u16
16位无符号数类型
Definition: varint.h:41
+
uint32_t u32
32位无符号数类型
Definition: varint.h:42
+
+ + + + diff --git a/Doc/html/bsp___c_r_c_8cpp.html b/Doc/html/bsp___c_r_c_8cpp.html index e5a1be5..1f0f1be 100644 --- a/Doc/html/bsp___c_r_c_8cpp.html +++ b/Doc/html/bsp___c_r_c_8cpp.html @@ -91,7 +91,7 @@ bsp_CRC.cpp 的引用(Include)关系图: - + diff --git a/Doc/html/bsp___c_r_c_8cpp__incl.map b/Doc/html/bsp___c_r_c_8cpp__incl.map index 7937ad2..e92c839 100644 --- a/Doc/html/bsp___c_r_c_8cpp__incl.map +++ b/Doc/html/bsp___c_r_c_8cpp__incl.map @@ -1,6 +1,6 @@ - + diff --git a/Doc/html/bsp___c_r_c_8cpp__incl.md5 b/Doc/html/bsp___c_r_c_8cpp__incl.md5 index 4c5cd1e..9b7cf51 100644 --- a/Doc/html/bsp___c_r_c_8cpp__incl.md5 +++ b/Doc/html/bsp___c_r_c_8cpp__incl.md5 @@ -1 +1 @@ -1c13e627ea18cebdeca90e28952b2549 \ No newline at end of file +378a5be4b791bf720a7460767abe1117 \ No newline at end of file diff --git a/Doc/html/bsp___c_r_c_8h.html b/Doc/html/bsp___c_r_c_8h.html index fa7c8f2..552f4e2 100644 --- a/Doc/html/bsp___c_r_c_8h.html +++ b/Doc/html/bsp___c_r_c_8h.html @@ -89,7 +89,7 @@ bsp_CRC.h 的引用(Include)关系图:
- + diff --git a/Doc/html/bsp___c_r_c_8h__incl.map b/Doc/html/bsp___c_r_c_8h__incl.map index dc5aa1f..b83d8e0 100644 --- a/Doc/html/bsp___c_r_c_8h__incl.map +++ b/Doc/html/bsp___c_r_c_8h__incl.map @@ -1,5 +1,5 @@ - + diff --git a/Doc/html/bsp___c_r_c_8h__incl.md5 b/Doc/html/bsp___c_r_c_8h__incl.md5 index 4c45b6a..dfd84e9 100644 --- a/Doc/html/bsp___c_r_c_8h__incl.md5 +++ b/Doc/html/bsp___c_r_c_8h__incl.md5 @@ -1 +1 @@ -9bca80e74187dabc56e9d2ac38ab4110 \ No newline at end of file +aee28dc06f0158f8d6b147aafe8bb9a1 \ No newline at end of file diff --git a/Doc/html/bsp___c_r_c_8h_source.html b/Doc/html/bsp___c_r_c_8h_source.html index 402fb12..ced67f5 100644 --- a/Doc/html/bsp___c_r_c_8h_source.html +++ b/Doc/html/bsp___c_r_c_8h_source.html @@ -106,7 +106,7 @@ $(function() {
37// 函数
38u16 CRC16_MODBUS(u8 *pucFrame,u16 usLen);
u16 CRC16_MODBUS(u8 *pucFrame, u16 usLen)
Definition: bsp_CRC.cpp:91
- +
全局共用的标准类型表
uint8_t u8
8位无符号数类型
Definition: varint.h:40
uint16_t u16
16位无符号数类型
Definition: varint.h:41
diff --git a/Doc/html/bsp___calculus_8cpp.html b/Doc/html/bsp___calculus_8cpp.html new file mode 100644 index 0000000..a26e051 --- /dev/null +++ b/Doc/html/bsp___calculus_8cpp.html @@ -0,0 +1,108 @@ + + + + + + + +MF32BSP_XerolySkinner: D:/gitt/MicrochipFor32/bsp_Device/bsp_Calculus.cpp 文件参考 + + + + + + + + + +
+
+ + + + + + +
+
MF32BSP_XerolySkinner 2.0.0 +
+
C++版本的驱动库
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
载入中...
+
搜索中...
+
未找到
+
+
+
+
+ + +
+
+
bsp_Calculus.cpp 文件参考
+
+
+ +

离散微积分 +更多...

+
#include "bsp_Calculus.h"
+
+bsp_Calculus.cpp 的引用(Include)关系图:
+
+
+ + + + + + + +
+
+

浏览源代码.

+

详细描述

+

离散微积分

+ +

在文件 bsp_Calculus.cpp 中定义.

+
+ + + + diff --git a/Doc/html/bsp___calculus_8cpp__incl.map b/Doc/html/bsp___calculus_8cpp__incl.map new file mode 100644 index 0000000..18c0eb7 --- /dev/null +++ b/Doc/html/bsp___calculus_8cpp__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Doc/html/bsp___calculus_8cpp__incl.md5 b/Doc/html/bsp___calculus_8cpp__incl.md5 new file mode 100644 index 0000000..7050f06 --- /dev/null +++ b/Doc/html/bsp___calculus_8cpp__incl.md5 @@ -0,0 +1 @@ +55d6117803837208a63d5e074f58ac23 \ No newline at end of file diff --git a/Doc/html/bsp___calculus_8cpp__incl.png b/Doc/html/bsp___calculus_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..d6707d22a3f1862e6bf6a7a71d48cfe9c18645d3 GIT binary patch literal 5251 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 + + + + + + +MF32BSP_XerolySkinner: D:/gitt/MicrochipFor32/bsp_Device/bsp_Calculus.cpp 源文件 + + + + + + + + + +
+
+ + + + + + +
+
MF32BSP_XerolySkinner 2.0.0 +
+
C++版本的驱动库
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
载入中...
+
搜索中...
+
未找到
+
+
+
+
+ + +
+
+
bsp_Calculus.cpp
+
+
+浏览该文件的文档.
1/*----------------------------------------------------------------------------------------------------
+
2 #
+
3 # Copyright (c) 2022 Yuankang Liang(XerolySkinner)
+
4 #
+
5 # 本软件按原样提供,无任何明示或暗示
+
6 # 在任何情况下,作者都不承担任何损害赔偿责任
+
7 #
+
8 # 使用的许可声明:
+
9 # 1. 不得歪曲本软件的来源,你不能声称你编写了原始软件.
+
10 # 2. 免费授予以任何目的,前提是版权声明出现在所有副本中.
+
11 # 并且版权声明和许可声明同时出现.
+
12 # 3. 你有使用,复制,修改,分发,和销售本软件的许可.
+
13 # 4. 如果你在产品中使用,产品文档中的声明是赞赏的但不是必须的.
+
14 # 5. 本通知不得从任何来源删除或更改.
+
15 #
+
16 # Yuankang Liang(XerolySkinner)
+
17 # E-mail:zabbcccbbaz@163.com
+
18 # QQ:2715099320
+
19 # Mobile Phone:13005636215
+
20 #
+
21 # All rights reserved.
+
22 */
+
23
+
35//----------------------------------------------------------------------------------------------------
+
36// 头文件
+
37#include "bsp_Calculus.h"
+
39//----------------------------------------------------------------------------------------------------
+
40// 类函数
+ +
47 static float old=var;
+
48 float result= (var - old) / dt;
+
49 old = var;
+
50 return result;}
+
52//----------------------------------------------------------------------------------------------------
+
53// 类函数
+
59float bsp_Integral::Integral(float var) {
+
60 results += var * dt;
+
61 return results;}
+
62//----------------------------------------------------------------------------------------------------
+
67void bsp_Integral::Integral_set(float results) {
+ +
69//----------------------------------------------------------------------------------------------------
+ +
76 result_list = (float*)malloc(sizeof(float)* len);
+
77 result_len = len;
+ +
79 return (u32)result_list;}
+
80//----------------------------------------------------------------------------------------------------
+ +
87 static u32 len=0;
+
88 results += var * dt;
+
89 // 保存历史
+
90 result_list[len] = var * dt;
+
91 // 轮盘转
+
92 ++len;
+
93 if (len == result_len)len = 0;
+
94 // 去除尾值
+
95 if (len < result_len - 1)
+
96 results -= result_list[len + 1];
+
97 else
+
98 results -= result_list[0];
+
99 //
+
100 return results;}
+
101//----------------------------------------------------------------------------------------------------
+ +
106 free(result_list);
+
107 result_len = 0;
+
108 result_list = NULL;}
+
109//----------------------------------------------------------------------------------------------------
+ +
114 if (result_list == NULL)return;
+
115 for (u32 i = 0; i < result_len; i++)
+
116 result_list[i] = 0;}
+
离散微积分
+
float Differential(float var)
对数据微分
+
float dt
时间参数
Definition: bsp_Calculus.h:50
+
float dt
时间参数
Definition: bsp_Calculus.h:80
+
void Integral_dellist(void)
删除并释放历史缓冲区
+
float * result_list
数据历史
Definition: bsp_Calculus.h:77
+
u32 result_len
历史缓冲区长度
Definition: bsp_Calculus.h:78
+
float Integral_list(float var)
进行带有缓冲区的积分
+
u32 Integral_makelist(u32 len)
赋予历史缓存长度
+
float results
积分缓存
Definition: bsp_Calculus.h:79
+
void Integral_clslist(void)
清空历史缓存区
+
void Integral_set(float results)
重设当前积分值
+
float Integral(float var)
对数据积分
+
uint32_t u32
32位无符号数类型
Definition: varint.h:42
+
+ + + + diff --git a/Doc/html/bsp___calculus_8h.html b/Doc/html/bsp___calculus_8h.html new file mode 100644 index 0000000..4e6a043 --- /dev/null +++ b/Doc/html/bsp___calculus_8h.html @@ -0,0 +1,129 @@ + + + + + + + +MF32BSP_XerolySkinner: D:/gitt/MicrochipFor32/bsp_Device/bsp_Calculus.h 文件参考 + + + + + + + + + +
+
+ + + + + + +
+
MF32BSP_XerolySkinner 2.0.0 +
+
C++版本的驱动库
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
载入中...
+
搜索中...
+
未找到
+
+
+
+
+ + +
+
+
+
+
bsp_Calculus.h 文件参考
+
+
+ +

离散微积分 +更多...

+
#include <stdlib.h>
+#include "varint.h"
+
+bsp_Calculus.h 的引用(Include)关系图:
+
+
+ + + + + + +
+
+此图展示该文件直接或间接的被哪些文件引用了:
+
+
+ + + + +
+
+

浏览源代码.

+ + + + + + + + +

+类

class  bsp_Differential
 一个微分对象 更多...
 
class  bsp_Integral
 一个积分对象 更多...
 
+

详细描述

+

离散微积分

+ +

在文件 bsp_Calculus.h 中定义.

+
+ + + + diff --git a/Doc/html/bsp___calculus_8h__dep__incl.map b/Doc/html/bsp___calculus_8h__dep__incl.map new file mode 100644 index 0000000..23cd75a --- /dev/null +++ b/Doc/html/bsp___calculus_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/Doc/html/bsp___calculus_8h__dep__incl.md5 b/Doc/html/bsp___calculus_8h__dep__incl.md5 new file mode 100644 index 0000000..7229950 --- /dev/null +++ b/Doc/html/bsp___calculus_8h__dep__incl.md5 @@ -0,0 +1 @@ +3595893eb2f98cb9b95a064c9c342fb5 \ No newline at end of file diff --git a/Doc/html/bsp___calculus_8h__dep__incl.png b/Doc/html/bsp___calculus_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..02da26b3cc39fc6dd5957590324d72f3fa7b1e00 GIT binary patch literal 2383 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 literal 0 HcmV?d00001 diff --git a/Doc/html/bsp___calculus_8h__incl.map b/Doc/html/bsp___calculus_8h__incl.map new file mode 100644 index 0000000..4a90f5e --- /dev/null +++ b/Doc/html/bsp___calculus_8h__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/Doc/html/bsp___calculus_8h__incl.md5 b/Doc/html/bsp___calculus_8h__incl.md5 new file mode 100644 index 0000000..5ecfb2c --- /dev/null +++ b/Doc/html/bsp___calculus_8h__incl.md5 @@ -0,0 +1 @@ +701e6fece90a228d26b32443744f7b56 \ No newline at end of file diff --git a/Doc/html/bsp___calculus_8h__incl.png b/Doc/html/bsp___calculus_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..1c22c560611d7a1a17a9ab4ad559ce969fca80b3 GIT binary patch literal 4198 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 + + + + + + +MF32BSP_XerolySkinner: D:/gitt/MicrochipFor32/bsp_Device/bsp_Calculus.h 源文件 + + + + + + + + + +
+
+ + + + + + +
+
MF32BSP_XerolySkinner 2.0.0 +
+
C++版本的驱动库
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
载入中...
+
搜索中...
+
未找到
+
+
+
+
+ + +
+
+
bsp_Calculus.h
+
+
+浏览该文件的文档.
1/*----------------------------------------------------------------------------------------------------
+
2 #
+
3 # Copyright (c) 2022 Yuankang Liang(XerolySkinner)
+
4 #
+
5 # 本软件按原样提供,无任何明示或暗示
+
6 # 在任何情况下,作者都不承担任何损害赔偿责任
+
7 #
+
8 # 使用的许可声明:
+
9 # 1. 不得歪曲本软件的来源,你不能声称你编写了原始软件.
+
10 # 2. 免费授予以任何目的,前提是版权声明出现在所有副本中.
+
11 # 并且版权声明和许可声明同时出现.
+
12 # 3. 你有使用,复制,修改,分发,和销售本软件的许可.
+
13 # 4. 如果你在产品中使用,产品文档中的声明是赞赏的但不是必须的.
+
14 # 5. 本通知不得从任何来源删除或更改.
+
15 #
+
16 # Yuankang Liang(XerolySkinner)
+
17 # E-mail:zabbcccbbaz@163.com
+
18 # QQ:2715099320
+
19 # Mobile Phone:13005636215
+
20 #
+
21 # All rights reserved.
+
22 */
+
23
+
33#pragma once
+
34#ifdef __cplusplus
+
35#include <stdlib.h>
+
36#include "varint.h"
+
38//----------------------------------------------------------------------------------------------------
+
39// 类目
+ +
44 public:
+ + +
47 public:
+
48 float Differential(float var);
+
49 public:
+
50 float dt;
+
51 };
+
52//----------------------------------------------------------------------------------------------------
+ +
60 public:
+ + + + + +
66 free(result_list);
+
67 result_list = NULL;}
+
68 public:
+
69 float Integral(float var);
+
70 void Integral_set(float results);
+
71
+
72 float Integral_list(float var);
+ +
74 void Integral_dellist(void);
+
75 void Integral_clslist(void);
+
76 public:
+
77 float *result_list;
+ +
79 float results;
+
80 float dt;
+
81 };
+
83#endif
+
一个微分对象
Definition: bsp_Calculus.h:43
+
bsp_Differential(float dt)
Definition: bsp_Calculus.h:45
+
float Differential(float var)
对数据微分
+
float dt
时间参数
Definition: bsp_Calculus.h:50
+
一个积分对象
Definition: bsp_Calculus.h:59
+
~bsp_Integral(void)
Definition: bsp_Calculus.h:65
+
float dt
时间参数
Definition: bsp_Calculus.h:80
+
void Integral_dellist(void)
删除并释放历史缓冲区
+
float * result_list
数据历史
Definition: bsp_Calculus.h:77
+
u32 result_len
历史缓冲区长度
Definition: bsp_Calculus.h:78
+
float Integral_list(float var)
进行带有缓冲区的积分
+
u32 Integral_makelist(u32 len)
赋予历史缓存长度
+
float results
积分缓存
Definition: bsp_Calculus.h:79
+
void Integral_clslist(void)
清空历史缓存区
+
void Integral_set(float results)
重设当前积分值
+
float Integral(float var)
对数据积分
+
bsp_Integral(float dt)
Definition: bsp_Calculus.h:61
+
全局共用的标准类型表
+
uint32_t u32
32位无符号数类型
Definition: varint.h:42
+
+ + + + diff --git a/Doc/html/bsp___digit_8cpp.html b/Doc/html/bsp___digit_8cpp.html index e45d307..edd89af 100644 --- a/Doc/html/bsp___digit_8cpp.html +++ b/Doc/html/bsp___digit_8cpp.html @@ -88,7 +88,7 @@ bsp_Digit.cpp 的引用(Include)关系图: - + diff --git a/Doc/html/bsp___digit_8cpp__incl.map b/Doc/html/bsp___digit_8cpp__incl.map index 4434696..4b9cea5 100644 --- a/Doc/html/bsp___digit_8cpp__incl.map +++ b/Doc/html/bsp___digit_8cpp__incl.map @@ -1,7 +1,7 @@ - + diff --git a/Doc/html/bsp___digit_8cpp__incl.md5 b/Doc/html/bsp___digit_8cpp__incl.md5 index 4b50bf2..4f1c543 100644 --- a/Doc/html/bsp___digit_8cpp__incl.md5 +++ b/Doc/html/bsp___digit_8cpp__incl.md5 @@ -1 +1 @@ -042549b4c70be9512963c51b667a26c0 \ No newline at end of file +77705ff73775d9305def5b688629e2bf \ No newline at end of file diff --git a/Doc/html/bsp___digit_8h.html b/Doc/html/bsp___digit_8h.html index 453eede..a35920a 100644 --- a/Doc/html/bsp___digit_8h.html +++ b/Doc/html/bsp___digit_8h.html @@ -92,7 +92,7 @@ bsp_Digit.h 的引用(Include)关系图:
- + diff --git a/Doc/html/bsp___digit_8h__incl.map b/Doc/html/bsp___digit_8h__incl.map index d4cdaca..e9e58a8 100644 --- a/Doc/html/bsp___digit_8h__incl.map +++ b/Doc/html/bsp___digit_8h__incl.map @@ -1,6 +1,6 @@ - + diff --git a/Doc/html/bsp___digit_8h__incl.md5 b/Doc/html/bsp___digit_8h__incl.md5 index 2af484a..253b31f 100644 --- a/Doc/html/bsp___digit_8h__incl.md5 +++ b/Doc/html/bsp___digit_8h__incl.md5 @@ -1 +1 @@ -20ec23eb07beb642f39e5abcdfcd6068 \ No newline at end of file +5a2dd6c40815bfe731cf1667f129a274 \ No newline at end of file diff --git a/Doc/html/bsp___digit_8h_source.html b/Doc/html/bsp___digit_8h_source.html index f3139ae..9197e95 100644 --- a/Doc/html/bsp___digit_8h_source.html +++ b/Doc/html/bsp___digit_8h_source.html @@ -166,7 +166,7 @@ $(function() {
uint16_t GPIO_Pin_MOSIO
Definition: bsp_Digit.h:87
uint16_t GPIO_Pin_S_CLK
Definition: bsp_Digit.h:89
bool Polarity
共阴或共阳
Definition: bsp_Digit.h:85
- +
全局共用的标准类型表
uint8_t u8
8位无符号数类型
Definition: varint.h:40
uint16_t u16
16位无符号数类型
Definition: varint.h:41
diff --git a/Doc/html/bsp___i_i_c_8cpp.html b/Doc/html/bsp___i_i_c_8cpp.html index 7986def..84345ef 100644 --- a/Doc/html/bsp___i_i_c_8cpp.html +++ b/Doc/html/bsp___i_i_c_8cpp.html @@ -88,7 +88,7 @@ bsp_IIC.cpp 的引用(Include)关系图: - + diff --git a/Doc/html/bsp___i_i_c_8cpp__incl.map b/Doc/html/bsp___i_i_c_8cpp__incl.map index 6ae518c..c90cc0f 100644 --- a/Doc/html/bsp___i_i_c_8cpp__incl.map +++ b/Doc/html/bsp___i_i_c_8cpp__incl.map @@ -1,6 +1,6 @@ - + diff --git a/Doc/html/bsp___i_i_c_8cpp__incl.md5 b/Doc/html/bsp___i_i_c_8cpp__incl.md5 index 1b5d607..e7a33f9 100644 --- a/Doc/html/bsp___i_i_c_8cpp__incl.md5 +++ b/Doc/html/bsp___i_i_c_8cpp__incl.md5 @@ -1 +1 @@ -7a6a93f355491cd0f137e8e3f87c9c83 \ No newline at end of file +4cfab8bdd4e849699970e4e09d30f5b4 \ No newline at end of file diff --git a/Doc/html/bsp___i_i_c_8h.html b/Doc/html/bsp___i_i_c_8h.html index 954c321..576f598 100644 --- a/Doc/html/bsp___i_i_c_8h.html +++ b/Doc/html/bsp___i_i_c_8h.html @@ -90,7 +90,7 @@ bsp_IIC.h 的引用(Include)关系图:
- + diff --git a/Doc/html/bsp___i_i_c_8h__incl.map b/Doc/html/bsp___i_i_c_8h__incl.map index cad090b..397e1cd 100644 --- a/Doc/html/bsp___i_i_c_8h__incl.map +++ b/Doc/html/bsp___i_i_c_8h__incl.map @@ -1,5 +1,5 @@ - + diff --git a/Doc/html/bsp___i_i_c_8h__incl.md5 b/Doc/html/bsp___i_i_c_8h__incl.md5 index 09bca1b..d2b7647 100644 --- a/Doc/html/bsp___i_i_c_8h__incl.md5 +++ b/Doc/html/bsp___i_i_c_8h__incl.md5 @@ -1 +1 @@ -610e9a8f2c0ec7b8e152d816a0343cac \ No newline at end of file +972b83dc156c6576e84f65cfba424ab7 \ No newline at end of file diff --git a/Doc/html/bsp___i_i_c_8h_source.html b/Doc/html/bsp___i_i_c_8h_source.html index 4a66808..be12aad 100644 --- a/Doc/html/bsp___i_i_c_8h_source.html +++ b/Doc/html/bsp___i_i_c_8h_source.html @@ -149,7 +149,7 @@ $(function() {
virtual u8 IIC_SDA(u8 var)=0
控制SDA管脚口
void IIC_SendByte(u8 byt)
发送IIC一个字节信号
Definition: bsp_IIC.cpp:98
void IIC_Stop(void)
发送IIC停止信号
Definition: bsp_IIC.cpp:59
- +
全局共用的标准类型表
uint8_t u8
8位无符号数类型
Definition: varint.h:40
uint32_t u32
32位无符号数类型
Definition: varint.h:42
diff --git a/Doc/html/bsp___i_i_c___s_t_m32_8cpp.html b/Doc/html/bsp___i_i_c___s_t_m32_8cpp.html index bfb2853..441969e 100644 --- a/Doc/html/bsp___i_i_c___s_t_m32_8cpp.html +++ b/Doc/html/bsp___i_i_c___s_t_m32_8cpp.html @@ -90,7 +90,7 @@ bsp_IIC_STM32.cpp 的引用(Include)关系图: - +
diff --git a/Doc/html/bsp___i_i_c___s_t_m32_8cpp__incl.map b/Doc/html/bsp___i_i_c___s_t_m32_8cpp__incl.map index f6ab6c8..8b6616c 100644 --- a/Doc/html/bsp___i_i_c___s_t_m32_8cpp__incl.map +++ b/Doc/html/bsp___i_i_c___s_t_m32_8cpp__incl.map @@ -2,7 +2,7 @@ - +
diff --git a/Doc/html/bsp___i_i_c___s_t_m32_8cpp__incl.md5 b/Doc/html/bsp___i_i_c___s_t_m32_8cpp__incl.md5 index 0494dda..751a736 100644 --- a/Doc/html/bsp___i_i_c___s_t_m32_8cpp__incl.md5 +++ b/Doc/html/bsp___i_i_c___s_t_m32_8cpp__incl.md5 @@ -1 +1 @@ -a32b121090453bd1ba787e9592915435 \ No newline at end of file +99ec78978e193eea555b179de975dcae \ No newline at end of file diff --git a/Doc/html/bsp___i_i_c___s_t_m32_8cpp_source.html b/Doc/html/bsp___i_i_c___s_t_m32_8cpp_source.html index 2b51136..eea20e2 100644 --- a/Doc/html/bsp___i_i_c___s_t_m32_8cpp_source.html +++ b/Doc/html/bsp___i_i_c___s_t_m32_8cpp_source.html @@ -128,17 +128,17 @@ $(function() {
80 else {
81 return HAL_GPIO_ReadPin(GPIOx_SCK, GPIO_Pin_SCK);
82 }}
- -
90 if (var == IIC_RESET) {
-
91 HAL_GPIO_WritePin(GPIOx_SDA, GPIO_Pin_SDA, GPIO_PIN_RESET);
-
92 return 2;}
-
93 else if (var == IIC_SET) {
-
94 HAL_GPIO_WritePin(GPIOx_SDA, GPIO_Pin_SDA, GPIO_PIN_SET);
-
95 return 2;}
-
96 else {
-
97 return HAL_GPIO_ReadPin(GPIOx_SDA, GPIO_Pin_SDA);
-
98 }}
-
100
+ +
89 if (var == IIC_RESET) {
+
90 HAL_GPIO_WritePin(GPIOx_SDA, GPIO_Pin_SDA, GPIO_PIN_RESET);
+
91 return 2;}
+
92 else if (var == IIC_SET) {
+
93 HAL_GPIO_WritePin(GPIOx_SDA, GPIO_Pin_SDA, GPIO_PIN_SET);
+
94 return 2;}
+
95 else {
+
96 return HAL_GPIO_ReadPin(GPIOx_SDA, GPIO_Pin_SDA);
+
97 }}
+
99
@ IIC_RESET
管脚复位状态
Definition: bsp_IIC.h:45
@ IIC_SET
管脚置位状态
Definition: bsp_IIC.h:46
实现针对STM32的软件IIC类
@@ -147,7 +147,7 @@ $(function() {
GPIO_TypeDef * GPIOx_SCK
Definition: bsp_IIC_STM32.h:63
uint16_t GPIO_Pin_SDA
Definition: bsp_IIC_STM32.h:66
uint16_t GPIO_Pin_SCK
Definition: bsp_IIC_STM32.h:64
-
u8 IIC_SDA(u8 var)
控制SDA管脚口
+
u8 IIC_SDA(u8 var)
控制SDA管脚口
GPIO_TypeDef * GPIOx_SDA
Definition: bsp_IIC_STM32.h:65
virtual void IIC_Delay(void)
时序中的延时 在此处短暂延时
uint8_t u8
8位无符号数类型
Definition: varint.h:40
diff --git a/Doc/html/bsp___i_i_c___s_t_m32_8h.html b/Doc/html/bsp___i_i_c___s_t_m32_8h.html index 6ce3d21..de50e17 100644 --- a/Doc/html/bsp___i_i_c___s_t_m32_8h.html +++ b/Doc/html/bsp___i_i_c___s_t_m32_8h.html @@ -92,7 +92,7 @@ bsp_IIC_STM32.h 的引用(Include)关系图: - + diff --git a/Doc/html/bsp___i_i_c___s_t_m32_8h__incl.map b/Doc/html/bsp___i_i_c___s_t_m32_8h__incl.map index eee0a43..43dbbd2 100644 --- a/Doc/html/bsp___i_i_c___s_t_m32_8h__incl.map +++ b/Doc/html/bsp___i_i_c___s_t_m32_8h__incl.map @@ -1,7 +1,7 @@ - + diff --git a/Doc/html/bsp___i_i_c___s_t_m32_8h__incl.md5 b/Doc/html/bsp___i_i_c___s_t_m32_8h__incl.md5 index 4c6f2fa..c51b6e3 100644 --- a/Doc/html/bsp___i_i_c___s_t_m32_8h__incl.md5 +++ b/Doc/html/bsp___i_i_c___s_t_m32_8h__incl.md5 @@ -1 +1 @@ -434d1ac463c09204629681b9859e90e5 \ No newline at end of file +d93573a6061a468cee600bcb26da56c0 \ No newline at end of file diff --git a/Doc/html/bsp___i_i_c___s_t_m32_8h_source.html b/Doc/html/bsp___i_i_c___s_t_m32_8h_source.html index 38f4a6c..9bd5aa9 100644 --- a/Doc/html/bsp___i_i_c___s_t_m32_8h_source.html +++ b/Doc/html/bsp___i_i_c___s_t_m32_8h_source.html @@ -136,11 +136,11 @@ $(function() {
GPIO_TypeDef * GPIOx_SCK
Definition: bsp_IIC_STM32.h:63
uint16_t GPIO_Pin_SDA
Definition: bsp_IIC_STM32.h:66
uint16_t GPIO_Pin_SCK
Definition: bsp_IIC_STM32.h:64
-
u8 IIC_SDA(u8 var)
控制SDA管脚口
+
u8 IIC_SDA(u8 var)
控制SDA管脚口
GPIO_TypeDef * GPIOx_SDA
Definition: bsp_IIC_STM32.h:65
virtual void IIC_Delay(void)
时序中的延时 在此处短暂延时
IIC的基础实现方法 留下三个保护性接口需要实现,分别是控制时钟,控制数据,延时函数
Definition: bsp_IIC.h:56
- +
全局共用的标准类型表
uint8_t u8
8位无符号数类型
Definition: varint.h:40
diff --git a/Doc/html/bsp___m_a_x6675_8cpp.html b/Doc/html/bsp___m_a_x6675_8cpp.html index e4e9c9e..b2f1005 100644 --- a/Doc/html/bsp___m_a_x6675_8cpp.html +++ b/Doc/html/bsp___m_a_x6675_8cpp.html @@ -88,7 +88,7 @@ bsp_MAX6675.cpp 的引用(Include)关系图: - + diff --git a/Doc/html/bsp___m_a_x6675_8cpp__incl.map b/Doc/html/bsp___m_a_x6675_8cpp__incl.map index 9285654..1bf9030 100644 --- a/Doc/html/bsp___m_a_x6675_8cpp__incl.map +++ b/Doc/html/bsp___m_a_x6675_8cpp__incl.map @@ -1,7 +1,7 @@ - + diff --git a/Doc/html/bsp___m_a_x6675_8cpp__incl.md5 b/Doc/html/bsp___m_a_x6675_8cpp__incl.md5 index bf7cfd6..c9677c2 100644 --- a/Doc/html/bsp___m_a_x6675_8cpp__incl.md5 +++ b/Doc/html/bsp___m_a_x6675_8cpp__incl.md5 @@ -1 +1 @@ -c3412ba50491fb15b2e98d622a058257 \ No newline at end of file +edece428a1865e9468bf81418d1c614d \ No newline at end of file diff --git a/Doc/html/bsp___m_a_x6675_8h.html b/Doc/html/bsp___m_a_x6675_8h.html index 7584030..50aebe6 100644 --- a/Doc/html/bsp___m_a_x6675_8h.html +++ b/Doc/html/bsp___m_a_x6675_8h.html @@ -90,7 +90,7 @@ bsp_MAX6675.h 的引用(Include)关系图:
- + diff --git a/Doc/html/bsp___m_a_x6675_8h__incl.map b/Doc/html/bsp___m_a_x6675_8h__incl.map index 81793e9..ed9d508 100644 --- a/Doc/html/bsp___m_a_x6675_8h__incl.map +++ b/Doc/html/bsp___m_a_x6675_8h__incl.map @@ -1,6 +1,6 @@ - + diff --git a/Doc/html/bsp___m_a_x6675_8h__incl.md5 b/Doc/html/bsp___m_a_x6675_8h__incl.md5 index 50ca5d4..9448211 100644 --- a/Doc/html/bsp___m_a_x6675_8h__incl.md5 +++ b/Doc/html/bsp___m_a_x6675_8h__incl.md5 @@ -1 +1 @@ -c7878948260ba41829bba5fa91f57c35 \ No newline at end of file +e94bd0298a4a163f1850dfb7bc77d139 \ No newline at end of file diff --git a/Doc/html/bsp___m_a_x6675_8h_source.html b/Doc/html/bsp___m_a_x6675_8h_source.html index a3b317c..6192ddc 100644 --- a/Doc/html/bsp___m_a_x6675_8h_source.html +++ b/Doc/html/bsp___m_a_x6675_8h_source.html @@ -124,7 +124,7 @@ $(function() {
SPI_HandleTypeDef * hspi
Definition: bsp_MAX6675.h:57
uint16_t GPIO_Pin_CS
Definition: bsp_MAX6675.h:59
float ReadTemperature(void)
访问目前温度
Definition: bsp_MAX6675.cpp:64
- +
全局共用的标准类型表
待办事项:
在此处填写初始化程序