嵌入式课程学习记录(7)

作业

1.2个或以上同学相互连接,利用CAN通信,向对方发送带有本人姓名的信息。连线方式:按基本原理性电路(不带收发器芯片)连接,参考教材图10-1。

连接方式如下图所示

现实连线方式

编程实现

首先要设置参数,设置本地ID为0X0B,设置发送过去的ID为0X0A,设置位速率为36

初始化CAN模块,使能CAN模块中断

发送数据

发送数据后会进入中断

编写中断处理程序

void CAN1_RX0_IRQHandler(void)
{
	uint8_t buff[8];
	uint8_t len = 0;
	DISABLE_INTERRUPTS;
	//【***CAN模块接收一帧数据***】
	len = can_recv(CAN_1, buff);
	if(len >= 0)
	{
		uart_sendN(UART_Debug, len, buff);
	}
	ENABLE_INTERRUPTS;
}

会接收一帧CAN数据并通过UART发送出去

运行结果

2.在ADC实验中,结合热敏电阻,分别通过触摸芯片表面和热敏电阻,引起A/D值变化,显示芯片内部温度和当前温度。

首先使用构件初始化ADC

然后使用

将得到的A/D值经过换算再进行输出

换算的两个函数如下

//============================================================================
//函数名称:Regression_Ext_Temp
//功能概要:将读到的环境温度AD值转换为实际温度
//参数说明:tmpAD:通过adc_read函数得到的AD值
//函数返回:实际温度值
//============================================================================

float Regression_Ext_Temp(uint16_t tmpAD)
{
    float Vtemp,Rtemp,temp;
    if(tmpAD<=72)
    {
       return -274;
    }
    Vtemp = (tmpAD*3300.0)/4096;
    Rtemp = Vtemp/(3300.0 - Vtemp)*10000.0;
    temp = (1/(log(Rtemp/10000.0)/3950.0 + (1/(273.15 + 25)))) - 273.15 + 0.5; 
    return temp; 

}
//============================================================================
//函数名称:Regression_MCU_Temp
//功能概要:将读到的mcu温度AD值转换为实际温度
//参数说明:mcu_temp_AD:通过adc_read函数得到的AD值
//函数返回:实际温度值
//============================================================================
float Regression_MCU_Temp(uint16_t mcu_temp_AD)
{
	float mcu_temp_result;
	mcu_temp_result=(float)(6+55+(100*((float)(mcu_temp_AD) - AD_CAL1))/(AD_CAL2 - AD_CAL1));
	return mcu_temp_result;
}

运行结果

将手放到热敏电阻上

3.用实验验证,对于有数据的某扇区,如果没有擦除Flash_erase,可否写入新数据?注:扇区号为学号 后2位,数据文本中要有姓名。

修改了一下示例文件的代码顺序

不擦除扇区就直接往里面写数据

结果如下

内容被改写了,看样子是可以的,但是经过提醒,想起来还要再检查一下

进入到flash.c文件,检查flash_write函数

在这里,设计者应该是为了保险起见,写的时候都先默认擦除了扇区。

将它注释掉再运行

可以看到这次的内容就是一样的,说明没有被写进去。

得出结论,不擦除扇区,是不能写数据进去的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值