①、瑞萨都已经封装好了,所以不用太专注于底层。
②、还有就是Demo,尽量去用人家的方法编程。
S124及其他的都是高电平点亮LED,如初始化配置为输入高电平则LED就会被点亮。
回调功能即callback,它是指事件发生时调用的功能。
例如,总线错误中断处理程序在r_bsp中实现。您可能想知道何时发生总线错误。为了提醒您,可以向r_bsp提供回调函数。
发生总线错误时,r_bsp将跳转到提供的回调函数,并且用户可以处理该错误。中断回调函数应保持简短并谨慎处理,因为当调用它们时,MCU仍将位于中断内部,因此将延迟所有未决的中断。
1、IO端口
写入引脚之前要先配置引脚相当于提前初始化。
写入一个引脚:g_ioport.p_api->pinWrite(IOPORT_PORT_01_PIN_03 , IOPORT_LEVEL_LOW);
写入多个引脚:
g_ioport.p_api->portWrite(IOPORT_PORT_01 , led[i],0xFFFF);
led[i]可以是0到7八个引脚的电平的数组, {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01}
写入1点亮,而0xFFFF是指0到15个引脚都被选中而可以操作写入高低电平。
有的引脚不让配置该怎么办?
2、usart使用
1、配置Threads、Pins,特别是通道要重点看一下。
牵扯到的函数:
//打开
g_uart0.p_api->open(g_uart0.p_ctrl, g_uart0.p_cfg);
//写
g_uart0.p_api->write(g_uart0.p_ctrl, uart0_buf, uart0_send_num);
3、定时器使用
配置Threads,完成的内容如点灯就是在回调里完成,而配置回调就需要配置优先级,不然会出错。
牵扯到的函数:
g_timer0.p_api->open(g_timer0.p_ctrl, g_timer0.p_cfg);
//启动定时器
g_timer0.p_api->start(g_timer0.p_ctrl);
4、延时函数
R_BSP_SoftwareDelay(100, BSP_DELAY_UNITS_MILLISECONDS);
5、瑞萨有的文件压缩也大开不了,那就可以寻找select root directory打开
6、I2C read 是读到一个数组里边,write也是写字节到I2C从地址里边。
7、看门狗:看门狗是单片机里的一种技术(软硬件都可以),其目的是为了保护芯片避免其进入死循环(或者说程序跑飞)。看门狗有一个输入端和一个输出端。看门狗和单片机程序的主体部分连接,如果主体部分运行正常,那么每一段时间就会给看门狗的输入端一个信号,这时候看门狗就会知道程序运行正常,就不会做出反应。如果看门狗较长一段时间内没有收到信号,说明程序运行不正常,此时由看门狗输出一个信号,该信号会让单片机的主体程序复位进而起到保护的作用。
8、 单片机定时器工作原理
实质是计数器,脉冲每一次下降沿,计数寄存器数值将加1。
计数的脉冲如果来源于单片机内部的晶振,由于其周期极为准确,这时称为定时器。
计数的脉冲如果来源于单片机外部的引脚,由于其周期一般不准确,这时称为计数器。
9、tx_thread_sleep(1)等于10ms
10、经研究发现瑞萨串口框架有问题, 通过uart read数据时,即使不读串口也会发送默认数据(如0),当读一次时串口会一直发送读到的数据;因此尽量用uart hal层函数,因为同样的代码逻辑它没有问题。