diff --git a/examples/stm32/f1/lisa-m-1/can/can.c b/examples/stm32/f1/lisa-m-1/can/can.c
index 3673996..9f132c3 100644
--- a/examples/stm32/f1/lisa-m-1/can/can.c
+++ b/examples/stm32/f1/lisa-m-1/can/can.c
@@ -18,12 +18,13 @@
* along with this library. If not, see .
*/
-#include
-#include
-#include
+#include
#include
#include
#include
+#include
+#include
+#include
struct can_tx_msg {
uint32_t std_id;
@@ -195,11 +196,11 @@ void sys_tick_handler(void)
void usb_lp_can_rx0_isr(void)
{
- uint32_t id, fmi;
+ uint32_t id;
bool ext, rtr;
- uint8_t length, data[8];
+ uint8_t fmi, length, data[8];
- can_receive(CAN1, 0, false, &id, &ext, &rtr, &fmi, &length, data);
+ can_receive(CAN1, 0, false, &id, &ext, &rtr, &fmi, &length, data, NULL);
if (data[0] & 1)
gpio_clear(GPIOA, GPIO8);
diff --git a/examples/stm32/f1/lisa-m-2/can/can.c b/examples/stm32/f1/lisa-m-2/can/can.c
index 5703a4f..2a54492 100644
--- a/examples/stm32/f1/lisa-m-2/can/can.c
+++ b/examples/stm32/f1/lisa-m-2/can/can.c
@@ -18,12 +18,13 @@
* along with this library. If not, see .
*/
-#include
-#include
-#include
+#include
#include
#include
#include
+#include
+#include
+#include
struct can_tx_msg {
uint32_t std_id;
@@ -195,11 +196,11 @@ void sys_tick_handler(void)
void usb_lp_can_rx0_isr(void)
{
- uint32_t id, fmi;
+ uint32_t id;
bool ext, rtr;
- uint8_t length, data[8];
+ uint8_t fmi, length, data[8];
- can_receive(CAN1, 0, false, &id, &ext, &rtr, &fmi, &length, data);
+ can_receive(CAN1, 0, false, &id, &ext, &rtr, &fmi, &length, data, NULL);
if (data[0] & 1)
gpio_clear(GPIOA, GPIO8);
diff --git a/examples/stm32/f1/obldc-strip/can/can.c b/examples/stm32/f1/obldc-strip/can/can.c
index fc21809..5e7ae2a 100644
--- a/examples/stm32/f1/obldc-strip/can/can.c
+++ b/examples/stm32/f1/obldc-strip/can/can.c
@@ -17,6 +17,7 @@
* along with this library. If not, see .
*/
+#include
#include
#include
#include
@@ -173,11 +174,11 @@ void sys_tick_handler(void)
void usb_lp_can_rx0_isr(void)
{
- uint32_t id, fmi;
+ uint32_t id;
bool ext, rtr;
- uint8_t length, data[8];
+ uint8_t fmi, length, data[8];
- can_receive(CAN1, 0, false, &id, &ext, &rtr, &fmi, &length, data);
+ can_receive(CAN1, 0, false, &id, &ext, &rtr, &fmi, &length, data, NULL);
if (data[0] & 0x40)
gpio_clear(GPIOB, GPIO4);
diff --git a/examples/stm32/f1/obldc/can/can.c b/examples/stm32/f1/obldc/can/can.c
index 5b6d4f7..5d987ba 100644
--- a/examples/stm32/f1/obldc/can/can.c
+++ b/examples/stm32/f1/obldc/can/can.c
@@ -18,12 +18,13 @@
* along with this library. If not, see .
*/
-#include
-#include
-#include
+#include
#include
#include
#include
+#include
+#include
+#include
struct can_tx_msg {
uint32_t std_id;
@@ -177,11 +178,11 @@ void sys_tick_handler(void)
void usb_lp_can_rx0_isr(void)
{
- uint32_t id, fmi;
+ uint32_t id;
bool ext, rtr;
- uint8_t length, data[8];
+ uint8_t fmi, length, data[8];
- can_receive(CAN1, 0, false, &id, &ext, &rtr, &fmi, &length, data);
+ can_receive(CAN1, 0, false, &id, &ext, &rtr, &fmi, &length, data, NULL);
if (data[0] & 1)
gpio_clear(GPIOA, GPIO6);
diff --git a/examples/stm32/f3/stm32f3-discovery/i2c/i2c.c b/examples/stm32/f3/stm32f3-discovery/i2c/i2c.c
index 5c3176d..32307d3 100644
--- a/examples/stm32/f3/stm32f3-discovery/i2c/i2c.c
+++ b/examples/stm32/f3/stm32f3-discovery/i2c/i2c.c
@@ -54,14 +54,13 @@ static void i2c_setup(void)
i2c_reset(I2C1);
/* Setup GPIO pin GPIO_USART2_TX/GPIO9 on GPIO port A for transmit. */
gpio_mode_setup(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO6 | GPIO7);
- gpio_set_af(GPIOB, GPIO_AF4, GPIO6| GPIO7);
+ gpio_set_af(GPIOB, GPIO_AF4, GPIO6 | GPIO7);
i2c_peripheral_disable(I2C1);
//configure ANFOFF DNF[3:0] in CR1
i2c_enable_analog_filter(I2C1);
i2c_set_digital_filter(I2C1, I2C_CR1_DNF_DISABLED);
- //Configure PRESC[3:0] SDADEL[3:0] SCLDEL[3:0] SCLH[7:0] SCLL[7:0]
- // in TIMINGR
- i2c_100khz_i2cclk8mhz(I2C1);
+ /* HSI is at 8Mhz */
+ i2c_set_speed(I2C1, i2c_speed_sm_100k, 8);
//configure No-Stretch CR1 (only relevant in slave mode)
i2c_enable_stretching(I2C1);
//addressing mode
@@ -134,9 +133,6 @@ static void clock_setup(void)
#define ACC_OUT_X_L_A 0x28
#define ACC_OUT_X_H_A 0x29
-// gpio_port_write(GPIOE, (I2C_ISR(i2c) & 0xFF) << 8);
-// my_usart_print_int(USART2, (I2C_ISR(i2c) & 0xFF));
-
int main(void)
{
clock_setup();
@@ -144,25 +140,24 @@ int main(void)
usart_setup();
printf("Hello, we're running\n");
i2c_setup();
- /*uint8_t data[1]={(0x4 << ACC_CTRL_REG1_A_ODR_SHIFT) | ACC_CTRL_REG1_A_XEN};*/
- uint8_t data[1]={0x97};
- write_i2c(I2C1, I2C_ACC_ADDR, ACC_CTRL_REG1_A, 1, data);
- data[0]=0x08;
- write_i2c(I2C1, I2C_ACC_ADDR, ACC_CTRL_REG4_A, 1, data);
+ uint8_t cmd = ACC_CTRL_REG1_A;
+ uint8_t data;
+ i2c_transfer7(I2C1, I2C_ACC_ADDR, &cmd, 1, &data, 1);
+ cmd = ACC_CTRL_REG4_A;
+ i2c_transfer7(I2C1, I2C_ACC_ADDR, &cmd, 1, &data, 1);
int16_t acc_x;
while (1) {
- read_i2c(I2C1, I2C_ACC_ADDR, ACC_STATUS, 1, data);
- /*my_usart_print_int(USART2, data[0]);*/
- read_i2c(I2C1, I2C_ACC_ADDR, ACC_OUT_X_L_A, 1, data);
- acc_x=data[0];
- read_i2c(I2C1, I2C_ACC_ADDR, ACC_OUT_X_H_A, 1, data);
- acc_x|=(data[0] << 8);
+ cmd = ACC_STATUS;
+ i2c_transfer7(I2C1, I2C_ACC_ADDR, &cmd, 1, &data, 1);
+ cmd = ACC_OUT_X_L_A;
+ i2c_transfer7(I2C1, I2C_ACC_ADDR, &cmd, 1, &data, 1);
+ acc_x = data;
+ cmd = ACC_OUT_X_H_A;
+ i2c_transfer7(I2C1, I2C_ACC_ADDR, &cmd, 1, &data, 1);
+ acc_x |= ((uint16_t)data << 8);
printf("data was %d\n", acc_x);
- //int i;
- //for (i = 0; i < 800000; i++) /* Wait a bit. */
- // __asm__("nop");
}
return 0;
diff --git a/examples/stm32/l1/stm32l-discovery/button-irq-printf-lowpower/main.c b/examples/stm32/l1/stm32l-discovery/button-irq-printf-lowpower/main.c
index 654b52c..2d05149 100644
--- a/examples/stm32/l1/stm32l-discovery/button-irq-printf-lowpower/main.c
+++ b/examples/stm32/l1/stm32l-discovery/button-irq-printf-lowpower/main.c
@@ -265,7 +265,7 @@ static void reset_clocks(void)
.ppre1 = RCC_CFGR_PPRE1_HCLK_NODIV,
.ppre2 = RCC_CFGR_PPRE2_HCLK_NODIV,
.voltage_scale = PWR_SCALE2,
- .flash_config = FLASH_ACR_LATENCY_0WS,
+ .flash_waitstates = FLASH_ACR_LATENCY_0WS,
.apb1_frequency = 4194000,
.apb2_frequency = 4194000,
.msi_range = RCC_ICSCR_MSIRANGE_4MHZ,
diff --git a/libopencm3 b/libopencm3
index 8c74128..e3c78b8 160000
--- a/libopencm3
+++ b/libopencm3
@@ -1 +1 @@
-Subproject commit 8c74128ff6aaa2f785d8e994e82746a6e937e46c
+Subproject commit e3c78b88251c68b6b87240e6ed86f825a16a18ac