Commit efc49c55 authored by Damien George's avatar Damien George
Browse files

stmhal: Improve CAN print function.

parent 6a15ac80
...@@ -144,7 +144,7 @@ STATIC void pyb_can_print(void (*print)(void *env, const char *fmt, ...), void * ...@@ -144,7 +144,7 @@ STATIC void pyb_can_print(void (*print)(void *env, const char *fmt, ...), void *
if (!self->is_enabled) { if (!self->is_enabled) {
print(env, "CAN(%u)", self->can_id); print(env, "CAN(%u)", self->can_id);
} else { } else {
print(env, "CAN(%u, ", self->can_id); print(env, "CAN(%u, CAN.", self->can_id);
qstr mode; qstr mode;
switch (self->can.Init.Mode) { switch (self->can.Init.Mode) {
case CAN_MODE_NORMAL: mode = MP_QSTR_NORMAL; break; case CAN_MODE_NORMAL: mode = MP_QSTR_NORMAL; break;
...@@ -152,7 +152,7 @@ STATIC void pyb_can_print(void (*print)(void *env, const char *fmt, ...), void * ...@@ -152,7 +152,7 @@ STATIC void pyb_can_print(void (*print)(void *env, const char *fmt, ...), void *
case CAN_MODE_SILENT: mode = MP_QSTR_SILENT; break; case CAN_MODE_SILENT: mode = MP_QSTR_SILENT; break;
case CAN_MODE_SILENT_LOOPBACK: default: mode = MP_QSTR_SILENT_LOOPBACK; break; case CAN_MODE_SILENT_LOOPBACK: default: mode = MP_QSTR_SILENT_LOOPBACK; break;
} }
print(env, "%s, ", qstr_str(mode)); print(env, "%s, extframe=", qstr_str(mode));
if (self->extframe) { if (self->extframe) {
mode = MP_QSTR_True; mode = MP_QSTR_True;
} else { } else {
...@@ -162,7 +162,7 @@ STATIC void pyb_can_print(void (*print)(void *env, const char *fmt, ...), void * ...@@ -162,7 +162,7 @@ STATIC void pyb_can_print(void (*print)(void *env, const char *fmt, ...), void *
} }
} }
/// \method init(mode, prescaler=100, *, sjw=1, bs1=6, bs2=8) /// \method init(mode, extframe=False, prescaler=100, *, sjw=1, bs1=6, bs2=8)
/// ///
/// Initialise the CAN bus with the given parameters: /// Initialise the CAN bus with the given parameters:
/// ///
...@@ -184,6 +184,7 @@ STATIC mp_obj_t pyb_can_init_helper(pyb_can_obj_t *self, mp_uint_t n_args, const ...@@ -184,6 +184,7 @@ STATIC mp_obj_t pyb_can_init_helper(pyb_can_obj_t *self, mp_uint_t n_args, const
mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args); mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
self->extframe = args[1].u_bool; self->extframe = args[1].u_bool;
// set the CAN configuration values // set the CAN configuration values
memset(&self->can, 0, sizeof(self->can)); memset(&self->can, 0, sizeof(self->can));
CAN_InitTypeDef *init = &self->can.Init; CAN_InitTypeDef *init = &self->can.Init;
......
from pyb import CAN from pyb import CAN
can = CAN(1, CAN.LOOPBACK) can = CAN(1)
print(can)
can.init(CAN.LOOPBACK)
print(can) print(can)
print(can.any(0)) print(can.any(0))
can.send('abcd', 123) can.send('abcd', 123)
print(can.any(0)) print(can.any(0))
print(can.recv(0)) print(can.recv(0))
...@@ -37,6 +41,3 @@ else: ...@@ -37,6 +41,3 @@ else:
print('passed') print('passed')
else: else:
print('failed, wrong data received') print('failed, wrong data received')
print('end')
\ No newline at end of file
CAN(1, LOOPBACK, False) CAN(1)
CAN(1, CAN.LOOPBACK, extframe=False)
False False
True True
(123, 0, 0, b'abcd') (123, 0, 0, b'abcd')
(2047, 0, 0, b'abcd') (2047, 0, 0, b'abcd')
(0, 0, 0, b'abcd') (0, 0, 0, b'abcd')
passed passed
CAN(1, LOOPBACK, True) CAN(1, CAN.LOOPBACK, extframe=True)
passed passed
end
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment