我试图通过Beaglebone Black的UART0打印字符串.引导程序初始化UART0,我只需要写字符.我做了一个简单的功能
void uart_put(unsigned char c)
{
while((UART0->LSR_r & 32) == 0);
UART0->THR = c;
}
Run Code Online (Sandbox Code Playgroud)
从启动代码调用以下函数我只是在此函数中打印字符.
#define SIZE_OF_ARRAY 7
int c_entry(void)
{
unsigned char s_name[SIZE_OF_ARRAY] = "Hello";
unsigned char a_name[SIZE_OF_ARRAY] = {'H','e','l','l','o','\0'};
unsigned int a_int[SIZE_OF_ARRAY] = {9,8,7,6,5,4};
int i = 0;
for(i = 0; i<6; i++)
{
uart_put('0'+i); /*print value of i*/
uart_put(9); /*print a tab*/
uart_put(s_name[i]); /*print char from string*/
uart_put(9); /*print a tab*/
uart_put(a_name[i]); /*print char from array*/
uart_put(9); /*print a tab*/
uart_put('0'+a_int[i]); /*print int from array*/ …Run Code Online (Sandbox Code Playgroud) 我在最近的一次采访中被问到一个问题,下面定义了一个函数
int square(volatile int * p)
{
return *p**p;
}
Run Code Online (Sandbox Code Playgroud)
我被告知有一些问题是这个功能并不适合计算广场,我认为这是由于波动,谁能解释为什么?